SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::cadcells::datastructures::DerivationRef< Properties > Class Template Reference

A reference to a derivation, which is either. More...

#include <derivation.h>

Public Member Functions

 DerivationRef (const BaseDerivationRef< Properties > &data)
 
 DerivationRef (const DelineatedDerivationRef< Properties > &data)
 
 DerivationRef (const SampledDerivationRef< Properties > &data)
 
bool is_null () const
 
bool is_sampled () const
 
auto & base_ref ()
 
auto & delineated_ref ()
 
auto & sampled_ref ()
 
const auto & base_ref () const
 
const auto & delineated_ref () const
 
const auto & sampled_ref () const
 
auto & base ()
 
auto & delineated ()
 
auto & sampled ()
 
const auto & base () const
 
const auto & delineated () const
 
const auto & sampled () const
 

Private Attributes

std::variant< BaseDerivationRef< Properties >, DelineatedDerivationRef< Properties >, SampledDerivationRef< Properties > > m_data
 

Friends

template<typename P >
bool operator== (const DerivationRef< P > &lhs, const DerivationRef< P > &rhs)
 
template<typename P >
bool operator< (const DerivationRef< P > &lhs, const DerivationRef< P > &rhs)
 

Detailed Description

template<typename Properties>
class smtrat::cadcells::datastructures::DerivationRef< Properties >

A reference to a derivation, which is either.

Memory management

Memory management is based on std::shared_ptr. A SampledDerivation holds a shared pointer to a DelineatedDerivation, which in turn holds a shared pointer to BaseDerivation. The BaseDerivation holds a DerivationRef to the underlying derivation. Note that not all combinations are legal; i.e. the underlying derivation of a delineated derivation must be a sampled derivation.

Definition at line 38 of file derivation.h.

Constructor & Destructor Documentation

◆ DerivationRef() [1/3]

template<typename Properties >
smtrat::cadcells::datastructures::DerivationRef< Properties >::DerivationRef ( const BaseDerivationRef< Properties > &  data)
inline

Definition at line 42 of file derivation.h.

◆ DerivationRef() [2/3]

template<typename Properties >
smtrat::cadcells::datastructures::DerivationRef< Properties >::DerivationRef ( const DelineatedDerivationRef< Properties > &  data)
inline

Definition at line 44 of file derivation.h.

◆ DerivationRef() [3/3]

template<typename Properties >
smtrat::cadcells::datastructures::DerivationRef< Properties >::DerivationRef ( const SampledDerivationRef< Properties > &  data)
inline

Definition at line 46 of file derivation.h.

Member Function Documentation

◆ base() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::base ( )
inline

Definition at line 108 of file derivation.h.

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

◆ base() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::base ( ) const
inline

Definition at line 117 of file derivation.h.

Here is the call graph for this function:

◆ base_ref() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::base_ref ( )
inline

Definition at line 62 of file derivation.h.

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

◆ base_ref() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::base_ref ( ) const
inline

Definition at line 85 of file derivation.h.

Here is the call graph for this function:

◆ delineated() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::delineated ( )
inline

Definition at line 111 of file derivation.h.

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

◆ delineated() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::delineated ( ) const
inline

Definition at line 120 of file derivation.h.

Here is the call graph for this function:

◆ delineated_ref() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::delineated_ref ( )
inline

Definition at line 72 of file derivation.h.

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

◆ delineated_ref() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::delineated_ref ( ) const
inline

Definition at line 95 of file derivation.h.

Here is the call graph for this function:

◆ is_null()

template<typename Properties >
bool smtrat::cadcells::datastructures::DerivationRef< Properties >::is_null ( ) const
inline

Definition at line 49 of file derivation.h.

◆ is_sampled()

template<typename Properties >
bool smtrat::cadcells::datastructures::DerivationRef< Properties >::is_sampled ( ) const
inline

Definition at line 58 of file derivation.h.

Here is the caller graph for this function:

◆ sampled() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::sampled ( )
inline

Definition at line 114 of file derivation.h.

Here is the call graph for this function:

◆ sampled() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::sampled ( ) const
inline

Definition at line 123 of file derivation.h.

Here is the call graph for this function:

◆ sampled_ref() [1/2]

template<typename Properties >
auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::sampled_ref ( )
inline

Definition at line 80 of file derivation.h.

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

◆ sampled_ref() [2/2]

template<typename Properties >
const auto& smtrat::cadcells::datastructures::DerivationRef< Properties >::sampled_ref ( ) const
inline

Definition at line 103 of file derivation.h.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator<

template<typename Properties >
template<typename P >
bool operator< ( const DerivationRef< P > &  lhs,
const DerivationRef< P > &  rhs 
)
friend

Definition at line 137 of file derivation.h.

◆ operator==

template<typename Properties >
template<typename P >
bool operator== ( const DerivationRef< P > &  lhs,
const DerivationRef< P > &  rhs 
)
friend

Definition at line 133 of file derivation.h.

Field Documentation

◆ m_data

template<typename Properties >
std::variant<BaseDerivationRef<Properties>, DelineatedDerivationRef<Properties>, SampledDerivationRef<Properties> > smtrat::cadcells::datastructures::DerivationRef< Properties >::m_data
private

Definition at line 39 of file derivation.h.


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