# Singular          #### D.4.29.2 toric_std

Procedure from library `toric.lib` (see toric_lib).

Usage:
toric_std(I); I ideal

Return:
ideal: standard basis of I

Note:
This procedure computes the standard basis of I using a specialized Buchberger algorithm. The generating system by which I is given has to consist of binomials of the form x^u-x^v. There is no real check if I is toric. If I is generated by binomials of the above form, but not toric, toric_std computes an ideal `between' I and its saturation with respect to all variables.
For the mathematical background, see

Example:
 ```LIB "toric.lib"; ring r=0,(x,y,z),wp(3,2,1); // call with toric ideal (of the matrix A=(1,1,1)) ideal I=x-y,x-z; ideal J=toric_std(I); J; ==> J=y-z ==> J=x-z // call with the same ideal, but badly chosen generators: // 1) not only binomials I=x-y,2x-y-z; J=toric_std(I); ==> ? Generator 2 of the input ideal is no difference of monomials. ==> ? leaving toric.lib::toric_std // 2) binomials whose monomials are not relatively prime I=x-y,xy-yz,y-z; J=toric_std(I); ==> Warning: The monomials of generator 2 of the input ideal are not relative\ ly prime. J; ==> J=y-z ==> J=x-z // call with a non-toric ideal that seems to be toric I=x-yz,xy-z; J=toric_std(I); J; ==> J=y2-1 ==> J=x-yz // comparison with real standard basis and saturation ideal H=std(I); H; ==> H=x-yz ==> H=y2z-z LIB "elim.lib"; sat(H,xyz); ==> : ==> _=x-yz ==> _=y2-1 ==> : ==> 1 ``` 