39#ifdef FPLLL_WITH_LONG_DOUBLE
52 bool lll(
int kappa_min = 0,
int kappa_start = 0,
int kappa_end = -1,
53 int size_reduction_start = 0);
66 inline bool size_reduction(
int kappa_min = 0,
int kappa_end = -1,
int size_reduction_start = 0);
84 bool babai(
int kappa,
int size_reduction_end,
int size_reduction_start = 0);
85 inline bool early_reduction(
int start,
int size_reduction_start = 0);
86 inline void print_params();
87 inline bool set_status(
int new_status);
90 FT delta, eta, swap_threshold;
92 bool enable_early_red;
96 vector<FT> lovasz_tests;
98 vector<long> babai_expo;
103template <
class ZT,
class FT>
106template <
class ZT,
class FT>
108 int size_reduction_start)
116 for (
int k = kappa_min; k < kappa_end; k++)
118 if ((k > 0 && !
babai(k, k, size_reduction_start)) || !m.update_gso_row(k))
124template <
class ZT,
class FT>
130 cerr <<
"Early reduction start=" << start + 1 << endl;
132 for (
int i = start; i < m.d; i++)
134 if (!
babai(i, start, size_reduction_start))
138 last_early_red = start;
144 cerr <<
"Entering LLL"
145 <<
"\ndelta = " << delta <<
"\neta = " << eta <<
"\nprecision = " << FT::get_prec()
146 <<
"\nexact_dot_product = " <<
static_cast<int>(m.enable_int_gram)
147 <<
"\nrow_expo = " <<
static_cast<int>(m.enable_row_expo)
148 <<
"\nearly_red = " <<
static_cast<int>(enable_early_red)
149 <<
"\nsiegel_cond = " <<
static_cast<int>(siegel)
150 <<
"\nlong_in_babai = " <<
static_cast<int>(m.row_op_force_long) << endl;
160 cerr <<
"End of LLL: success" << endl;
164 cerr <<
"End of LLL: failure: " <<
RED_STATUS_STR[status] << endl;
int status
Definition: lll.h:68
int final_kappa
Definition: lll.h:69
int n_swaps
Definition: lll.h:72
bool size_reduction(int kappa_min=0, int kappa_end=-1, int size_reduction_start=0)
Size reduction.
Definition: lll.h:107
LLLReduction(MatGSOInterface< ZT, FT > &m, double delta, double eta, int flags)
Definition: lll.cpp:28
~LLLReduction()
Definition: lll.h:40
int zeros
Definition: lll.h:71
int last_early_red
Definition: lll.h:70
bool lll(int kappa_min=0, int kappa_start=0, int kappa_end=-1, int size_reduction_start=0)
LLL reduction.
Definition: lll.cpp:45
Definition: gso_interface.h:60
const char *const RED_STATUS_STR[RED_STATUS_MAX]
Definition: defs.h:171
@ RED_URL_ERR
Definition: defs.h:167
@ RED_SUCCESS
Definition: defs.h:155
#define FPLLL_END_NAMESPACE
Definition: defs.h:117
#define FPLLL_BEGIN_NAMESPACE
Definition: defs.h:114
bool is_lll_reduced(MatGSOInterface< ZT, FT > &m, double delta, double eta)
Definition: lll.cpp:227
FPLLL_BEGIN_NAMESPACE void extend_vect(vector< T > &v, int size)
Definition: numvect.h:25
static void babai(const FP_mat< mpfr_t > &matrix, const Matrix< FP_NR< mpfr_t > > &mu, const Matrix< FP_NR< mpfr_t > > &r, const vector< FP_NR< mpfr_t > > &target, vector< FP_NR< mpfr_t > > &target_coord)
Definition: svpcvp.cpp:517