|
D.7.1.14 valvars
Procedure from library presolve.lib (see presolve_lib).
- Usage:
valvars(id[,n1,p1,n2,p2,...]);
id=poly/ideal/vector/module,
p1,p2,...= polynomials (product of vars),
n1,n2,...= integers,
ni controls the ordering of vars occurring in pi: ni=0 (resp.!=0) means
that less (resp. more) complex vars come first
(default: p1=product of all vars, n1=0)
the last pi (containing the remaining vars) may be omitted
- Compute:
valuation (complexity) of variables with respect to id.
ni controls the ordering of vars occurring in pi:
ni=0 (resp.!=0) means that less (resp. more) complex vars come first.
- Return:
list with 3 entries:
| [1]: intvec, say v, describing the permutation such that the permuted
ringvariables are ordered with respect to their complexity in id
[2]: list of intvecs, i-th intvec, say v(i) describing permutation
of vars in a(i) such that v=v(1),v(2),...
[3]: list of ideals and intmat’s, say a(i) and M(i), where
a(i): factors of pi,
M(i): valuation matrix of a(i), such that the j-th column of M(i)
is the valuation vector of j-th generator of a(i)
|
- Note:
Use sortvars in order to actually sort the variables!
We define a variable x to be more complex than y (with respect to id)
if val(x) > val(y) lexicographically, where val(x) denotes the
valuation vector of x:
consider id as list of polynomials in x with coefficients in the
remaining variables. Then:
val(x) = (maximal occurring power of x, # of all monomials in leading
coefficient, # of all monomials in coefficient of next smaller power
of x,...).
Example:
| LIB "presolve.lib";
ring s=0,(x,y,z,a,b),dp;
ideal i=ax2+ay3-b2x,abz+by2;
valvars (i,0,xyz);
→ [1]:
→ 3,1,2,4,5
→ [2]:
→ [1]:
→ 3,1,2
→ [2]:
→ 1,2
→ [3]:
→ [1]:
→ _[1]=x
→ _[2]=y
→ _[3]=z
→ [2]:
→ 2,3,1,
→ 1,1,1,
→ 1,1,0
→ [3]:
→ _[1]=a
→ _[2]=b
→ [4]:
→ 1,2,
→ 3,1,
→ 0,2
|
|