SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::cadcells::datastructures::PolyPool Class Reference

A pool for polynomials. More...

#include <polynomials.h>

Collaboration diagram for smtrat::cadcells::datastructures::PolyPool:

Data Structures

struct  Element
 
struct  element_less
 

Public Member Functions

 PolyPool (const Polynomial::ContextType &context)
 Constructs a polynomial pool with respect to a variable ordering. More...
 
const VariableOrderingvar_order () const
 
std::pair< PolyRef, bool > insert (const Polynomial &poly)
 
PolyRef operator() (const Polynomial &poly)
 
const Polynomialget (const PolyRef &ref) const
 
const Polynomialoperator() (const PolyRef &ref) const
 
PolyConstraint insert (const Constraint &constraint)
 
PolyConstraint operator() (const Constraint &constraint)
 
const Constraint get (const PolyConstraint &ref) const
 
const Constraint operator() (const PolyConstraint &ref) const
 
bool known (const Polynomial &poly) const
 
void clear_levels (size_t level)
 
const Polynomial::ContextType & context () const
 

Private Types

typedef boost::intrusive::set< ElementElementSet
 

Private Member Functions

PolyRef negative_poly_ref () const
 
PolyRef zero_poly_ref () const
 
PolyRef positive_poly_ref () const
 

Private Attributes

Polynomial::ContextType m_context
 
const VariableOrderingm_var_order
 
std::vector< std::vector< std::unique_ptr< Element > > > m_polys
 
std::vector< ElementSetm_poly_ids
 
Polynomial negative_poly
 
Polynomial zero_poly
 
Polynomial positive_poly
 

Friends

std::ostream & operator<< (std::ostream &os, const PolyPool &data)
 

Detailed Description

A pool for polynomials.

The polynomials are stored in a table, that is, a list of lists of polynomials of a given level.

Definition at line 71 of file polynomials.h.

Member Typedef Documentation

◆ ElementSet

typedef boost::intrusive::set<Element> smtrat::cadcells::datastructures::PolyPool::ElementSet
private

Definition at line 89 of file polynomials.h.

Constructor & Destructor Documentation

◆ PolyPool()

smtrat::cadcells::datastructures::PolyPool::PolyPool ( const Polynomial::ContextType &  context)
inline

Constructs a polynomial pool with respect to a variable ordering.

Parameters
var_orderThe variable ordering determining polynomial levels.

Definition at line 110 of file polynomials.h.

Member Function Documentation

◆ clear_levels()

void smtrat::cadcells::datastructures::PolyPool::clear_levels ( size_t  level)
inline

Definition at line 194 of file polynomials.h.

◆ context()

const Polynomial::ContextType& smtrat::cadcells::datastructures::PolyPool::context ( ) const
inline

Definition at line 201 of file polynomials.h.

Here is the caller graph for this function:

◆ get() [1/2]

const Constraint smtrat::cadcells::datastructures::PolyPool::get ( const PolyConstraint ref) const
inline

Definition at line 179 of file polynomials.h.

Here is the call graph for this function:

◆ get() [2/2]

const Polynomial& smtrat::cadcells::datastructures::PolyPool::get ( const PolyRef ref) const
inline

Definition at line 153 of file polynomials.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert() [1/2]

PolyConstraint smtrat::cadcells::datastructures::PolyPool::insert ( const Constraint constraint)
inline

Definition at line 169 of file polynomials.h.

Here is the call graph for this function:

◆ insert() [2/2]

std::pair<PolyRef,bool> smtrat::cadcells::datastructures::PolyPool::insert ( const Polynomial poly)
inline

Definition at line 119 of file polynomials.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ known()

bool smtrat::cadcells::datastructures::PolyPool::known ( const Polynomial poly) const
inline

Definition at line 187 of file polynomials.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ negative_poly_ref()

PolyRef smtrat::cadcells::datastructures::PolyPool::negative_poly_ref ( ) const
inlineprivate

Definition at line 97 of file polynomials.h.

Here is the caller graph for this function:

◆ operator()() [1/4]

PolyConstraint smtrat::cadcells::datastructures::PolyPool::operator() ( const Constraint constraint)
inline

Definition at line 175 of file polynomials.h.

Here is the call graph for this function:

◆ operator()() [2/4]

const Constraint smtrat::cadcells::datastructures::PolyPool::operator() ( const PolyConstraint ref) const
inline

Definition at line 183 of file polynomials.h.

Here is the call graph for this function:

◆ operator()() [3/4]

PolyRef smtrat::cadcells::datastructures::PolyPool::operator() ( const Polynomial poly)
inline

Definition at line 149 of file polynomials.h.

Here is the call graph for this function:

◆ operator()() [4/4]

const Polynomial& smtrat::cadcells::datastructures::PolyPool::operator() ( const PolyRef ref) const
inline

Definition at line 165 of file polynomials.h.

Here is the call graph for this function:

◆ positive_poly_ref()

PolyRef smtrat::cadcells::datastructures::PolyPool::positive_poly_ref ( ) const
inlineprivate

Definition at line 99 of file polynomials.h.

Here is the caller graph for this function:

◆ var_order()

const VariableOrdering& smtrat::cadcells::datastructures::PolyPool::var_order ( ) const
inline

Definition at line 117 of file polynomials.h.

Here is the caller graph for this function:

◆ zero_poly_ref()

PolyRef smtrat::cadcells::datastructures::PolyPool::zero_poly_ref ( ) const
inlineprivate

Definition at line 98 of file polynomials.h.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const PolyPool data 
)
friend

Definition at line 205 of file polynomials.h.

Field Documentation

◆ m_context

Polynomial::ContextType smtrat::cadcells::datastructures::PolyPool::m_context
private

Definition at line 91 of file polynomials.h.

◆ m_poly_ids

std::vector<ElementSet> smtrat::cadcells::datastructures::PolyPool::m_poly_ids
private

Definition at line 95 of file polynomials.h.

◆ m_polys

std::vector<std::vector<std::unique_ptr<Element> > > smtrat::cadcells::datastructures::PolyPool::m_polys
private

Definition at line 94 of file polynomials.h.

◆ m_var_order

const VariableOrdering& smtrat::cadcells::datastructures::PolyPool::m_var_order
private

Definition at line 92 of file polynomials.h.

◆ negative_poly

Polynomial smtrat::cadcells::datastructures::PolyPool::negative_poly
private

Definition at line 100 of file polynomials.h.

◆ positive_poly

Polynomial smtrat::cadcells::datastructures::PolyPool::positive_poly
private

Definition at line 102 of file polynomials.h.

◆ zero_poly

Polynomial smtrat::cadcells::datastructures::PolyPool::zero_poly
private

Definition at line 101 of file polynomials.h.


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