|
B.2.6 Matrix orderings
Let
13#13be an invertible
475#475-matrix with integer coefficients and
590#590 the rows of 13#13.
The M-ordering < is defined as follows:
591#591 and
592#592.
Thus,
593#593
if and only if 594#594 is smaller than 595#595with 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):
596#596 lp:
597#597
dp:
598#598
Dp:
599#599
596#596 wp(1,2,3):
600#600
Wp(1,2,3):
601#601
596#596 ls:
602#602
ds:
603#603
Ds:
604#604
596#596 ws(1,2,3):
605#605
Ws(1,2,3):
606#606
Product orderings (see next section) represented by a matrix:
596#596 (dp(3), wp(1,2,3)):
607#607
596#596 (Dp(3), ds(3)):
608#608
Orderings with extra weight vector (see below) represented by a matrix:
596#596 (dp(3), a(1,2,3),dp(3)):
609#609
596#596 (a(1,2,3,4,5),Dp(3), ds(3)):
610#610
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 considered as a field
==> // 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
236#236entries, 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.
|