up
previous
next
change field for polynomials and ideals
QZP(F:POLY):POLY
ZPQ(F:POLY):POLY
QZP(F:LIST of POLY):LIST of POLY
ZPQ(F:LIST of POLY):LIST of POLY
QZP(I:IDEAL):IDEAL
ZPQ(I:IDEAL):IDEAL
|
These functions map polynomials and ideals of other rings into ones
of the current ring. When mapping from one ring to another, one of
the rings must have coefficients in the rational numbers and the other
must have coefficients in a finite field. The indeterminates in both
rings must be identical.
The function QZP maps polynomials with rational coefficients to
polynomials with coefficients in a finite field; the function ZPQ
does the reverse, mapping a polynomial with finite field coefficients
into one with rational (actually, integer) coefficients. The function
ZPQ is not uniquely defined mathematically, and currently for each
coefficient the least non-negative equivalent integer is chosen.
Users should not rely on this choice, though any change will be
documented.
Use R::=Q[x,y,z];
F:=1/2*x^3+34/567*x*y*z-890; -- a poly with rational coefficients
Use S::=Z/(101)[x,y,z];
QZP(F); -- compute its image with coeffs in Z/(101)
-50x^3 - 19xyz + 19
-------------------------------
G:=It;
Use R;
ZPQ(G); -- now map that result back to Q[x,y,z]
-- it is NOT the same as F...
51x^3 + 82xyz + 19
-------------------------------
H:=It;
F-H; -- ... but the difference is divisible by 101
-101/2x^3 - 46460/567xyz - 909
-------------------------------
Use S;
QZP(H)-G; -- F and H have the same image in Z/(101)[x,y,z]
0
-------------------------------
|