|
D.7.1.9 tolessvars
Procedure from library presolve.lib (see presolve_lib).
- Usage:
tolessvars(id [,s1,s2] ); id poly/ideal/vector/module/matrix,
s1,s2=strings
s1: name of new ring,
s2: new ordering
(default: s1="R(n)" where n is the # of vars in the new ring,
s2="dp" or "ds" depending whether the first block of the old
ordering is a p- resp. an s-ordering)
- Create:
nothing, if id contains all vars of the basering.
Else, create a ring with same char as the basering, but possibly less
variables (only those variables which actually occur in id) and map
id to the new ring, which will be the basering after the proc has
finished.
- Display:
If printlevel >=0, display ideal of vars, which have been omitted from
the old ring
- Return:
the original ideal id (see NOTE)
- Note:
You must not type, say, ’ideal id=tolessvars(id);’ since the ring
to which ’id’ would belong will only be defined by the r.h.s.. But you
may type ’def id=tolessvars(id);’ or ’list id=tolessvars(id);’
since then ’id’ does not a priory belong to a ring, its type will
be defined by the right hand side. Moreover, do not use a name which
occurs in the old ring, for the same reason.
Example:
| LIB "presolve.lib";
ring r = 0,(x,y,z),dp;
ideal i = y2-x3,x-3,y-2x;
def j = tolessvars(i,"R_r","lp");
→
→ // variables which did not occur:
→ z
→ // basering is now R_r
show(basering);
→ // ring: (0),(x,y),(lp(2),C);
→ // minpoly = 0
→ // objects belonging to this ring:
→ // j [0] ideal, 3 generator(s)
j;
→ j[1]=-x3+y2
→ j[2]=x-3
→ j[3]=-2x+y
kill R_r;
|
|