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