Macaulay2 Engine
Loading...
Searching...
No Matches
fplll-interface.hpp File Reference

Engine-side wrapper around the external fplll lattice-reduction library. More...

Go to the source code of this file.

Functions

bool fp_LLL (MutableMatrix *M, MutableMatrix *U, int strategy)

Detailed Description

Engine-side wrapper around the external fplll lattice-reduction library.

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

Declares a single entry point, fp_LLL(M, U, strategy): M holds the lattice basis with one basis vector per column and is reduced in place. The current implementation asserts U == NULL and ignores strategy; internally it always configures fplll with delta = 0.99, eta = 0.51, and LM_WRAPPER — the wrapper that picks an LLL variant automatically based on the input size. Returns true on success and reports the underlying RED_* error on Babai or LLL failure.

The whole body of fplll-interface.cpp is gated behind #ifdef HAVE_FPLLL; when fplll is not configured in, the function raises ERROR("fplll is not available ...") and returns 0 so callers don't have to write their own #ifdef. The other in-tree LLL backends are LLL.hpp (LLLoperations, the pure-engine implementation) and ntl-interface.hppntl_LLL (NTL); the top-level M2 LLL routine chooses between them.

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

Definition in file fplll-interface.hpp.