Wrapper. This class provides an externally callable API for LLL reducing some basis b
. This class forcibly instantiates some template declarations (see FPLLL_DECLARE_LLL(T) for more information at the bottom of this class) and provides an interface for calling provable, heuristic and fast variants of both LLL and HLLL.
More...
#include <wrapper.h>
Public Member Functions | |
Wrapper (ZZ_mat< mpz_t > &b, ZZ_mat< mpz_t > &u, ZZ_mat< mpz_t > &u_inv, double delta, double eta, int flags) | |
Wrapper (ZZ_mat< mpz_t > &b, ZZ_mat< mpz_t > &u, ZZ_mat< mpz_t > &u_inv, double delta, double eta, double theta, double c, int flags) | |
bool | lll () |
bool | hlll () |
Data Fields | |
int | status |
Detailed Description
Wrapper. This class provides an externally callable API for LLL reducing some basis b
. This class forcibly instantiates some template declarations (see FPLLL_DECLARE_LLL(T) for more information at the bottom of this class) and provides an interface for calling provable, heuristic and fast variants of both LLL and HLLL.
User note: all of the parameters passed into this class are non-const references. Thus, this class may overwrite these variables.
In particular, the methods in this class typically over-write the parameter u
with the transformation matrix applied to b
to produce LLL(B). In other words, let C = LLL(B). Then we can write C = U B for some unimodular transformation matrix U. For this reason, u
should either be an empty matrix or the identity matrix when it is passed in to this function, so that no information is lost.
Similarly, the parameter u_inv
will contain the inverse matrix u ^ -1
. This allows you to recover the original basis b
by multiplying C
by u_inv
. Note that all operations on this object are carried out on the transpose of this matrix (see gso_interface.h) for speed: hence the discrepancy between the names (see the lll_reduction method in wraper.cpp for this). This and other such behaviour on these parameters is described in some detail in gso_interface.h.
Constructor & Destructor Documentation
◆ Wrapper() [1/2]
Wrapper::Wrapper | ( | ZZ_mat< mpz_t > & | b, |
ZZ_mat< mpz_t > & | u, | ||
ZZ_mat< mpz_t > & | u_inv, | ||
double | delta, | ||
double | eta, | ||
int | flags | ||
) |
◆ Wrapper() [2/2]
Wrapper::Wrapper | ( | ZZ_mat< mpz_t > & | b, |
ZZ_mat< mpz_t > & | u, | ||
ZZ_mat< mpz_t > & | u_inv, | ||
double | delta, | ||
double | eta, | ||
double | theta, | ||
double | c, | ||
int | flags | ||
) |
Member Function Documentation
◆ hlll()
bool Wrapper::hlll | ( | ) |
◆ lll()
bool Wrapper::lll | ( | ) |
Wrapper.lll() calls
- heuristic_lll()
- fast_lll()
- proved_lll()
Field Documentation
◆ status
int Wrapper::status |
The documentation for this class was generated from the following files:
- fplll/wrapper.h
- fplll/wrapper.cpp