carl  24.04
Computer ARithmetic Library
carl::TermAdditionManager< Polynomial, Ordering > Class Template Reference

#include <TermAdditionManager.h>

Inheritance diagram for carl::TermAdditionManager< Polynomial, Ordering >:
Collaboration diagram for carl::TermAdditionManager< Polynomial, Ordering >:

Public Types

using IDType = unsigned
 
using Coeff = typename Polynomial::CoeffType
 
using TermType = Term< Coeff >
 
using TermPtr = TermType
 
using TermIDs = std::vector< IDType >
 
using Terms = std::vector< TermPtr >
 
using Tuple = std::tuple< TermIDs, Terms, bool, Coeff, IDType >
 
using TAMId = typename std::list< Tuple >::iterator
 

Public Member Functions

 TermAdditionManager ()
 
TAMId getId (std::size_t expectedSize=0)
 
template<bool SizeUnknown, bool NewMonomials = true>
void addTerm (TAMId id, const TermPtr &term)
 
TermType getMaxTerm (TAMId id) const
 
void readTerms (TAMId id, Terms &terms)
 
void dropTerms (TAMId id)
 

Private Member Functions

TAMId createNewEntry ()
 
bool compare (TAMId id, IDType t1, IDType t2) const
 

Private Attributes

std::list< TuplemData
 
TAMId mNextId
 
std::mutex mMutex
 

Detailed Description

template<typename Polynomial, typename Ordering>
class carl::TermAdditionManager< Polynomial, Ordering >

Definition at line 25 of file TermAdditionManager.h.

Member Typedef Documentation

◆ Coeff

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::Coeff = typename Polynomial::CoeffType

Definition at line 28 of file TermAdditionManager.h.

◆ IDType

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::IDType = unsigned

Definition at line 27 of file TermAdditionManager.h.

◆ TAMId

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::TAMId = typename std::list<Tuple>::iterator

Definition at line 40 of file TermAdditionManager.h.

◆ TermIDs

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::TermIDs = std::vector<IDType>

Definition at line 31 of file TermAdditionManager.h.

◆ TermPtr

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::TermPtr = TermType

Definition at line 30 of file TermAdditionManager.h.

◆ Terms

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::Terms = std::vector<TermPtr>

Definition at line 32 of file TermAdditionManager.h.

◆ TermType

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::TermType = Term<Coeff>

Definition at line 29 of file TermAdditionManager.h.

◆ Tuple

template<typename Polynomial , typename Ordering >
using carl::TermAdditionManager< Polynomial, Ordering >::Tuple = std::tuple<TermIDs,Terms,bool,Coeff,IDType>

Definition at line 39 of file TermAdditionManager.h.

Constructor & Destructor Documentation

◆ TermAdditionManager()

template<typename Polynomial , typename Ordering >
carl::TermAdditionManager< Polynomial, Ordering >::TermAdditionManager ( )
inline

Definition at line 69 of file TermAdditionManager.h.

Here is the call graph for this function:

Member Function Documentation

◆ addTerm()

template<typename Polynomial , typename Ordering >
template<bool SizeUnknown, bool NewMonomials = true>
void carl::TermAdditionManager< Polynomial, Ordering >::addTerm ( TAMId  id,
const TermPtr term 
)
inline

Definition at line 106 of file TermAdditionManager.h.

Here is the call graph for this function:

◆ compare()

template<typename Polynomial , typename Ordering >
bool carl::TermAdditionManager< Polynomial, Ordering >::compare ( TAMId  id,
IDType  t1,
IDType  t2 
) const
inlineprivate

Definition at line 62 of file TermAdditionManager.h.

◆ createNewEntry()

template<typename Polynomial , typename Ordering >
TAMId carl::TermAdditionManager< Polynomial, Ordering >::createNewEntry ( )
inlineprivate

Definition at line 56 of file TermAdditionManager.h.

Here is the caller graph for this function:

◆ dropTerms()

template<typename Polynomial , typename Ordering >
void carl::TermAdditionManager< Polynomial, Ordering >::dropTerms ( TAMId  id)
inline

Definition at line 205 of file TermAdditionManager.h.

◆ getId()

template<typename Polynomial , typename Ordering >
TAMId carl::TermAdditionManager< Polynomial, Ordering >::getId ( std::size_t  expectedSize = 0)
inline

Definition at line 76 of file TermAdditionManager.h.

Here is the call graph for this function:

◆ getMaxTerm()

template<typename Polynomial , typename Ordering >
TermType carl::TermAdditionManager< Polynomial, Ordering >::getMaxTerm ( TAMId  id) const
inline

Definition at line 144 of file TermAdditionManager.h.

Here is the call graph for this function:

◆ readTerms()

template<typename Polynomial , typename Ordering >
void carl::TermAdditionManager< Polynomial, Ordering >::readTerms ( TAMId  id,
Terms terms 
)
inline

Definition at line 157 of file TermAdditionManager.h.

Here is the call graph for this function:

Field Documentation

◆ mData

template<typename Polynomial , typename Ordering >
std::list<Tuple> carl::TermAdditionManager< Polynomial, Ordering >::mData
private

Definition at line 42 of file TermAdditionManager.h.

◆ mMutex

template<typename Polynomial , typename Ordering >
std::mutex carl::TermAdditionManager< Polynomial, Ordering >::mMutex
mutableprivate

Definition at line 44 of file TermAdditionManager.h.

◆ mNextId

template<typename Polynomial , typename Ordering >
TAMId carl::TermAdditionManager< Polynomial, Ordering >::mNextId
private

Definition at line 43 of file TermAdditionManager.h.


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