### Navigation

- index
- modules |
- next |
- previous |
- Power Series Rings »

# Laurent Series Rings

EXAMPLES:

    sage: R = LaurentSeriesRing(QQ, "x")
    sage: R.base_ring()
    Rational Field
    sage: S = LaurentSeriesRing(GF(17)['x'], 'y')
    sage: S
    Laurent Series Ring in y over Univariate Polynomial Ring in x over
    Finite Field of size 17
    sage: S.base_ring()
    Univariate Polynomial Ring in x over Finite Field of size 17

`sage.rings.laurent_series_ring.``LaurentSeriesRing`(base_ring, name=None, names=None, default_prec=20, sparse=False)

  EXAMPLES:

      sage: R = LaurentSeriesRing(QQ, 'x'); R
      Laurent Series Ring in x over Rational Field
      sage: x = R.0
      sage: g = 1 - x + x^2 - x^4 +O(x^8); g
      1 - x + x^2 - x^4 + O(x^8)
      sage: g = 10*x^(-3) + 2006 - 19*x + x^2 - x^4 +O(x^8); g
      10*x^-3 + 2006 - 19*x + x^2 - x^4 + O(x^8)

  You can also use more mathematical notation when the base is a field:

      sage: Frac(QQ[['x']])
      Laurent Series Ring in x over Rational Field
      sage: Frac(GF(5)['y'])
      Fraction Field of Univariate Polynomial Ring in y over Finite Field of size 5

  Here the fraction field is not just the Laurent series ring, so you can’t use the `Frac` notation to make the Laurent series ring.

      sage: Frac(ZZ[['t']])
      Fraction Field of Power Series Ring in t over Integer Ring

  Laurent series rings are determined by their variable and the base ring, and are globally unique.

      sage: K = Qp(5, prec = 5)
      sage: L = Qp(5, prec = 200)
      sage: R.<x> = LaurentSeriesRing(K)
      sage: S.<y> = LaurentSeriesRing(L)
      sage: R is S
      False
      sage: T.<y> = LaurentSeriesRing(Qp(5,prec=200))
      sage: S is T
      True
      sage: W.<y> = LaurentSeriesRing(Qp(5,prec=199))
      sage: W is T
      False

class `sage.rings.laurent_series_ring.``LaurentSeriesRing_domain`(base_ring, name=None, default_prec=20, sparse=False)

  Bases: `sage.rings.laurent_series_ring.LaurentSeriesRing_generic`, `sage.rings.ring.IntegralDomain`

  Initialization

  TESTS:

      sage: TestSuite(LaurentSeriesRing(ZZ,'t')).run()

class `sage.rings.laurent_series_ring.``LaurentSeriesRing_field`(base_ring, name=None, default_prec=20, sparse=False)

  Bases: `sage.rings.laurent_series_ring.LaurentSeriesRing_generic`, `sage.rings.ring.Field`

  Initialization

  TESTS:

      sage: TestSuite(LaurentSeriesRing(QQ,'t')).run()

class `sage.rings.laurent_series_ring.``LaurentSeriesRing_generic`(base_ring, name=None, default_prec=20, sparse=False, category=None)

  Bases: `sage.rings.ring.CommutativeRing`

  Univariate Laurent Series Ring

  EXAMPLES:

      sage: K, q = LaurentSeriesRing(CC, 'q').objgen(); K
      Laurent Series Ring in q over Complex Field with 53 bits of precision
      sage: loads(K.dumps()) == K
      True
      sage: P = QQ[['x']]
      sage: F = Frac(P)
      sage: TestSuite(F).run()

  When the base ring \(k\) is a field, the ring \(k((x))\) is a CDVF, that is a field equipped with a discrete valuation for which it is complete. The appropriate (sub)category is automatically set in this case:

      sage: k = GF(11)
      sage: R.<x> = k[[]]
      sage: F = Frac(R)
      sage: F.category()
      Category of complete discrete valuation fields
      sage: TestSuite(F).run()

  `Element`

    alias of `LaurentSeries`

  `base_extend`(R)

    Returns the laurent series ring over R in the same variable as self, assuming there is a canonical coerce map from the base ring of self to R.

    EXAMPLES:

        sage: K.<x> = LaurentSeriesRing(QQ, default_prec=4)
        sage: K.base_extend(QQ['t'])
        Laurent Series Ring in x over Univariate Polynomial Ring in t over Rational Field

  `change_ring`(R)

    EXAMPLES:

        sage: K.<x> = LaurentSeriesRing(QQ, default_prec=4)
        sage: R = K.change_ring(ZZ); R
        Laurent Series Ring in x over Integer Ring
        sage: R.default_prec()
        4

  `characteristic`()

    EXAMPLES:

        sage: R.<x> = LaurentSeriesRing(GF(17))
        sage: R.characteristic()
        17

  `default_prec`()

    Sets the precision to which exact elements are truncated when necessary (most frequently when inverting)

    EXAMPLES:

        sage: R.<x> = LaurentSeriesRing(QQ, default_prec=5)
        sage: R.default_prec()
        5

  `gen`(n=0)

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.gen()
        x

  `is_dense`()

    EXAMPLES:

        sage: K.<x> = LaurentSeriesRing(QQ, sparse=True)
        sage: K.is_dense()
        False

  `is_exact`()

    Laurent series rings are inexact.

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.is_exact()
        False

  `is_field`(proof=True)

    A Laurent series ring is a field if and only if the base ring is a field.

    TESTS:

        sage: LaurentSeriesRing(QQ,'t').is_field()
        True
        sage: LaurentSeriesRing(ZZ,'t').is_field()
        False

  `is_sparse`()

    EXAMPLES:

        sage: K.<x> = LaurentSeriesRing(QQ, sparse=True)
        sage: K.is_sparse()
        True

  `laurent_polynomial_ring`()

    If this is the Laurent series ring \(R((t))\), return the Laurent polynomial ring \(R[t,1/t]\).

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.laurent_polynomial_ring()
        Univariate Laurent Polynomial Ring in x over Rational Field

  `ngens`()

    Laurent series rings are univariate.

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.ngens()
        1

  `polynomial_ring`()

    If this is the Laurent series ring \(R((t))\), return the polynomial ring \(R[t]\).

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.polynomial_ring()
        Univariate Polynomial Ring in x over Rational Field

  `power_series_ring`()

    If this is the Laurent series ring \(R((t))\), return the power series ring \(R[[t]]\).

    EXAMPLES:

        sage: R = LaurentSeriesRing(QQ, "x")
        sage: R.power_series_ring()
        Power Series Ring in x over Rational Field

  `residue_field`()

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

    EXAMPLES:

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

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

  `set_default_prec`(n)

    Sets the default precision.

    This operation should be discouraged: parents should be immutable and this function may be deprecated in the future.

    TESTS:

        sage: R.<x> = LaurentSeriesRing(QQ)
        sage: R.set_default_prec(3)
        sage: 1/(x^5-x^7)
        x^-5 + x^-3 + O(x^-2)

  `uniformizer`()

    Return a uniformizer of this Laurent 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> = LaurentSeriesRing(QQ)
        sage: R.uniformizer()
        t

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

`sage.rings.laurent_series_ring.``is_LaurentSeriesRing`(x)

  TESTS:

      sage: from sage.rings.laurent_series_ring import is_LaurentSeriesRing
      sage: K.<q> = LaurentSeriesRing(QQ)
      sage: is_LaurentSeriesRing(K)
      True

### Navigation

- index
- modules |
- next |
- previous |
- Power Series Rings »