carl  24.04
Computer ARithmetic Library
carl::ThomEncoding< Number > Class Template Reference

#include <ThomEncoding.h>

Collaboration diagram for carl::ThomEncoding< Number >:

Public Member Functions

 ThomEncoding (SignCondition sc, const Polynomial &p, Variable mainVar, std::shared_ptr< ThomEncoding< Number >> point, std::shared_ptr< SignDetermination< Number >> sd, uint mRelevant)
 
 ThomEncoding (const Number &n, Variable mainVar, std::shared_ptr< ThomEncoding< Number >> point=nullptr)
 
 ThomEncoding (const ThomEncoding< Number > &te, std::shared_ptr< ThomEncoding< Number >> point)
 
bool is_number () const
 
const auto & get_number () const
 
bool containedIn (const Interval< Number > &i) const
 
SignCondition signCondition () const
 
SignCondition relevantSignCondition () const
 
Variable::Arg main_var () const
 
const Polynomialpolynomial () const
 
const ThomEncoding< Number > & point () const
 
SignDetermination< Number > sd () const
 
std::list< PolynomialrelevantDerivatives () const
 
ThomEncoding< Number > lowestInChain () const
 
uint dimension () const
 
std::list< PolynomialaccumulatePolynomials () const
 
std::list< VariableaccumulateVariables () const
 
SignCondition accumulateSigns () const
 
SignCondition accumulateRelevantSigns () const
 
Sign signOnPolynomial (const Polynomial &p) const
 
bool makesPolynomialZero (const Polynomial &pol, Variable::Arg pol_mainVar) const
 
void extendSignCondition () const
 
Sign sgn (const UnivariatePolynomial< Number > &p) const
 
Sign sgn (const Polynomial &p) const
 
Sign sgn () const
 
bool is_integral () const
 
Number integer_below () const
 
Sign sgnReprNum () const
 
bool is_zero () const
 
ThomEncoding< Number > concat (const ThomEncoding< Number > &other) const
 
bool equals (const ThomEncoding< Number > &other) const
 
ThomEncoding< Number > operator+ (const Number &rhs) const
 
void print (std::ostream &os) const
 

Static Public Member Functions

static ThomEncoding< Number > analyzeTEMap (const std::map< Variable, ThomEncoding< Number >> &m)
 
static ThomComparisonResult compare (const ThomEncoding< Number > &lhs, const ThomEncoding< Number > &rhs)
 
static ThomComparisonResult compareRational (const ThomEncoding< Number > &lhs, const Number &rhs)
 
static ThomComparisonResult compareDifferentPoly (const ThomEncoding< Number > &lhs, const ThomEncoding< Number > &rhs)
 
static ThomEncoding< Number > intermediatePoint (const ThomEncoding< Number > &lhs, const ThomEncoding< Number > &rhs)
 
static Number intermediatePoint (const ThomEncoding< Number > &lhs, const Number &rhs)
 
static Number intermediatePoint (const Number &lhs, const ThomEncoding< Number > &rhs)
 

Private Types

using Polynomial = MultivariatePolynomial< Number >
 

Static Private Member Functions

static bool areComparable (const ThomEncoding< Number > &lhs, const ThomEncoding< Number > &rhs)
 
static ThomComparisonResult compareDifferentLevels (const ThomEncoding< Number > &lhs, const ThomEncoding< Number > &rhs)
 

Private Attributes

SignCondition mSc
 
Polynomial mP
 
Variable mMainVar
 
std::shared_ptr< ThomEncoding< Number > > mPoint
 
std::shared_ptr< SignDetermination< Number > > mSd
 
uint mRelevant
 

Detailed Description

template<typename Number>
class carl::ThomEncoding< Number >

Definition at line 21 of file ThomEncoding.h.

Member Typedef Documentation

◆ Polynomial

template<typename Number >
using carl::ThomEncoding< Number >::Polynomial = MultivariatePolynomial<Number>
private

Definition at line 23 of file ThomEncoding.h.

Constructor & Destructor Documentation

◆ ThomEncoding() [1/3]

template<typename Number >
carl::ThomEncoding< Number >::ThomEncoding ( SignCondition  sc,
const Polynomial p,
Variable  mainVar,
std::shared_ptr< ThomEncoding< Number >>  point,
std::shared_ptr< SignDetermination< Number >>  sd,
uint  mRelevant 
)
inline

Definition at line 36 of file ThomEncoding.h.

◆ ThomEncoding() [2/3]

template<typename Number >
carl::ThomEncoding< Number >::ThomEncoding ( const Number &  n,
Variable  mainVar,
std::shared_ptr< ThomEncoding< Number >>  point = nullptr 
)
inline

Definition at line 52 of file ThomEncoding.h.

Here is the call graph for this function:

◆ ThomEncoding() [3/3]

template<typename Number >
carl::ThomEncoding< Number >::ThomEncoding ( const ThomEncoding< Number > &  te,
std::shared_ptr< ThomEncoding< Number >>  point 
)
inline

Definition at line 68 of file ThomEncoding.h.

