13 #include <carl-arith/intervalcontraction/Contraction.h>
21 class ContractionCandidateManager;
23 template<
template<
typename>
class Operator>
52 static const size_t mK = 10;
54 static const double mAlpha;
56 static constexpr
double mAlpha = 0.9;
155 carl::Variable::Arg
lhs()
const
290 void print( std::ostream& _out = std::cout )
const
294 #ifdef CCPRINTORIGINS
295 std::cout << std::endl <<
"Origins(" <<
mOrigin.size()<<
"): " << std::endl;
298 for (
auto originIt =
mOrigin.begin(); originIt !=
mOrigin.end(); ++originIt )
301 (*originIt)->print();
302 std::cout <<
"\t [" << (*originIt) <<
"]" << std::endl;
306 _out <<
", #Origins: " <<
mOrigin.size() << std::endl;
331 return lhs->
id() < rhs->
id();
void resetReusagesAfterTargetDiameterReached()
~ContractionCandidate()
Destructor:
void removeOrigin(const FormulaT &_origin)
carl::Variable::Arg lhs() const
ContractionCandidate(carl::Variable _lhs, const Poly _rhs, const ConstraintT &_constraint, carl::Variable _derivationVar, Contractor< carl::SimpleNewton > &_contractor, const FormulaT &_origin, unsigned _id, bool _usePropagation)
friend ContractionCandidateManager
double lastPayoff() const
bool operator<(ContractionCandidate const &rhs) const
std::set< IcpVariable * > mIcpVariables
carl::Variable mDerivationVar
ContractionCandidate(const ContractionCandidate &_original)=delete
Constructors:
static constexpr double mAlpha
carl::Variable::Arg derivationVar() const
Contractor< carl::SimpleNewton > & mContractor
const Poly & rhs() const
Functions:
Contractor< carl::SimpleNewton > & contractor() const
unsigned incrementReusagesAfterTargetDiameterReached()
unsigned reusagesAfterTargetDiameterReached() const
ContractionCandidate()=delete
bool hasOrigin(const FormulaT &_origin) const
const ConstraintT & constraint() const
void setLhs(carl::Variable _lhs)
void print(std::ostream &_out=std::cout) const
ContractionCandidate(carl::Variable _lhs, const Poly _rhs, const ConstraintT &_constraint, carl::Variable _derivationVar, Contractor< carl::SimpleNewton > &_contractor, unsigned _id, bool _usePropagation)
Constructor only for nonlinear candidates.
void addOrigin(const FormulaT &_origin)
const Poly & derivative() const
bool contract(EvalDoubleIntervalMap &_intervals, DoubleInterval &_resA, DoubleInterval &_resB)
bool operator==(ContractionCandidate const &rhs) const
unsigned mReusagesAfterTargetDiameterReached
const FormulaSetT & origin() const
void setPayoff(double _weight)
void addICPVariable(IcpVariable *_icpVar)
void setDerivationVar(carl::Variable _var)
carl::Contraction< Operator, Poly > Contractor
Class to create the formulas for axioms.
carl::FormulaSet< Poly > FormulaSetT
carl::Formula< Poly > FormulaT
carl::Interval< double > DoubleInterval
carl::MultivariatePolynomial< Rational > Poly
carl::Constraint< Poly > ConstraintT
std::map< carl::Variable, DoubleInterval > EvalDoubleIntervalMap
bool operator()(const ContractionCandidate *const lhs, const ContractionCandidate *const rhs) const