|
D.8.1.11 sortandmap
Procedure from library presolve.lib (see presolve_lib).
- Usage:
- sortandmap(id [,n1,p1,n2,p2...,o1,m1,o2,m2...]);
id=poly/ideal/vector/module,
p1,p2,...= polynomials (product of variables),
n1,n2,...= integers,
o1,o2,...= strings,
m1,m2,...= integers
(default: p1=product of all vars, n1=0, o1="dp",m1=0)
the last pi (containing the remaining vars) may be omitted
- Return:
- a ring R, in which a poly/ideal/vector/module IMAG is stored:
- the ring R differs from the active basering only in the choice
of monomial ordering and in the sorting of the variables.
- IMAG is the image (under imap) of the input ideal/module id
The new monomial ordering and sorting of vars is as follows:
| - each block of vars occuring in pi is sorted w.r.t. its complexity in id,
- ni controls the sorting in i-th block (= vars occuring in pi):
ni=0 (resp. ni!=0) means that least complex (resp. most complex) vars come
first
- oi and mi define the monomial ordering of the i-th block:
if mi =0, oi=ordstr(i-th block)
if mi!=0, the ordering of the i-th block itself is a blockordering,
each subblock having ordstr=oi, such that vars of same complexity are
in one block
| Note that only simple ordstrings oi are allowed: "lp","dp","Dp",
"ls","ds","Ds".
- Note:
- 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 occuring power of x, # of all monomials in leading
coefficient, # of all monomials in coefficient of next smaller power
of x,...).
Example:
|