Here is the call graph for this function:

Member Function Documentation

◆ accumulatePolynomials()

template<typename Number >
std::list<Polynomial> carl::ThomEncoding< Number >::accumulatePolynomials ( ) const
inline

Definition at line 137 of file ThomEncoding.h.

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

◆ accumulateRelevantSigns()

template<typename Number >
SignCondition carl::ThomEncoding< Number >::accumulateRelevantSigns ( ) const
inline

Definition at line 158 of file ThomEncoding.h.

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

◆ accumulateSigns()

template<typename Number >
SignCondition carl::ThomEncoding< Number >::accumulateSigns ( ) const
inline

Definition at line 151 of file ThomEncoding.h.

Here is the call graph for this function:

◆ accumulateVariables()

template<typename Number >
std::list<Variable> carl::ThomEncoding< Number >::accumulateVariables ( ) const
inline

Definition at line 144 of file ThomEncoding.h.

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

◆ analyzeTEMap()

template<typename Number >
static ThomEncoding<Number> carl::ThomEncoding< Number >::analyzeTEMap ( const std::map< Variable, ThomEncoding< Number >> &  m)
inlinestatic

Definition at line 295 of file ThomEncoding.h.

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

◆ areComparable()

template<typename Number >
static bool carl::ThomEncoding< Number >::areComparable ( const ThomEncoding< Number > &  lhs,
const ThomEncoding< Number > &  rhs 
)
inlinestaticprivate

Definition at line 407 of file ThomEncoding.h.

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

◆ compare()

template<typename Number >
static ThomComparisonResult carl::ThomEncoding< Number >::compare ( const ThomEncoding< Number > &  lhs,
const ThomEncoding< Number > &  rhs 
)
inlinestatic

Definition at line 362 of file ThomEncoding.h.

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

◆ compareDifferentLevels()

template<typename Number >
static ThomComparisonResult carl::ThomEncoding< Number >::compareDifferentLevels ( const ThomEncoding< Number > &  lhs,
const ThomEncoding< Number > &  rhs 
)
inlinestaticprivate

Definition at line 423 of file ThomEncoding.h.

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

◆ compareDifferentPoly()

template<typename Number >
static ThomComparisonResult carl::ThomEncoding< Number >::compareDifferentPoly ( const ThomEncoding< Number > &  lhs,
const ThomEncoding< Number > &  rhs 
)
static
Here is the caller graph for this function:

◆ compareRational()

template<typename Number >
static ThomComparisonResult carl::ThomEncoding< Number >::compareRational ( const ThomEncoding< Number > &  lhs,
const Number &  rhs 
)
inlinestatic

Definition at line 435 of file ThomEncoding.h.

Here is the call graph for this function:

◆ concat()

template<typename Number >
ThomEncoding<Number> carl::ThomEncoding< Number >::concat ( const ThomEncoding< Number > &  other) const
inline

Definition at line 229 of file ThomEncoding.h.

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

◆ containedIn()

template<typename Number >
bool carl::ThomEncoding< Number >::containedIn ( const Interval< Number > &  i) const
inline

Definition at line 99 of file ThomEncoding.h.

Here is the call graph for this function:

◆ dimension()

template<typename Number >
uint carl::ThomEncoding< Number >::dimension ( ) const
inline

Definition at line 132 of file ThomEncoding.h.

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

◆ equals()

template<typename Number >
bool carl::ThomEncoding< Number >::equals ( const ThomEncoding< Number > &  other) const
inline

Definition at line 443 of file ThomEncoding.h.

Here is the call graph for this function:

◆ extendSignCondition()

template<typename Number >
void carl::ThomEncoding< Number >::extendSignCondition ( ) const
inline

Definition at line 193 of file ThomEncoding.h.

Here is the call graph for this function:

◆ get_number()

template<typename Number >
const auto& carl::ThomEncoding< Number >::get_number ( ) const
inline

Definition at line 95 of file ThomEncoding.h.

Here is the call graph for this function:

◆ integer_below()

template<typename Number >
Number carl::ThomEncoding< Number >::integer_below ( ) const
inline

Definition at line 216 of file ThomEncoding.h.

Here is the call graph for this function:

◆ intermediatePoint() [1/3]

template<typename Number >
static Number carl::ThomEncoding< Number >::intermediatePoint ( const Number &  lhs,
const ThomEncoding< Number > &  rhs 
)
inlinestatic

Definition at line 521 of file ThomEncoding.h.

◆ intermediatePoint() [2/3]

template<typename Number >
static Number carl::ThomEncoding< Number >::intermediatePoint ( const ThomEncoding< Number > &  lhs,
const Number &  rhs 
)
inlinestatic

Definition at line 507 of file ThomEncoding.h.

◆ intermediatePoint() [3/3]

template<typename Number >
static ThomEncoding<Number> carl::ThomEncoding< Number >::intermediatePoint ( const ThomEncoding< Number > &  lhs,
const ThomEncoding< Number > &  rhs 
)
inlinestatic

Definition at line 473 of file ThomEncoding.h.

◆ is_integral()

