LLLReducedGramMat( G [,y] )
LLLReducedGramMat
provides an implementation of the LLL lattice
reduction algorithm by Lenstra, Lenstra and Lovaccent19 asz
(see~LLL82, Poh87). The implementation follows the
description on pages 94f. in~Coh93.
Let G the Gram matrix of the vectors (b_1, b_2, ldots, b_n); this means G is either a square symmetric matrix or lower triangular matrix (only the entries in the lower triangular half are used by the program).
LLLReducedGramMat
returns a record whose component remainder
is the
Gram matrix of the LLL reduced basis corresponding to (b_1, b_2, ldots,
b_n). If G was a lower triangular matrix then also the remainder
component is a lower triangular matrix.
The result record contains also the components relations
and
transformation
, which have the following meaning.
relations
is a basis of the space of vectors (x_1,x_2,ldots,x_n)
such that sum_{i=1}^n x_i b_i is zero, and transformation
gives the
expression of the new lattice basis in terms of the old, i.e.,
transformation
is the matrix T such that T cdot <G> cdot T^{tr}
is the remainder
component of the result.
The optional argument y denotes the ``sensitivity of the algorithm,
it must be a rational number between frac{1}{4} and 1; the default
value is <y> = frac{3}{4}.
(The function LLLReducedBasis computes an LLL reduced basis.)
gap> g:= [ [ 4, 6, 5, 2, 2 ], [ 6, 13, 7, 4, 4 ], > [ 5, 7, 11, 2, 0 ], [ 2, 4, 2, 8, 4 ], [ 2, 4, 0, 4, 8 ] ];; gap> LLLReducedGramMat( g ); rec( remainder := [ [ 4, 2, 1, 2, -1 ], [ 2, 5, 0, 2, 0 ], [ 1, 0, 5, 0, 2 ], [ 2, 2, 0, 8, 2 ], [ -1, 0, 2, 2, 7 ] ], relation := [ ], transformation := [ [ 1, 0, 0, 0, 0 ], [ -1, 1, 0, 0, 0 ], [ -1, 0, 1, 0, 0 ], [ 0, 0, 0, 1, 0 ], [ -2, 0, 1, 0, 1 ] ], scalarproducts := [ , [ 1/2 ], [ 1/4, -1/8 ], [ 1/2, 1/4, -2/25 ], [ -1/4, 1/8, 37/75, 8/21 ] ], bsnorms := [ 4, 4, 75/16, 168/25, 32/7 ] )
GAP 3.4.4