|  |  D.4.24.3 splitring Procedure from libraryprimitiv.lib(see  primitiv_lib).
 
Example: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 ais chosen for the
parameter of R (ifais no ring variable; if it is,bis
chosen, etc.; ifa,b,c,oare 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.
 
 
 |  | 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;
 | 
 |