|
D.15.17.31 multiDegBasis
Procedure from library multigrading.lib (see multigrading_lib).
- Usage:
- multiDegBasis(d), multidegree: intvec d
- Assume:
- current ring is multigraded, monomial ordering is global
- Purpose:
- compute all monomials of multidegree d
Example:
| LIB "multigrading.lib";
ring R = 0, (x, y), dp;
intmat g1[2][2]=1,0,0,1;
intmat l[2][1]=2,0;
intmat g2[2][2]=1,1,1,1;
intvec v1=4,0;
intvec v2=4,4;
intmat g3[1][2]=1,1;
setBaseMultigrading(g3);
intvec v3=4:1;
v3;
==> 4
multiDegBasis(v3);
==> _[1]=x4
==> _[2]=y4
==> _[3]=xy3
==> _[4]=x2y2
==> _[5]=x3y
setBaseMultigrading(g1,l);
multiDegBasis(v1);
==> _[1]=1
setBaseMultigrading(g2);
multiDegBasis(v2);
==> _[1]=y4
==> _[2]=x4
==> _[3]=x3y
==> _[4]=x2y2
==> _[5]=xy3
intmat M[2][2] = 1, -1, -1, 1;
intvec d = -2, 2;
setBaseMultigrading(M);
multiDegBasis(d);
==> _[1]=y2
attrib(_, "ZeroPart");
==> _[1]=xy
kill R, M, d;
ring R = 0, (x, y, z), dp;
intmat M[2][3] = 1, -2, 1, 1, 1, 0;
intmat L[2][1] = 0, 2;
intvec d = 4, 1;
setBaseMultigrading(M, L);
multiDegBasis(d);
==> _[1]=xz3
==> _[2]=yz6
==> _[3]=x6y
==> _[4]=x3z
attrib(_, "ZeroPart");
==> _[1]=x4y2
==> _[2]=xyz
==> _[3]=y2z4
kill R, M, d;
ring R = 0, (x, y, z), dp;
qring Q = std(ideal( y^6+ x*y^3*z-x^2*z^2 ));
intmat M[2][3] = 1, 1, 2, 2, 1, 1;
// intmat T[2][1] = 0, 2;
setBaseMultigrading(M); // BUG????
intvec d = 6, 6;
multiDegBasis(d);
==> _[1]=x2z2
==> _[2]=xy3z
attrib(_, "ZeroPart");
==> _[1]=0
kill R, Q, M, d;
ring R = 0, (x, y, z), dp;
qring Q = std(ideal( x*z^3 - y *z^6, x*y*z - x^4*y^2 ));
intmat M[2][3] = 1, -2, 1, 1, 1, 0;
intmat T[2][1] = 0, 2;
intvec d = 4, 1;
setBaseMultigrading(M, T); // BUG????
multiDegBasis(d);
==> _[1]=xz3
==> _[2]=x6y
==> _[3]=x3z
attrib(_, "ZeroPart");
==> _[1]=xyz
==> _[2]=y2z4
|
|