Home Online Manual
Top
Back: status
Forward: stdfglm
FastBack: Functions and system variables
FastForward: Control structures
Up: Functions
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

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.