|
D.4.23.3 splitring
Procedure from library primitiv.lib (see primitiv_lib).
- Usage:
- splitring(f[,L]); f poly, L list of polys and/or ideals
(optional)
- Assume:
- f is univariate and irreducible over the active ring.
The active ring must allow an algebraic extension (e.g., it cannot
be a transcendent ring extension of Q or Z/p).
- Return:
- ring;
if called with a nonempty second parameter L, then in the output
ring there is defined a list erg ( =L mapped to the new ring);
if the minpoly of the active ring is non-zero, then the image of
the primitive root of f in the output ring is appended as last
entry of the list erg.
- Note:
- If the old ring has no parameter, the name
a is chosen for the
parameter of R (if a is no ring variable; if it is, b is
chosen, etc.; if a,b,c,o are ring variables,
splitring(f[,L]) produces an error message), otherwise the
name of the parameter is kept and only the minimal polynomial is
changed.
The names of the ring variables and the orderings are not affected.
Example:
| LIB "primitiv.lib";
ring r=0,(x,y),dp;
def r1=splitring(x2-2);
setring r1; basering; // change to Q(sqrt(2))
==> // coefficients: QQ[a]/(a2-2)
==> // number of vars : 2
==> // block 1 : ordering dp
==> // : names x y
==> // block 2 : ordering C
// change to Q(sqrt(2),sqrt(sqrt(2)))=Q(a) and return the transformed
// old parameter:
def r2=splitring(x2-a,a);
==> // new minimal polynomial: a4-2
setring r2; basering; erg;
==> // coefficients: QQ[a]/(a4-2)
==> // number of vars : 2
==> // block 1 : ordering dp
==> // : names x y
==> // block 2 : ordering C
==> [1]:
==> (a2)
==> [2]:
==> (a)
// the result is (a)^2 = (sqrt(sqrt(2)))^2
kill r1; kill r2;
|
|