FastErrorBoundedEvaluator Class Reference

#include <evaluator.h>

Public Member Functions

 FastErrorBoundedEvaluator (int d=0, const Matrix< FP_NR< mpfr_t > > &mu=Matrix< FP_NR< mpfr_t > >(), const Matrix< FP_NR< mpfr_t > > &r=Matrix< FP_NR< mpfr_t > >(), EvaluatorMode eval_mode=EVALMODE_SV, size_t nr_solutions=1, EvaluatorStrategy update_strategy=EVALSTRATEGY_BEST_N_SOLUTIONS, bool find_subsolutions=false)
 
virtual ~FastErrorBoundedEvaluator ()
 
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)
 
- 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)
 

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
 
- 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
 
- 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

Simple solution evaluator which provides a non-certified result, but can give an error bound. The same object can be used for several calls to enumerate on different instances.

Constructor & Destructor Documentation

◆ FastErrorBoundedEvaluator()

FastErrorBoundedEvaluator::FastErrorBoundedEvaluator ( int  d = 0,
const Matrix< FP_NR< mpfr_t > > &  mu = Matrix<FP_NR<mpfr_t>>(),
const Matrix< FP_NR< mpfr_t > > &  r = Matrix<FP_NR<mpfr_t>>(),
EvaluatorMode  eval_mode = EVALMODE_SV,
size_t  nr_solutions = 1,
EvaluatorStrategy  update_strategy = EVALSTRATEGY_BEST_N_SOLUTIONS,
bool  find_subsolutions = false 
)
inline

◆ ~FastErrorBoundedEvaluator()

virtual FastErrorBoundedEvaluator::~FastErrorBoundedEvaluator ( )
inlinevirtual

Member Function Documentation

◆ eval_sol()

void FastErrorBoundedEvaluator::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 FastErrorBoundedEvaluator::eval_sub_sol ( int  offset,
const vector< FP_NR< mpfr_t > > &  new_sub_sol_coord,
const enumf sub_dist 
)
virtual

◆ get_max_error()

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

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

Implements ErrorBoundedEvaluator.


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