SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::expression::ExpressionPool Class Reference

#include <ExpressionPool.h>

Inheritance diagram for smtrat::expression::ExpressionPool:
Collaboration diagram for smtrat::expression::ExpressionPool:

Public Member Functions

const ExpressionContentcreate (carl::Variable::Arg var)
 
const ExpressionContentcreate (ITEType _type, Expression &&_if, Expression &&_then, Expression &&_else)
 
const ExpressionContentcreate (QuantifierType _type, std::vector< carl::Variable > &&_variables, Expression &&_expression)
 
const ExpressionContentcreate (UnaryType _type, Expression &&_expression)
 
const ExpressionContentcreate (BinaryType _type, Expression &&_lhs, Expression &&_rhs)
 
const ExpressionContentcreate (NaryType _type, Expressions &&_expressions)
 
const ExpressionContentcreate (NaryType _type, const std::initializer_list< Expression > &_expressions)
 

Static Public Member Functions

template<typename... Args>
static const ExpressionContentcreate (Args &&... args)
 

Protected Member Functions

 ExpressionPool ()
 
const ExpressionContentadd (ExpressionContent *_ec)
 

Private Attributes

std::size_t mNextID
 
std::unordered_set< ExpressionContent * > mPool
 

Friends

class ExpressionModifier
 

Detailed Description

Definition at line 11 of file ExpressionPool.h.

Constructor & Destructor Documentation

◆ ExpressionPool()

smtrat::expression::ExpressionPool::ExpressionPool ( )
inlineprotected

Definition at line 20 of file ExpressionPool.h.

Member Function Documentation

◆ add()

const ExpressionContent* smtrat::expression::ExpressionPool::add ( ExpressionContent _ec)
protected

◆ create() [1/8]

template<typename... Args>
static const ExpressionContent* smtrat::expression::ExpressionPool::create ( Args &&...  args)
inlinestatic

Definition at line 39 of file ExpressionPool.h.

◆ create() [2/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( BinaryType  _type,
Expression &&  _lhs,
Expression &&  _rhs 
)

◆ create() [3/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( carl::Variable::Arg  var)
Here is the caller graph for this function:

◆ create() [4/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( ITEType  _type,
Expression &&  _if,
Expression &&  _then,
Expression &&  _else 
)

◆ create() [5/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( NaryType  _type,
const std::initializer_list< Expression > &  _expressions 
)

◆ create() [6/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( NaryType  _type,
Expressions &&  _expressions 
)

◆ create() [7/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( QuantifierType  _type,
std::vector< carl::Variable > &&  _variables,
Expression &&  _expression 
)

◆ create() [8/8]

const ExpressionContent* smtrat::expression::ExpressionPool::create ( UnaryType  _type,
Expression &&  _expression 
)

Friends And Related Function Documentation

◆ ExpressionModifier

friend class ExpressionModifier
friend

Definition at line 14 of file ExpressionPool.h.

Field Documentation

◆ mNextID

std::size_t smtrat::expression::ExpressionPool::mNextID
private

Definition at line 16 of file ExpressionPool.h.

◆ mPool

std::unordered_set<ExpressionContent*> smtrat::expression::ExpressionPool::mPool
private

Definition at line 17 of file ExpressionPool.h.


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