11 #include "../LRAModule/LRAModule.h"
71 EvalDoubleIntervalMap::iterator _intervalPos,
96 carl::Variable::Arg
var()
const
116 (*res.first)->addICPVariable(
this );
123 for(
auto& cc : _candidates )
126 cc->addICPVariable(
this );
129 mCandidates.insert( _candidates.begin(), _candidates.end() );
151 void print( std::ostream& _out = std::cout,
bool _withContractionCandidates =
false )
const
159 if( _withContractionCandidates )
162 _out <<
" Contraction candidates:" << std::endl;
204 if( _interval.lower_bound_type() !=
mIntervalPos->second.lower_bound_type() || _interval.lower() !=
mIntervalPos->second.lower() )
209 if( _interval.upper_bound_type() !=
mIntervalPos->second.upper_bound_type() || _interval.upper() !=
mIntervalPos->second.upper() )
305 return (this->mVar < rhs.
var());
332 return (_lhs->
var() < _rhs->
var());
smtrat::FormulaT mInternalRightBound
carl::Variable::Arg var() const
Updated isExternalUpdated() const
EvalDoubleIntervalMap::iterator mIntervalPos
void removeOriginalConstraint(const FormulaT &_constraint)
bool operator<(IcpVariable const &rhs) const
ModuleInput::iterator externalRightBound() const
void setInternalLeftBound(const smtrat::FormulaT &_left)
const LRAVariable * mLraVar
ModuleInput::iterator externalLeftBound() const
void addOriginalConstraint(const FormulaT &_constraint)
const LRAVariable * lraVar() const
const DoubleInterval & interval() const
Updated isInternalUpdated() const
void setExternalRightBound(ModuleInput::iterator _right)
Updated isInternalBoundsSet() const
const smtrat::FormulaT & internalRightBound() const
FormulaSetT mOriginalConstraints
void setExternalModified()
void setExternalUnmodified()
ContractionCandidates mCandidates
void print(std::ostream &_out=std::cout, bool _withContractionCandidates=false) const
void setInternalRightBound(const smtrat::FormulaT &_right)
IcpVariable(carl::Variable::Arg _var, bool _original, ModuleInput::iterator _defaultPosition, EvalDoubleIntervalMap::iterator _intervalPos, const LRAVariable *_lraVar=NULL)
const smtrat::FormulaT & internalLeftBound() const
void addCandidates(const ContractionCandidates &_candidates)
std::pair< Updated, Updated > mBoundsSet
ContractionCandidates & candidates()
ModuleInput::iterator mExternalLeftBound
std::pair< Updated, Updated > mUpdated
friend std::ostream & operator<<(std::ostream &os, const IcpVariable &_var)
void setInterval(const DoubleInterval &_interval)
void addCandidate(ContractionCandidate *_candidate)
smtrat::FormulaT mInternalLeftBound
ModuleInput::iterator mExternalRightBound
void setInternalUnmodified()
void setExternalLeftBound(ModuleInput::iterator _left)
void setLraVar(const LRAVariable *_lraVar)
ModuleInput::iterator mDefaultPosition
EvalDoubleIntervalMap::const_iterator intervalPosition() const
void print(std::ostream &_out=std::cout) const
void printAllBounds(std::ostream &_out=std::cout, const std::string _init="") const
LRAModule< LRASettings1 >::LRAVariable LRAVariable
std::set< const IcpVariable *, icpVariableComp > set_icpVariable
Class to create the formulas for axioms.
carl::FormulaSet< Poly > FormulaSetT
std::set< icp::ContractionCandidate *, icp::contractionCandidateComp > ContractionCandidates
carl::Formula< Poly > FormulaT
carl::Interval< double > DoubleInterval
bool operator()(const IcpVariable *const _lhs, const IcpVariable *const _rhs) const