|
7.7.10.0. makeLetterplaceRing
Procedure from library freegb.lib (see freegb_lib).
- Usage:
- makeLetterplaceRing(d [,h]); d an integer, h an optional integer
- Return:
- ring
- Purpose:
- creates a ring with the ordering, used in letterplace computations
- Note:
- h = 0 (default) : Dp ordering will be used
h = 2 : weights 1 used for all the variables, a tie breaker is a list of block of original ring
h = 1 : the pure homogeneous letterplace block ordering (applicable in the situation of homogeneous input ideals) will be used.
Example:
| LIB "freegb.lib";
ring r = 0,(x,y,z),(dp(1),dp(2));
def A = makeLetterplaceRing(2); // same as makeLetterplaceRing(2,0)
setring A; A;
==> // coefficients: QQ
==> // number of vars : 6
==> // block 1 : ordering Dp
==> // : names x(1) y(1) z(1) x(2) y(2) z(2)
==> // block 2 : ordering C
==> // letterplace ring
attrib(A,"isLetterplaceRing");
==> 3
attrib(A,"uptodeg"); // degree bound
==> 2
setring r; def B = makeLetterplaceRing(2,1); // to compare:
setring B; B;
==> // coefficients: QQ
==> // number of vars : 6
==> // block 1 : ordering lp
==> // : names x(1)
==> // block 2 : ordering dp
==> // : names y(1) z(1)
==> // block 3 : ordering lp
==> // : names x(2)
==> // block 4 : ordering dp
==> // : names y(2) z(2)
==> // block 5 : ordering C
==> // letterplace ring
attrib(B,"isLetterplaceRing");
==> 3
attrib(B,"uptodeg"); // degree bound
==> 2
setring r; def C = makeLetterplaceRing(2,2); // to compare:
setring C; C;
==> // coefficients: QQ
==> // number of vars : 6
==> // block 1 : ordering a
==> // : names x(1) y(1) z(1) x(2) y(2) z(2)
==> // : weights 1 1 1 1 1 1
==> // block 2 : ordering lp
==> // : names x(1)
==> // block 3 : ordering dp
==> // : names y(1) z(1)
==> // block 4 : ordering lp
==> // : names x(2)
==> // block 5 : ordering dp
==> // : names y(2) z(2)
==> // block 6 : ordering C
==> // letterplace ring
attrib(C,"isLetterplaceRing");
==> 3
attrib(C,"uptodeg"); // degree bound
==> 2
|
|