### 5.1.149 std

`Syntax:`
`std (` ideal_expression`)`
`std (` module_expression`)`
`std (` smatrix_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, module or smatrix
`Purpose:`
returns a standard basis of an ideal or module with respect to the monomial ordering of the basering. For Letterplace rings, a twosided Groebner basis is computed. 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`.

`Warning:`
Groebner basis computations with inexact coefficients can not be trusted due to rounding errors.
`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; ==> 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; ==> z64 ```
See facstd; fglm; groebner; ideal; module; mstd; option; ring; smatrix; stdfglm; stdhilb.

User manual for Singular version 4.3.1, 2022, generated by texi2html.