template<typename Number >
bool carl::ThomEncoding< Number >::is_integral ( ) const
inline

Definition at line 213 of file ThomEncoding.h.

◆ is_number()

template<typename Number >
bool carl::ThomEncoding< Number >::is_number ( ) const
inline

Definition at line 91 of file ThomEncoding.h.

◆ is_zero()

template<typename Number >
bool carl::ThomEncoding< Number >::is_zero ( ) const
inline

Definition at line 225 of file ThomEncoding.h.

Here is the call graph for this function:

◆ lowestInChain()

template<typename Number >
ThomEncoding<Number> carl::ThomEncoding< Number >::lowestInChain ( ) const
inline

Definition at line 127 of file ThomEncoding.h.

◆ main_var()

template<typename Number >
Variable::Arg carl::ThomEncoding< Number >::main_var ( ) const
inline

Definition at line 113 of file ThomEncoding.h.

Here is the caller graph for this function:

◆ makesPolynomialZero()

template<typename Number >
bool carl::ThomEncoding< Number >::makesPolynomialZero ( const Polynomial pol,
Variable::Arg  pol_mainVar 
) const
inline

Definition at line 180 of file ThomEncoding.h.

Here is the call graph for this function:

◆ operator+()

template<typename Number >
ThomEncoding<Number> carl::ThomEncoding< Number >::operator+ ( const Number &  rhs) const
inline

Definition at line 458 of file ThomEncoding.h.

Here is the call graph for this function:

◆ point()

template<typename Number >
const ThomEncoding<Number>& carl::ThomEncoding< Number >::point ( ) const
inline

Definition at line 115 of file ThomEncoding.h.

Here is the caller graph for this function:

◆ polynomial()

template<typename Number >
const Polynomial& carl::ThomEncoding< Number >::polynomial ( ) const
inline

Definition at line 114 of file ThomEncoding.h.

Here is the caller graph for this function:

◆ print()

template<typename Number >
void carl::ThomEncoding< Number >::print ( std::ostream &  os) const
inline

Definition at line 538 of file ThomEncoding.h.

◆ relevantDerivatives()

template<typename Number >
std::list<Polynomial> carl::ThomEncoding< Number >::relevantDerivatives ( ) const
inline

Definition at line 118 of file ThomEncoding.h.

Here is the call graph for this function:

◆ relevantSignCondition()

template<typename Number >
SignCondition carl::ThomEncoding< Number >::relevantSignCondition ( ) const
inline

Definition at line 112 of file ThomEncoding.h.

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

◆ sd()

template<typename Number >
SignDetermination<Number> carl::ThomEncoding< Number >::sd ( ) const
inline

Definition at line 116 of file ThomEncoding.h.

◆ sgn() [1/3]

template<typename Number >
Sign carl::ThomEncoding< Number >::sgn ( ) const
inline

Definition at line 209 of file ThomEncoding.h.

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

◆ sgn() [2/3]

template<typename Number >
Sign carl::ThomEncoding< Number >::sgn ( const Polynomial p) const
inline

Definition at line 206 of file ThomEncoding.h.

Here is the call graph for this function:

◆ sgn() [3/3]

template<typename Number >
Sign carl::ThomEncoding< Number >::sgn ( const UnivariatePolynomial< Number > &  p) const
inline

Definition at line 203 of file ThomEncoding.h.

Here is the call graph for this function:

◆ sgnReprNum()

template<typename Number >
Sign carl::ThomEncoding< Number >::sgnReprNum ( ) const
inline

Definition at line 221 of file ThomEncoding.h.

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

◆ signCondition()

template<typename Number >
SignCondition carl::ThomEncoding< Number >::signCondition ( ) const
inline

Definition at line 111 of file ThomEncoding.h.

Here is the caller graph for this function:

◆ signOnPolynomial()

template<typename Number >
Sign carl::ThomEncoding< Number >::signOnPolynomial ( const Polynomial p) const
inline

Definition at line 166 of file ThomEncoding.h.

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

Field Documentation

◆ mMainVar

template<typename Number >
Variable carl::ThomEncoding< Number >::mMainVar
private

Definition at line 27 of file ThomEncoding.h.

◆ mP

template<typename Number >
Polynomial carl::ThomEncoding< Number >::mP
private

Definition at line 26 of file ThomEncoding.h.

◆ mPoint

template<typename Number >
std::shared_ptr<ThomEncoding<Number> > carl::ThomEncoding< Number >::mPoint
private

Definition at line 29 of file ThomEncoding.h.

◆ mRelevant

template<typename Number >
uint carl::ThomEncoding< Number >::mRelevant
private

Definition at line 32 of file ThomEncoding.h.

◆ mSc

template<typename Number >
SignCondition carl::ThomEncoding< Number >::mSc
mutableprivate

Definition at line 25 of file ThomEncoding.h.

◆ mSd

template<typename Number >
std::shared_ptr<SignDetermination<Number> > carl::ThomEncoding< Number >::mSd
mutableprivate

Definition at line 30 of file ThomEncoding.h.


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