|
D.1.2 par2varRing
Procedure from library standard.lib (see standard_lib).
- Usage:
- par2varRing([l]); l list of ideals/modules [default:l=empty list]
- Return:
- list, say L, with L[1] a ring where the parameters of the
basering have been converted to an additional last block of
variables, all of weight 1, and ordering dp.
If a list l with l[i] an ideal/module is given, then
l[i] + minpoly*freemodule(nrows(l[i])) is mapped to an ideal/module
in L[1] with name Id[i].
If the basering has no parameters then L[1] is the basering.
Example:
| ring R = (0,x),(y,z,u,v),lp;
minpoly = x2+1;
ideal i = x3,x2+y+z+u+v,xyzuv-1; i;
==> i[1]=(-x)
==> i[2]=y+z+u+v-1
==> i[3]=(x)*yzuv-1
def P = par2varRing(i)[1]; P;
==> // coefficients: QQ
==> // number of vars : 5
==> // block 1 : ordering lp
==> // : names y z u v
==> // block 2 : ordering dp
==> // : names x
==> // block 3 : ordering C
setring(P);
Id[1];
==> _[1]=-x
==> _[2]=y+z+u+v-1
==> _[3]=yzuvx-1
==> _[4]=x2+1
setring R;
module m = x3*[1,1,1], (xyzuv-1)*[1,0,1];
def Q = par2varRing(m)[1]; Q;
==> // coefficients: QQ
==> // number of vars : 5
==> // block 1 : ordering lp
==> // : names y z u v
==> // block 2 : ordering dp
==> // : names x
==> // block 3 : ordering C
setring(Q);
print(Id[1]);
==> -x,yzuvx-1,x2+1,0, 0,
==> -x,0, 0, x2+1,0,
==> -x,yzuvx-1,0, 0, x2+1
|
|