|
5.1.143 std
Syntax:
std ( ideal_expression)
std ( module_expression)
std ( ideal_expression, intvec_expression )
std ( module_expression, intvec_expression )
std ( ideal_expression, intvec_expression, intvec_expression )
std ( module_expression, intvec_expression, intvec_expression )
std ( ideal_expression, poly_expression )
std ( module_expression, vector_expression )
std ( ideal_expression, ideal_expression )
std ( module_expression, module_expression )
std ( ideal_expression, poly_expression, intvec_expression, intvec_expression )
std ( module_expression, poly_expression, intvec_expression, intvec_expression )
Type:
- ideal or module
Purpose:
- returns a standard basis of an ideal or module with respect to the
monomial ordering of the basering.
A standard basis is a set of generators such that
the leading terms generate the leading ideal, resp. module.
Use an optional
second argument of type intvec as Hilbert series
(result of hilb(i,1) , see hilb),
if the ideal, resp. module, is homogeneous
(Hilbert driven standard basis computation, stdhilb).
If the ideal is quasihomogeneous with some weights w and if the Hilbert series
is computed w.r.t. to these weights, then use w as third argument.
Use an optional second argument of type poly/vector/ideal, resp. module,
to construct the standard basis from an already computed one (given as the
first argument) and additional generator(s) (the second argument).
4 arguments G,p,hv,w are the combination of the above:
standard basis G , additional generator p , hilbert function hv w.r.t. weights w .
Note:
- The
standard basis is computed with a (more or less) straight-forward
implementation of the classical
Buchberger (resp. Mora) algorithm. For global orderings, use the
groebner command instead (see groebner), which heuristically
chooses the "best" algorithm to compute a Groebner basis.
To view the progress of long running computations, use
option(prot) (see option(prot)).
Example:
| // local computation
ring r=32003,(x,y,z),ds;
poly s1=1x2y+151xyz10+169y21;
poly s2=1xz14+6x2y4+3z24;
poly s3=5y10z10x+2y20z10+y10z20+11x3;
ideal i=s1,s2,s3;
ideal j=std(i);
degree(j);
==> // dimension (local) = 0
==> // multiplicity = 1512
// Hilbert driven elimination (standard)
ring rhom=32003,(x,y,z,h),dp;
ideal i=homog(imap(r,i),h);
ideal j=std(i);
intvec iv=hilb(j,1);
ring rlex=32003,(x,y,z,h),lp;
ideal i=fetch(rhom,i);
ideal j=std(i,iv);
j=subst(j,h,1);
j[1];
==> z64
// Hilbert driven elimination (ideal is quasihomogeneous)
intvec w=10,1,1;
ring whom=32003,(x,y,z),wp(w);
ideal i=fetch(r,i);
ideal j=std(i);
intvec iw=hilb(j,1,w);
ring wlex=32003,(x,y,z),lp;
ideal i=fetch(whom,i);
ideal j=std(i,iw,w);
j[1];
==> z64
|
See
facstd;
fglm;
groebner;
ideal;
mstd;
option;
ring;
stdfglm;
stdhilb.
|