ErrorBoundedEvaluator Class Referenceabstract

#include <evaluator.h>

Public Member Functions

 ErrorBoundedEvaluator (int dim, const Matrix< FP_NR< mpfr_t > > &mmu, const Matrix< FP_NR< mpfr_t > > &mr, EvaluatorMode evalmode, size_t nr_solutions=1, EvaluatorStrategy update_strategy=EVALSTRATEGY_BEST_N_SOLUTIONS, bool find_subsolutions=false)
 
virtual ~ErrorBoundedEvaluator ()
 
void init_delta_def (int prec, double rho, bool withRoundingToEnumf)
 
virtual bool get_max_error (FP_NR< mpfr_t > &max_error, const FP_NR< mpfr_t > &sol_dist)=0
 
bool get_max_error_aux (const FP_NR< mpfr_t > &max_dist, bool boundOnExactVal, FP_NR< mpfr_t > &maxDE)
 
- Public Member Functions inherited from Evaluator< FP_NR< mpfr_t > >
 Evaluator (size_t nr_solutions=1, EvaluatorStrategy update_strategy=EVALSTRATEGY_BEST_N_SOLUTIONS, bool find_subsolutions=false)
 
virtual ~Evaluator ()
 
container_t::const_reverse_iterator begin () const
 
container_t::reverse_iterator begin ()
 
container_t::const_reverse_iterator end () const
 
container_t::reverse_iterator end ()
 
size_t size () const
 
bool empty () const
 
virtual void eval_sol (const vector< FP_NR< mpfr_t > > &new_sol_coord, const enumf &new_partial_dist, enumf &max_dist)=0
 
virtual void eval_sub_sol (int offset, const vector< FP_NR< mpfr_t > > &new_sub_sol_coord, const enumf &sub_dist)=0
 
virtual void set_normexp (long norm_exp)
 

Data Fields

EvaluatorMode eval_mode
 
int d
 
const Matrix< FP_NR< mpfr_t > > & mu
 
const Matrix< FP_NR< mpfr_t > > & r
 
bool input_error_defined
 
vector< FP_NR< mpfr_t > > max_dr_diag
 
vector< FP_NR< mpfr_t > > max_dm_u
 
- Data Fields inherited from Evaluator< FP_NR< mpfr_t > >
size_t max_sols
 
EvaluatorStrategy strategy
 
bool findsubsols
 
container_t solutions
 
size_t sol_count
 
std::vector< std::pair< FP_NR< mpfr_t >, std::vector< FP_NR< mpfr_t > > > > sub_solutions
 
long normExp
 

Additional Inherited Members

- Public Types inherited from Evaluator< FP_NR< mpfr_t > >
typedef std::multimap< FP_NR< mpfr_t >, std::vector< FP_NR< mpfr_t > >, std::greater< FP_NR< mpfr_t > > > container_t
 
- Protected Member Functions inherited from Evaluator< FP_NR< mpfr_t > >
virtual enumf calc_enum_bound (const FP_NR< mpfr_t > &dist) const
 
void process_sol (const FP_NR< mpfr_t > &dist, const vector< FP_NR< mpfr_t > > &coord, enumf &max_dist)
 

Detailed Description

ErrorBoundEvaluator provides an extra interface to provide information about the accuracy of solutions.

Constructor & Destructor Documentation

◆ ErrorBoundedEvaluator()

ErrorBoundedEvaluator::ErrorBoundedEvaluator ( int  dim,
const Matrix< FP_NR< mpfr_t > > &  mmu,
const Matrix< FP_NR< mpfr_t > > &  mr,
EvaluatorMode  evalmode,
size_t  nr_solutions = 1,
EvaluatorStrategy  update_strategy = EVALSTRATEGY_BEST_N_SOLUTIONS,
bool  find_subsolutions = false 
)
inline

◆ ~ErrorBoundedEvaluator()

virtual ErrorBoundedEvaluator::~ErrorBoundedEvaluator ( )
inlinevirtual

Member Function Documentation

◆ get_max_error()

virtual bool ErrorBoundedEvaluator::get_max_error ( FP_NR< mpfr_t > &  max_error,
const FP_NR< mpfr_t > &  sol_dist 
)
pure virtual

Computes max_error such that normOfSolution^2 <= (1 + max_error) * lambda_1(L)^2. The default implementation might fail (i.e. return false).

Implemented in FastErrorBoundedEvaluator, and ExactErrorBoundedEvaluator.

◆ get_max_error_aux()

bool ErrorBoundedEvaluator::get_max_error_aux ( const FP_NR< mpfr_t > &  max_dist,
bool  boundOnExactVal,
FP_NR< mpfr_t > &  maxDE 
)

◆ init_delta_def()

FPLLL_BEGIN_NAMESPACE void ErrorBoundedEvaluator::init_delta_def ( int  prec,
double  rho,
bool  withRoundingToEnumf 
)

Field Documentation

◆ d

int ErrorBoundedEvaluator::d

◆ eval_mode

EvaluatorMode ErrorBoundedEvaluator::eval_mode

Configuration

◆ input_error_defined

bool ErrorBoundedEvaluator::input_error_defined

◆ max_dm_u

vector<FP_NR<mpfr_t> > ErrorBoundedEvaluator::max_dm_u

◆ max_dr_diag

vector<FP_NR<mpfr_t> > ErrorBoundedEvaluator::max_dr_diag

◆ mu

const Matrix<FP_NR<mpfr_t> >& ErrorBoundedEvaluator::mu

◆ r

const Matrix<FP_NR<mpfr_t> >& ErrorBoundedEvaluator::r

The documentation for this class was generated from the following files: