Package sage :: Package rings :: Package polynomial :: Module multi_polynomial_ring
[hide private]
[frames] | no frames]

Module multi_polynomial_ring

source code


Multivariate Polynomial Rings

\SAGE implements multivariate polynomial rings through several
backends. The generic implementation used the classes \code{PolyDict}
and \code{ETuple} to construct a dictionary with exponent tuples as
keys and coefficients as values.

Additionally, specialized and optimized implementations are provided
for multivariate polynomials over $\Q$ and $\F_p$. These are
implemented in the classes \code{MPolynomialRing_libsingular} and
\code{MPolynomial_libsingular}

AUTHORS:
    -- David Joyner and William Stein
    -- Kiran S. Kedlaya (2006-02-12): added Macaulay2 analogues of
              Singular features
    -- Martin Albrecht (2006-04-21): reorganize class hiearchy for singular rep
    -- Martin Albrecht (2007-04-20): reorganized class hierarchy to support Pyrex
              implementations
    -- Robert Bradshaw (2007-08-15): Coercions from rings in a subset of the variables. 

EXAMPLES:

We construct the Frobenius morphism on $\mbox{\rm F}_{5}[x,y,z]$ over $\F_5$:

    sage: R, (x,y,z) = PolynomialRing(GF(5), 3, 'xyz').objgens()
    sage: frob = R.hom([x^5, y^5, z^5])
    sage: frob(x^2 + 2*y - z^4)
    -z^20 + x^10 + 2*y^5
    sage: frob((x + 2*y)^3)
    x^15 + x^10*y^5 + 2*x^5*y^10 - 2*y^15
    sage: (x^5 + 2*y^5)^3
    x^15 + x^10*y^5 + 2*x^5*y^10 - 2*y^15

We make a polynomial ring in one variable over a polynomial ring in
two variables:
    sage: R.<x, y> = PolynomialRing(QQ, 2)
    sage: S.<t> = PowerSeriesRing(R)
    sage: t*(x+y)
    (x + y)*t



Classes [hide private]
  MPolynomialRing_macaulay2_repr
  MPolynomialRing_polydict
Multivariable polynomial ring.
  MPolynomialRing_polydict_domain