Home Online Manual
Top
Back: toric_ideal
Forward: Algebraic geometry
FastBack:
FastForward:
Up: toric_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.4.37.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

Toric ideals and integer programming.

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[1]=y-z
==> J[2]=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 (0)
// 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[1]=y-z
==> J[2]=x-z
// call with a non-toric ideal that seems to be toric
I=x-yz,xy-z;
J=toric_std(I);
J;
==> J[1]=y2-1
==> J[2]=x-yz
// comparison with real standard basis and saturation
ideal H=std(I);
H;
==> H[1]=x-yz
==> H[2]=y2z-z
LIB "elim.lib";
sat(H,xyz);
==> [1]:
==>    _[1]=x-yz
==>    _[2]=y2-1
==> [2]:
==>    1
See also: Toric ideals; intprog_lib; toric_ideal; toric_lib.