|  C.6.2.4 The algorithm of Di Biase and Urbanke 
Like the algorithm of Hosten and Sturmfels, the algorithm of Di Biase
and Urbanke (see  [DBUr95]) performs up
to  Groebner basis
computations. It needs no auxiliary variables, but a supplementary
precondition; namely, the existence of a vector without zero components
in the kernel of  . 
The main idea comes from the following observation:
 
Let  be an integer matrix,  a lattice basis of the
integer kernel of  . Assume that all components of  are
positive. Then 
 i.e., the ideal on the right is already saturated w.r.t. all variables.
 
The algorithm starts by finding a lattice basis 
 of the
kernel of  such that  has no zero component. Let  be the set of indices  with  . Multiplying the components  of  and the columns  of  by  yields
a matrix  and a lattice basis  of the kernel of  that fulfill the assumption of the observation above. It is then possible
to compute a generating set of  by applying the following
``variable flip'' successively to  : 
Let  be an elimination ordering for  . Let  be the matrix
obtained by multiplying the  -th column of  by  . Let 
 be a Groebner basis of
  w.r.t.  (where  is neither
involved in  nor in  ). Then 
 is a generating set for
  . 
 
 |