SMT-RAT
24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
|
#include <Projection.h>
Public Member Functions | |
std::size_t | dim () const |
Returns the dimension of the projection. More... | |
const auto & | vars () const |
Returns the variables used for projection. More... | |
void | reset () |
Resets all datastructures, use the given variables from now on. More... | |
template<typename F > | |
void | setRemoveCallback (F &&f) |
Sets a callback that is called whenever polynomials are removed. More... | |
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. More... | |
virtual carl::Bitset | addPolynomial (const UPoly &p, std::size_t cid, bool isBound)=0 |
Adds the given polynomial to the projection. More... | |
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 calls the appropriate overload. More... | |
virtual carl::Bitset | addEqConstraint (const UPoly &p, std::size_t cid, bool isBound) |
Adds the given polynomial of an equational constraint to the projection. More... | |
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 overload. More... | |
virtual void | removePolynomial (const UPoly &p, std::size_t cid, bool isBound)=0 |
Removes the given polynomial from the projection. More... | |
virtual std::size_t | size (std::size_t level) const =0 |
std::size_t | size () const |
virtual bool | empty (std::size_t level) const =0 |
virtual bool | empty () |
OptionalID | getPolyForLifting (std::size_t level, SampleLiftedWith &slw) |
Get a polynomial from this level suited for lifting. More... | |
virtual bool | hasPolynomialById (std::size_t level, std::size_t id) const =0 |
virtual const UPoly & | getPolynomialById (std::size_t level, std::size_t id) const =0 |
Retrieves a polynomial from its id. More... | |
virtual void | exportAsDot (std::ostream &) const |
virtual Origin | getOrigin (std::size_t level, std::size_t id) const |
Protected Types | |
using | Constraints = CADConstraints< Settings::backtracking > |
Protected Member Functions | |
void | callRemoveCallback (std::size_t level, const SampleLiftedWith &slw) const |
std::size_t | getID (std::size_t level) |
Returns a fresh polynomial id for the given level. More... | |
void | freeID (std::size_t level, std::size_t id) |
Frees a currently used polynomial id for the given level. More... | |
carl::Variable | var (std::size_t level) const |
Returns the variable that corresponds to the given level, that is the variable eliminated in this level. More... | |
bool | canBePurgedByBounds (const UPoly &p) const |
Checks whether a polynomial can safely be ignored due to the bounds. More... | |
bool | isPurged (std::size_t level, std::size_t id) |
Protected Attributes | |
const Constraints & | mConstraints |
std::vector< PolynomialLiftingQueue< BaseProjection > > | mLiftingQueues |
List of lifting queues that can be used for incremental projection. More... | |
ProjectionInformation | mInfo |
Additional info on projection, projection levels and projection polynomials. More... | |
ProjectionOperator | mOperator |
The projection operator. More... | |
std::function< void(std::size_t, const SampleLiftedWith &)> | mRemoveCallback |
Callback to be called when polynomials are removed. The arguments are the projection level and a bitset that indicate which polynomials were removed in this level. More... | |
Private Attributes | |
std::vector< carl::IDPool > | mIDPools |
Lift of id pools to generate fresh IDs for polynomials. More... | |
Definition at line 16 of file Projection.h.
|
protectedinherited |
Definition at line 22 of file BaseProjection.h.
|
inlineinherited |
Adds the given polynomial of an equational constraint to the projection. Converts to a UPoly and calls the appropriate overload.
Definition at line 117 of file BaseProjection.h.
|
inlinevirtualinherited |
Adds the given polynomial of an equational constraint to the projection.
Reimplemented in smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
Definition at line 121 of file BaseProjection.h.
|
inlineinherited |
Adds the given polynomial to the projection. Converts to a UPoly and calls the appropriate overload.
Definition at line 111 of file BaseProjection.h.
|
pure virtualinherited |
Adds the given polynomial to the projection.
Implemented in smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >, and smtrat::cad::Projection< Incrementality::SIMPLE, BT, Settings >.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Checks whether a polynomial can safely be ignored due to the bounds.
Definition at line 59 of file BaseProjection.h.
|
inlineinherited |
Returns the dimension of the projection.
Definition at line 88 of file BaseProjection.h.
|
inlinevirtualinherited |
Definition at line 140 of file BaseProjection.h.
|
pure virtualinherited |
Implemented in smtrat::qe::cad::Projection< Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, and smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
|
inlinevirtualinherited |
Reimplemented in smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, and smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
Definition at line 168 of file BaseProjection.h.
|
inlineprotectedinherited |
Frees a currently used polynomial id for the given level.
Definition at line 49 of file BaseProjection.h.
|
inlineprotectedinherited |
Returns a fresh polynomial id for the given level.
Definition at line 44 of file BaseProjection.h.
|
inlinevirtualinherited |
Reimplemented in smtrat::cad::Projection< Incrementality::FULL, BT, Settings >.
Definition at line 169 of file BaseProjection.h.
|
inlineinherited |
Get a polynomial from this level suited for lifting.
Definition at line 148 of file BaseProjection.h.
|
pure virtualinherited |
Retrieves a polynomial from its id.
Implemented in smtrat::qe::cad::Projection< Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, and smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
|
pure virtualinherited |
Implemented in smtrat::qe::cad::Projection< Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, and smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
|
inlineprotectedinherited |
Definition at line 76 of file BaseProjection.h.
|
inlineinherited |
Removes the given polynomial from the projection. Converts to a UPoly and calls the appropriate overload.
Definition at line 125 of file BaseProjection.h.
|
pure virtualinherited |
Removes the given polynomial from the projection.
Implemented in smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >, smtrat::cad::Projection< Incrementality::SIMPLE, BT, Settings >, and smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >.
|
inlineinherited |
Resets all datastructures, use the given variables from now on.
Definition at line 98 of file BaseProjection.h.
|
inlineinherited |
Sets a callback that is called whenever polynomials are removed.
Definition at line 107 of file BaseProjection.h.
|
inlineinherited |
Definition at line 132 of file BaseProjection.h.
|
pure virtualinherited |
Implemented in smtrat::qe::cad::Projection< Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::UNORDERED, Settings >, smtrat::cad::Projection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::ModelBasedProjection< Incrementality::NONE, Backtracking::ORDERED, Settings >, smtrat::cad::Projection< Incrementality::FULL, BT, Settings >, and smtrat::cad::Projection< Incrementality::FULL, Backtracking::HIDE, Settings >.
|
inlineprotectedinherited |
Returns the variable that corresponds to the given level, that is the variable eliminated in this level.
Definition at line 54 of file BaseProjection.h.
|
inlineinherited |
Returns the variables used for projection.
Definition at line 94 of file BaseProjection.h.
|
protectedinherited |
Definition at line 28 of file BaseProjection.h.
|
privateinherited |
Lift of id pools to generate fresh IDs for polynomials.
Definition at line 25 of file BaseProjection.h.
|
protectedinherited |
Additional info on projection, projection levels and projection polynomials.
Definition at line 32 of file BaseProjection.h.
|
protectedinherited |
List of lifting queues that can be used for incremental projection.
Definition at line 30 of file BaseProjection.h.
|
protectedinherited |
The projection operator.
Definition at line 34 of file BaseProjection.h.
|
protectedinherited |
Callback to be called when polynomials are removed. The arguments are the projection level and a bitset that indicate which polynomials were removed in this level.
Definition at line 36 of file BaseProjection.h.