Function: qflllgram
Section: linear_algebra
C-Name: qflllgram0
Prototype: GD0,L,
Help: qflllgram(G,{flag=0}): LLL reduction of the lattice whose gram matrix
 is G (gives the unimodular transformation matrix). flag is optional and can
 be 0: default,1: disable FLATTER, 4: assumes x is integral,
 returns [K,T],  where K is the integer kernel of x
 and T the LLL reduced image, 5: same as 4 but x may have polynomial
 coefficients, 8: same as 0 but x may have polynomial coefficients.
Doc: same as \kbd{qflll}, except that the
 matrix $G = \kbd{x\til * x}$ is the Gram matrix of some lattice vectors $x$,
 and not the coordinates of the vectors themselves. In particular, $G$ must
 now be a square symmetric real matrix, corresponding to a positive
 quadratic form (not necessarily definite: $x$ needs not have maximal rank).
 The result is a unimodular
 transformation matrix $T$ such that $x \cdot T$ is an LLL-reduced basis of
 the lattice generated by the column vectors of $x$. See \tet{qflll} for
 further details about the LLL implementation.

 If $\fl=0$ (default), assume that $G$ has either exact (integral or
 rational) or real floating point entries. The matrix is rescaled, converted
 to integers.
 Computations involving Gram-Schmidt vectors are approximate, with precision
 varying as needed (Lehmer's trick, as generalized by Schnorr). Adapted from
 Nguyen and Stehl\'e's algorithm and Stehl\'e's code (\kbd{fplll-1.3}) and
 FLATTER algorithm for Heninger and Ryan.

 If $\fl=1$, disable use of FLATTER algorithm.

 $\fl=4$: $G$ has integer entries, gives the kernel and reduced image of $x$.

 $\fl=5$: same as $4$, but $G$ may have polynomial coefficients.

Variant: Also available are \fun{GEN}{lllgram}{GEN G} ($\fl=0$),
 \fun{GEN}{lllgramint}{GEN G} ($\fl=1$), and \fun{GEN}{lllgramkerim}{GEN G}
 ($\fl=4$).
