Puiseux Series Ring#

The ring of Puiseux series.

AUTHORS:

REFERENCES:

class sage.rings.puiseux_series_ring.PuiseuxSeriesRing(laurent_series)#

Bases: UniqueRepresentation, CommutativeRing

Rings of Puiseux series.

EXAMPLES:

sage: P = PuiseuxSeriesRing(QQ, 'y')
sage: y = P.gen()
sage: f = y**(4/3) + y**(-5/6); f
y^(-5/6) + y^(4/3)
sage: f.add_bigoh(2)
y^(-5/6) + y^(4/3) + O(y^2)
sage: f.add_bigoh(1)
y^(-5/6) + O(y)
Element#

alias of PuiseuxSeries

base_extend(R)#

Extend the coefficients.

INPUT:

  • R – a ring

EXAMPLES:

sage: A = PuiseuxSeriesRing(ZZ, 'y')
sage: A.base_extend(QQ)
Puiseux Series Ring in y over Rational Field
change_ring(R)#

Return a Puiseux series ring over another ring.

INPUT:

  • R – a ring

EXAMPLES:

sage: A = PuiseuxSeriesRing(ZZ, 'y')
sage: A.change_ring(QQ)
Puiseux Series Ring in y over Rational Field
default_prec()#

Return the default precision of self.

EXAMPLES:

sage: A = PuiseuxSeriesRing(AA, 'z')                                        # needs sage.rings.number_field
sage: A.default_prec()                                                      # needs sage.rings.number_field
20
fraction_field()#

Return the fraction field of this ring of Laurent series.

If the base ring is a field, then Puiseux series are already a field. If the base ring is a domain, then the Puiseux series over its fraction field is returned. Otherwise, raise a ValueError.

EXAMPLES:

sage: R = PuiseuxSeriesRing(ZZ, 't', 30).fraction_field()
sage: R
Puiseux Series Ring in t over Rational Field
sage: R.default_prec()
30

sage: PuiseuxSeriesRing(Zmod(4), 't').fraction_field()
Traceback (most recent call last):
...
ValueError: must be an integral domain
gen(n=0)#

Return the generator of self.

EXAMPLES:

sage: A = PuiseuxSeriesRing(AA, 'z')                                        # needs sage.rings.number_field
sage: A.gen()                                                               # needs sage.rings.number_field
z
is_dense()#

Return whether self is dense.

EXAMPLES:

sage: A = PuiseuxSeriesRing(ZZ, 'y')
sage: A.is_dense()
True
is_field(proof=True)#

Return whether self is a field.

A Puiseux series ring is a field if and only its base ring is a field.

EXAMPLES:

sage: A = PuiseuxSeriesRing(ZZ, 'y')
sage: A.is_field()
False
sage: A.change_ring(QQ).is_field()
True
is_sparse()#

Return whether self is sparse.

EXAMPLES:

sage: A = PuiseuxSeriesRing(ZZ, 'y')
sage: A.is_sparse()
False
laurent_series_ring()#

Return the underlying Laurent series ring.

EXAMPLES:

sage: A = PuiseuxSeriesRing(AA, 'z')                                        # needs sage.rings.number_field
sage: A.laurent_series_ring()                                               # needs sage.rings.number_field
Laurent Series Ring in z over Algebraic Real Field
ngens()#

Return the number of generators of self, namely 1.

EXAMPLES:

sage: A = PuiseuxSeriesRing(AA, 'z')                                        # needs sage.rings.number_field
sage: A.ngens()                                                             # needs sage.rings.number_field
1
residue_field()#

Return the residue field of this Puiseux series field if it is a complete discrete valuation field (i.e. if the base ring is a field, in which case it is also the residue field).

EXAMPLES:

sage: R.<x> = PuiseuxSeriesRing(GF(17))
sage: R.residue_field()
Finite Field of size 17

sage: R.<x> = PuiseuxSeriesRing(ZZ)
sage: R.residue_field()
Traceback (most recent call last):
...
TypeError: the base ring is not a field
uniformizer()#

Return a uniformizer of this Puiseux series field if it is a discrete valuation field (i.e. if the base ring is actually a field). Otherwise, an error is raised.

EXAMPLES:

sage: R.<t> = PuiseuxSeriesRing(QQ)
sage: R.uniformizer()
t

sage: R.<t> = PuiseuxSeriesRing(ZZ)
sage: R.uniformizer()
Traceback (most recent call last):
...
TypeError: the base ring is not a field