wrapper.cpp File Reference
#include "wrapper.h"
#include "hlll.h"
#include "lll.h"
#include "util.h"

Macros

#define FPLLL_DEFINE_LLL(T, id_t)
 
#define FPLLL_DEFINE_HLLL(T, id_t)
 

Functions

template<class ZT , class FT >
int lll_reduction_zf (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, LLLMethod method, int flags)
 
template<class ZT >
int lll_reduction_wrapper (ZZ_mat< ZT > &, ZZ_mat< ZT > &, ZZ_mat< ZT > &, double, double, FloatType, int, int)
 
template<>
int lll_reduction_wrapper (ZZ_mat< mpz_t > &b, ZZ_mat< mpz_t > &u, ZZ_mat< mpz_t > &u_inv, double delta, double eta, FloatType float_type, int precision, int flags)
 
template<class ZT >
int lll_reduction_z (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, LLLMethod method, IntType int_type, FloatType float_type, int precision, int flags)
 
template<class ZT , class FT >
int is_hlll_reduced_zf (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, double theta)
 
template<class ZT , class FT >
int is_hlll_reduced_pr (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, double theta)
 
template<class ZT >
int hlll_reduction_wrapper (ZZ_mat< ZT > &, ZZ_mat< ZT > &, ZZ_mat< ZT > &, double, double, double, double, FloatType, int, int)
 
template<>
int hlll_reduction_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, FloatType float_type, int precision, int flags)
 
template<class ZT , class FT >
int hlll_reduction_zf (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, double theta, double c, LLLMethod method, int flags)
 
template<class ZT >
int hlll_reduction_z (ZZ_mat< ZT > &b, ZZ_mat< ZT > &u, ZZ_mat< ZT > &u_inv, double delta, double eta, double theta, double c, LLLMethod method, IntType int_type, FloatType float_type, int precision, int flags, bool nolll)
 

Variables

FPLLL_BEGIN_NAMESPACE const double dim_double_max [75]
 
const double eta_dep [10]
 

Macro Definition Documentation

◆ FPLLL_DEFINE_HLLL

#define FPLLL_DEFINE_HLLL (   T,
  id_t 
)

We define HLLL for each input type instead of using a template, in order to force the compiler to instantiate the functions.

◆ FPLLL_DEFINE_LLL

#define FPLLL_DEFINE_LLL (   T,
  id_t 
)

We define LLL for each input type instead of using a template, in order to force the compiler to instantiate the functions.

Function Documentation

◆ hlll_reduction_wrapper() [1/2]

template<>
int hlll_reduction_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,
FloatType  float_type,
int  precision,
int  flags 
)

◆ hlll_reduction_wrapper() [2/2]

template<class ZT >
int hlll_reduction_wrapper ( ZZ_mat< ZT > &  ,
ZZ_mat< ZT > &  ,
ZZ_mat< ZT > &  ,
double  ,
double  ,
double  ,
double  ,
FloatType  ,
int  ,
int   
)

◆ hlll_reduction_z()

template<class ZT >
int hlll_reduction_z ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
double  theta,
double  c,
LLLMethod  method,
IntType  int_type,
FloatType  float_type,
int  precision,
int  flags,
bool  nolll 
)

◆ hlll_reduction_zf()

template<class ZT , class FT >
int hlll_reduction_zf ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
double  theta,
double  c,
LLLMethod  method,
int  flags 
)

◆ is_hlll_reduced_pr()

template<class ZT , class FT >
int is_hlll_reduced_pr ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
double  theta 
)

◆ is_hlll_reduced_zf()

template<class ZT , class FT >
int is_hlll_reduced_zf ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
double  theta 
)

◆ lll_reduction_wrapper() [1/2]

template<>
int lll_reduction_wrapper ( ZZ_mat< mpz_t > &  b,
ZZ_mat< mpz_t > &  u,
ZZ_mat< mpz_t > &  u_inv,
double  delta,
double  eta,
FloatType  float_type,
int  precision,
int  flags 
)

◆ lll_reduction_wrapper() [2/2]

template<class ZT >
int lll_reduction_wrapper ( ZZ_mat< ZT > &  ,
ZZ_mat< ZT > &  ,
ZZ_mat< ZT > &  ,
double  ,
double  ,
FloatType  ,
int  ,
int   
)

◆ lll_reduction_z()

template<class ZT >
int lll_reduction_z ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
LLLMethod  method,
IntType  int_type,
FloatType  float_type,
int  precision,
int  flags 
)

Main function called from call_lll().

◆ lll_reduction_zf()

template<class ZT , class FT >
int lll_reduction_zf ( ZZ_mat< ZT > &  b,
ZZ_mat< ZT > &  u,
ZZ_mat< ZT > &  u_inv,
double  delta,
double  eta,
LLLMethod  method,
int  flags 
)

LLL with a typical method "proved or heuristic or fast". @proved: exact gram + exact rowexp + exact rowaddmul @heuristic: approx. gram + exact rowexp + exact rowaddmul @fast: approx. gram + approx. rowexp + approx. rowaddmul (double, long double, dd_real, qd_real)

Variable Documentation

◆ dim_double_max

FPLLL_BEGIN_NAMESPACE const double dim_double_max[75]
Initial value:
= {
0, 26, 29.6, 28.1, 31.1, 32.6, 34.6, 34, 37.7, 38.8, 39.6, 41.8, 40.9,
43.6, 44.2, 47, 46.8, 50.6, 49.1, 51.5, 52.5, 54.8, 54.6, 57.4, 57.6, 59.9,
61.8, 62.3, 64.5, 67.1, 68.8, 68.3, 69.9, 73.1, 74, 76.1, 76.8, 80.9, 81.8,
83, 85.3, 87.9, 89, 90.1, 89, 94.6, 94.8, 98.7, 99, 101.6, 104.9, 106.8,
108.2, 107.4, 110, 112.7, 114.6, 118.1, 119.7, 121.8, 122.9, 126.6, 128.6, 129, 133.6,
126.9, 135.9, 139.5, 135.2, 137.2, 139.3, 142.8, 142.4, 142.5, 145.4}

◆ eta_dep

const double eta_dep[10]
Initial value:
= {1.,
1.,
1.0521,
1.1254,
1.2535,
1.3957,
1.6231,
1.8189,
2.1025,
2.5117}