#### 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

  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
    // 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.

User manual for Singular version 4-0-3, 2016, generated by texi2html.