Wrapper Class Reference

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: