11 template<
typename Settings>
22 std::size_t
idPL(std::size_t level)
const {
23 assert(level > 0 && level <=
dim());
24 return dim() - level + 1;
26 std::size_t
idLP(std::size_t level)
const {
27 assert(level > 0 && level <=
dim());
28 return dim() - level + 1;
45 void reset(
const std::vector<carl::Variable>&
vars) {
52 std::size_t
dim()
const {
96 SMTRAT_LOG_DEBUG(
"smtrat.cad",
"Sample " << s <<
" at depth " << it.depth());
98 assert(0 <= it.depth() && it.depth() <
dim());
104 mLifting.liftSample(it, poly, *polyID,
true);
112 std::size_t number_of_cells = 0;
113 const auto& tree =
mLifting.getTree();
114 for(
auto it = tree.begin_leaf(); it != tree.end_leaf(); ++it) {
void reset()
Resets all datastructures, use the given variables from now on.
void removePolynomial(const Poly &p, std::size_t cid, bool isBound)
Removes the given polynomial from the projection. Converts to a UPoly and calls the appropriate overl...
virtual bool hasPolynomialById(std::size_t level, std::size_t id) const =0
carl::Bitset addPolynomial(const Poly &p, std::size_t cid, bool isBound)
Adds the given polynomial to the projection. Converts to a UPoly and calls the appropriate overload.
virtual const UPoly & getPolynomialById(std::size_t level, std::size_t id) const =0
Retrieves a polynomial from its id.
OptionalID getPolyForLifting(std::size_t level, SampleLiftedWith &slw)
Get a polynomial from this level suited for lifting.
carl::Bitset addEqConstraint(const Poly &p, std::size_t cid, bool isBound)
Adds the given polynomial of an equational constraint to the projection. Converts to a UPoly and call...
void setRemoveCallback(F &&f)
Sets a callback that is called whenever polynomials are removed.
std::size_t add(const ConstraintT &c)
carl::Bitset remove(const ConstraintT &c)
Removes a constraint.
void reset(const std::vector< carl::Variable > &vars)
Projection< Settings > mProjection
const auto & getProjection() const
std::vector< Poly > polynomials
std::size_t idLP(std::size_t level) const
void removePolynomial(std::size_t level, std::size_t id)
void addPolynomial(const Poly &p)
smtrat::cad::LiftingTree< Settings > mLifting
smtrat::cad::CADConstraints< Settings::backtracking > mConstraints
typename smtrat::cad::LiftingTree< Settings >::Iterator TreeIterator
std::size_t idPL(std::size_t level) const
void addConstraint(const ConstraintT &c)
void removeConstraint(const ConstraintT &c)
const auto & getLifting() const
std::vector< carl::Variable > mVariables
void reset(const std::vector< carl::Variable > &vars)
Poly normalize(const Poly &p)
Normalizes the given Poly by removing constant and duplicate factors.
carl::UnivariatePolynomial< Poly > UPoly
carl::Bitset SampleLiftedWith
std::vector< carl::Variable > vars(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
carl::MultivariatePolynomial< Rational > Poly
carl::Constraint< Poly > ConstraintT
#define SMTRAT_LOG_WARN(channel, msg)
#define SMTRAT_LOG_DEBUG(channel, msg)