ExactErrorBoundedEvaluator Class Reference

#include <evaluator.h>

Public Member Functions

 ExactErrorBoundedEvaluator (int d, MatGSOInterface< Z_NR< mpz_t >, FP_NR< mpfr_t > > &_gso, EvaluatorMode eval_mode, size_t nr_solutions=1, EvaluatorStrategy update_strategy=EVALSTRATEGY_BEST_N_SOLUTIONS, bool find_subsolutions=false)
 
virtual ~ExactErrorBoundedEvaluator ()
 
virtual bool get_max_error (FP_NR< mpfr_t > &max_error, const FP_NR< mpfr_t > &sol_dist)
 
virtual void eval_sol (const vector< FP_NR< mpfr_t > > &new_sol_coord, const enumf &new_partial_dist, enumf &max_dist)
 
virtual void eval_sub_sol (int offset, const vector< FP_NR< mpfr_t > > &new_sub_sol_coord, const enumf &sub_dist)
 
Z_NR< mpz_t > exact_sol_dist (const vector< FP_NR< mpfr_t > > &sol_coord)
 
Z_NR< mpz_t > exact_subsol_dist (int offset, const vector< FP_NR< mpfr_t > > &sol_coord)
 
- Public Member Functions inherited from 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)
 
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

Z_NR< mpz_t > int_max_dist
 
- Data Fields inherited from ErrorBoundedEvaluator
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

ExactEvaluator stores the best solution found by enumerate. The result is guaranteed, but the the evaluation of new solutions is longer.

Constructor & Destructor Documentation

◆ ExactErrorBoundedEvaluator()

ExactErrorBoundedEvaluator::ExactErrorBoundedEvaluator ( int  d,
MatGSOInterface< Z_NR< mpz_t >, FP_NR< mpfr_t > > &  _gso,
EvaluatorMode  eval_mode,
size_t  nr_solutions = 1,
EvaluatorStrategy  update_strategy = EVALSTRATEGY_BEST_N_SOLUTIONS,
bool  find_subsolutions = false 
)
inline

◆ ~ExactErrorBoundedEvaluator()

virtual ExactErrorBoundedEvaluator::~ExactErrorBoundedEvaluator ( )
inlinevirtual

Member Function Documentation

◆ eval_sol()

void ExactErrorBoundedEvaluator::eval_sol ( const vector< FP_NR< mpfr_t > > &  new_sol_coord,
const enumf new_partial_dist,
enumf max_dist 
)
virtual

interface for the enumerator

Implements Evaluator< FP_NR< mpfr_t > >.

◆ eval_sub_sol()

void ExactErrorBoundedEvaluator::eval_sub_sol ( int  offset,
const vector< FP_NR< mpfr_t > > &  new_sub_sol_coord,
const enumf sub_dist 
)
virtual

◆ exact_sol_dist()

Z_NR< mpz_t > ExactErrorBoundedEvaluator::exact_sol_dist ( const vector< FP_NR< mpfr_t > > &  sol_coord)

◆ exact_subsol_dist()

Z_NR< mpz_t > ExactErrorBoundedEvaluator::exact_subsol_dist ( int  offset,
const vector< FP_NR< mpfr_t > > &  sol_coord 
)

◆ get_max_error()

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

Sets max_error to 0: the result is guaranteed.

Implements ErrorBoundedEvaluator.

Field Documentation

◆ int_max_dist

Z_NR<mpz_t> ExactErrorBoundedEvaluator::int_max_dist

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