Singular Manual: toric_ideal

| #### D.4.36.1 toric_ideal Procedure from library `toric.lib` (see toric_lib). Usage: toric_ideal(A,alg); A intmat, alg string toric_ideal(A,alg,prsv); A intmat, alg string, prsv intvec Return: ideal: standard basis of the toric ideal of A Note: These procedures return the standard basis of the toric ideal of A with respect to the term ordering in the current basering. Not all term orderings are supported: The usual global term orderings may be used, but no block orderings combining them. One may call the procedure with several different algorithms: - the algorithm of Conti/Traverso using elimination (ect), - the algorithm of Pottier (pt), - an algorithm of Bigatti/La Scala/Robbiano (blr), - the algorithm of Hosten/Sturmfels (hs), - the algorithm of DiBiase/Urbanke (du). The argument `alg' should be the abbreviation for an algorithm as above: ect, pt, blr, hs or du. If `alg' is chosen to be `blr' or `hs', the algorithm needs a vector with positive coefficients in the row space of A. If no row of A contains only positive entries, one has to use the second version of toric_ideal which takes such a vector as its third argument. For the mathematical background, see Toric ideals and integer programming. Example:
    LIB "toric.lib";
    ring r=0,(x,y,z),dp;
    // call with two arguments
    intmat A[2][3]=1,1,0,0,1,1;
    A;
    ==> 1,1,0,
    ==> 0,1,1
    ideal I=toric_ideal(A,"du");
    I;
    ==> I[1]=xz-y
    I=toric_ideal(A,"blr");
    ==>    ? The chosen algorithm needs a positive vector in the row space of the\
        matrix.
    ==>    ? leaving toric.lib::toric_ideal_1 (0)
    ==>    ? leaving toric.lib::toric_ideal (704)
    I;
    ==> I[1]=xz-y
    // call with three arguments
    intvec prsv=1,2,1;
    I=toric_ideal(A,"blr",prsv);
    I;
    ==> I[1]=xz-y
See also: Toric ideals; intprog_lib; toric_std.

User manual for Singular version 4.4.1, 2025, generated by texi2html.