|
B.2.6 Matrix orderings
Let
13#13be an invertible
473#473-matrix with integer coefficients and
588#588 the rows of 13#13.
The M-ordering < is defined as follows:
589#589 and
590#590.
Thus,
591#591
if and only if 592#592 is smaller than 593#593with respect to the lexicographical ordering.
The following matrices represent (for 3 variables) the global and
local orderings defined above (note that the matrix is not uniquely determined
by the ordering):
594#594 lp:
595#595
dp:
596#596
Dp:
597#597
594#594 wp(1,2,3):
598#598
Wp(1,2,3):
599#599
594#594 ls:
600#600
ds:
601#601
Ds:
602#602
594#594 ws(1,2,3):
603#603
Ws(1,2,3):
604#604
Product orderings (see next section) represented by a matrix:
594#594 (dp(3), wp(1,2,3)):
605#605
594#594 (Dp(3), ds(3)):
606#606
Orderings with extra weight vector (see below) represented by a matrix:
594#594 (dp(3), a(1,2,3),dp(3)):
607#607
594#594 (a(1,2,3,4,5),Dp(3), ds(3)):
608#608
Example:
| ring r = 0, (x,y,z), M(1, 0, 0, 0, 1, 0, 0, 0, 1);
|
which may also be written as:
| intmat m[3][3]=1, 0, 0, 0, 1, 0, 0, 0, 1;
m;
==> 1,0,0,
==> 0,1,0,
==> 0,0,1
ring r = 0, (x,y,z), M(m);
r;
==> // coefficients: QQ
==> // number of vars : 3
==> // block 1 : ordering M
==> // : names x y z
==> // : weights 1 0 0
==> // : weights 0 1 0
==> // : weights 0 0 1
==> // block 2 : ordering C
|
If the ring has
17#17variables and the matrix does not contain
234#234entries, an error message is given.
WARNING: SINGULAR
does not check whether the matrix has full rank. In such a case some
computations might not terminate, others may not give a sensible result.
Having these matrix orderings SINGULAR can compute standard bases for
any monomial ordering which is compatible with the natural semigroup structure.
In practice the global and local orderings together with block orderings should be
sufficient in most cases. These orderings are faster than the corresponding
matrix orderings, since evaluating a matrix product is time consuming.
|