Macaulay2 Engine
Loading...
Searching...
No Matches
LLL.hpp File Reference

Lenstra-Lenstra-Lovász integer lattice basis reduction, in place on a MutableMatrix. More...

#include "mat.hpp"
#include "relem.hpp"

Go to the source code of this file.

Classes

class  LLLoperations
 Static-method namespace for the LLL lattice-basis reduction algorithm operating on a MutableMatrix. More...

Detailed Description

Lenstra-Lenstra-Lovász integer lattice basis reduction, in place on a MutableMatrix.

Note
AI-generated documentation. Verify against the source before relying on it.

Declares LLLoperations, a static-only collection that runs the classical Lenstra-Lenstra-Lovász (1982) algorithm on the columns of a MutableMatrix over ZZ. The output is an LLL-reduced basis of the same lattice: each Gram-Schmidt projection coefficient is bounded by 1/2 and consecutive squared GS lengths satisfy the Lovász condition with parameter α = alphaTop/alphaBottom. Closer to 1 means stronger reduction and slower runtime.

The class is intentionally objectless — REDI is the size-reduction step, Lovasz is the swap-condition check, SWAPI does the column swap, and initializeLLL / doLLL (with doLLL's nsteps argument) coordinate them while a companion lambda matrix carries the integer Gram-Schmidt numerators. Reduction happens in place, which is why the routines work on MutableMatrix rather than the immutable Matrix. The packaged top-level LLL(M, U, threshold) is surfaced to M2 by rawLLL in interface/mutable-matrix.cpp; faster external backends are available through fplll-interface.hpp and ntl-interface.hppntl_LLL.

See also
mat.hpp
fplll-interface.hpp
ntl-interface.hpp

Definition in file LLL.hpp.