|
D.14.3.1 monomialabortstd
Procedure from library customstd.lib (see customstd_lib).
- Usage:
- monomialabortstd(I); I ideal
- Purpose:
- computes a standard basis and aborts if a monomial generator is found.
Returns all standard basis elements that have been computed.
- Note:
- Due to sequencing of the standard basis computation:
- If aborted, there is no guarantee that the monomial is the final
standard bases element
- If ideal has a monomial generator, there is no guarantee that the
computation aborts because of it
Example:
| LIB "customstd.lib";
LIB "polylib.lib";
ring r = 0,(x,y,z,u,v),dp;
// yields normal standard basis since no monomial is found
ideal I = homog(cyclic(4),v);
monomialabortstd(I);
==> _[1]=x+y+z+u
==> _[2]=y2+2yu+u2
==> _[3]=yz2+z2u-yu2-u3
==> _[4]=yzu2+z2u2-yu3+zu3-u4-v4
==> _[5]=yu4+u5-yv4-uv4
==> _[6]=z3u2+z2u3-zv4-uv4
==> _[7]=z2u4+yzv4-yuv4+zuv4-2u2v4
// will not start standard basis computation in the first place,
// as one of the generators is a monomial
I = v,homog(cyclic(4),v);
monomialabortstd(I);
==> _[1]=v
// aborts standard basis computation when it encounters monomial u
// note that u is not the final element in the standard basis!!!
I = x+y+z,homog(cyclic(4),v);
monomialabortstd(I);
==> _[1]=u
==> _[2]=x+y+z+u
// aborts standard basis computation when it encounters monomial z2
// note that it is not the monomial generator x which lead to the abortion!!!
I = x,homog(cyclic(4),v);
monomialabortstd(I);
==> _[1]=y+z+u
==> _[2]=x+y+z+u
==> _[3]=z2
|
|