|
D.4.8.3 splitring
Procedure from library primitiv.lib (see primitiv_lib).
- Usage:
splitring(f,R[,L]); f poly, R string, L list of polys and/or ideals
(optional)
- Assume:
f is univariate and irreducible over the active basering.
The active ring must allow an algebraic extension (e.g., it cannot
be a transcendent ring extension of Q or Z/p).
- Create:
a ring with name R, in which f is reducible, and CHANGE to it.
- Return:
list L mapped into the new ring R, if L is given; else nothing
- 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,R[,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.
It is also allowed to call splitring with R="".
Then the old basering will be REPLACED by the new ring (with the
same name as the old ring).
Example:
| LIB "primitiv.lib";
ring r=0,(x,y),dp;
splitring(x2-2,"r1"); // change to Q(sqrt(2))
// change to Q(sqrt(2),sqrt(sqrt(2)))=Q(a) and return the transformed
// old parameter:
splitring(x2-a,"r2",a);
→ // new minimal polynomial: a4-2
→ [1]:
→ (a2)
// the result is (a)^2 = (sqrt(sqrt(2)))^2
nameof(basering);
→ r2
r2;
→ // characteristic : 0
→ // 1 parameter : a
→ // minpoly : (a4-2)
→ // number of vars : 2
→ // block 1 : ordering dp
→ // : names x y
→ // block 2 : ordering C
kill r1; kill r2;
|
|