@c ---content LibInfo---
@comment This file was generated by doc2tex.pl from d2t_singular/toric_lib.doc
@comment DO NOT EDIT DIRECTLY, BUT EDIT d2t_singular/toric_lib.doc INSTEAD
@c library version: (1.11,2001/02/06)
@c library file: ../Singular/LIB/toric.lib
@cindex toric.lib
@cindex toric_lib
@table @asis
@item @strong{Library:}
toric.lib
@item @strong{Purpose:}
   Standard Basis of Toric Ideals
@item @strong{Author:}
Christine Theis, email: ctheis@@math.uni-sb.de

@end table

@strong{Procedures:}
@menu
* toric_ideal:: computes the toric ideal of A
* toric_std:: standard basis of I by a specialized Buchberger algorithm
@end menu
@c ---end content LibInfo---

@c ------------------- toric_ideal -------------
@node toric_ideal, toric_std,, toric_lib
@subsubsection toric_ideal
@cindex toric_ideal
@c ---content toric_ideal---
Procedure from library @code{toric.lib} (@pxref{toric_lib}).

@table @asis
@item @strong{Usage:}
toric_ideal(A,alg); A intmat, alg string
@*toric_ideal(A,alg,prsv); A intmat, alg string, prsv intvec

@item @strong{Return:}
ideal: standard basis of the toric ideal of A

@item @strong{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

  @ref{Toric ideals and integer programming}.

@end table
@strong{Example:}
@smallexample
@c computed example toric_ideal d2t_singular/toric_lib.doc:64 
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;
@expansion{} 1,1,0,
@expansion{} 0,1,1 
ideal I=toric_ideal(A,"du");
I;
@expansion{} I[1]=xz-y
I=toric_ideal(A,"blr");
@expansion{} ERROR: The chosen algorithm needs a positive vector in the row space of t\
   he matrix.
I;
@expansion{} I[1]=0
// call with three arguments
intvec prsv=1,2,1;
I=toric_ideal(A,"blr",prsv);
I;
@expansion{} I[1]=xz-y
@c end example toric_ideal d2t_singular/toric_lib.doc:64
@end smallexample
@c inserted refs from d2t_singular/toric_lib.doc:80
@ifinfo
@menu
See also:
* Toric ideals::
* intprog_lib::
* toric_lib::
* toric_std::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{Toric ideals};
@ref{intprog_lib};
@ref{toric_lib};
@ref{toric_std}.
@end iftex
@c end inserted refs from d2t_singular/toric_lib.doc:80

@c ---end content toric_ideal---

@c ------------------- toric_std -------------
@node toric_std,, toric_ideal, toric_lib
@subsubsection toric_std
@cindex toric_std
@c ---content toric_std---
Procedure from library @code{toric.lib} (@pxref{toric_lib}).

@table @asis
@item @strong{Usage:}
toric_std(I); I ideal

@item @strong{Return:}
ideal: standard basis of I

@item @strong{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

   @ref{Toric ideals and integer programming}.

@end table
@strong{Example:}
@smallexample
@c computed example toric_std d2t_singular/toric_lib.doc:114 
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;
@expansion{} J[1]=y-z
@expansion{} 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);
@expansion{} ERROR: Generator 2 of the input ideal is no difference of monomials.
// 2) binomials whose monomials are not relatively prime
I=x-y,xy-yz,y-z;
J=toric_std(I);
@expansion{} Warning: The monomials of generator 2 of the input ideal are not relative\
   ly prime.
J;
@expansion{} J[1]=y-z
@expansion{} 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;
@expansion{} J[1]=y2-1
@expansion{} J[2]=x-yz
// comparison with real standard basis and saturation
ideal H=std(I);
H;
@expansion{} H[1]=x-yz
@expansion{} H[2]=y2z-z
LIB "elim.lib";
sat(H,xyz);
@expansion{} [1]:
@expansion{}    _[1]=x-yz
@expansion{}    _[2]=y2-1
@expansion{} [2]:
@expansion{}    1
@c end example toric_std d2t_singular/toric_lib.doc:114
@end smallexample
@c inserted refs from d2t_singular/toric_lib.doc:140
@ifinfo
@menu
See also:
* Toric ideals::
* intprog_lib::
* toric_ideal::
* toric_lib::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{Toric ideals};
@ref{intprog_lib};
@ref{toric_ideal};
@ref{toric_lib}.
@end iftex
@c end inserted refs from d2t_singular/toric_lib.doc:140

@c ---end content toric_std---
