44 sr = pow(2.0, -(
double)m.get_d() * c);
72 FT ftmp0, ftmp1, ftmp2;
73 long expo0, expo1, expo2;
85 void size_reduction(
int kappa,
int size_reduction_end,
int size_reduction_start = 0);
90 inline void print_params();
96 inline void compute_dR(
int k);
99 inline bool set_status(
int new_status);
105 inline void compute_eR(
int k);
108 bool verify_size_reduction(
int kappa);
113 bool lovasz_test(
int k);
118 cerr <<
"Entering HLLL" << endl
119 <<
"delta = " << delta << endl
120 <<
"eta = " << eta << endl
121 <<
"theta = " << theta << endl
122 <<
"c = " << c << endl
123 <<
"precision = " << FT::get_prec() << endl
124 <<
"row_expo = " <<
static_cast<int>(m.is_enable_row_expo()) << endl
125 <<
"long_in_size_reduction = " <<
static_cast<int>(m.is_row_op_force_long()) << endl;
127#ifndef HOUSEHOLDER_PRECOMPUTE_INVERSE
128 cerr <<
"householder_precompute_inverse = 0" << endl;
130 cerr <<
"householder_precompute_inverse = 1" << endl;
133#ifndef HOUSEHOLDER_USE_SIZE_REDUCTION_TEST
135 cerr <<
"householder_use_size_reduction_test = 0" << endl;
138 cerr <<
"householder_use_size_reduction_test = 1" << endl;
141#ifndef HOUSEHOLDER_VERIFY_SIZE_REDUCTION_HPLLL
142 cerr <<
"householder_verify_size_reduction_hplll = 0" << endl;
144 cerr <<
"householder_verify_size_reduction_hplll = 1" << endl;
150 m.get_R(dR[k], k, k);
151 dR[k].mul(dR[k], dR[k]);
152 dR[k].mul(delta, dR[k]);
157 m.get_R(eR[k], k, k);
158 eR[k].mul(delta, eR[k]);
168 cerr <<
"End of HLLL: success" << endl;
172 cerr <<
"End of HLLL: failure: " <<
RED_STATUS_STR[status] << endl;
179template <
class ZT,
class FT>
bool hlll()
Househorder inside LLL reduction.
Definition: hlll.cpp:26
int get_status()
Definition: hlll.h:57
HLLLReduction(MatHouseholder< ZT, FT > &arg_m, double delta, double eta, double theta, double c, int flags)
Definition: hlll.h:36
Definition: householder.h:39
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
@ LLL_VERBOSE
Definition: defs.h:224
int is_hlll_reduced(MatHouseholder< ZT, FT > &m, double delta, double eta, double theta)
Definition: hlll.cpp:507