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

#include <SignDetermination.h>

Collaboration diagram for carl::SignDetermination< Number >:

Public Member Functions

template<typename InputIt >
 SignDetermination (InputIt zeroSet_first, InputIt zeroSet_last)
 
 SignDetermination (const SignDetermination &other)
 
uint sizeOfZeroSet () const
 
const auto & processedPolynomials () const
 
const auto & signs () const
 
const auto & products () const
 
const auto & adaptedList () const
 
const auto & matrix () const
 
bool needsUpdate () const
 
std::list< SignConditiongetSigns (const Polynomial &p)
 
std::list< SignConditiongetSignsAndAdd (const Polynomial &p)
 
template<typename InputIt >
std::list< SignConditiongetSignsAndAddAll (InputIt first, InputIt last)
 

Private Types

using Polynomial = MultivariatePolynomial< Number >
 
using TaQResType = typename TarskiQueryManager< Number >::QueryResultType
 
using Alpha = std::list< uint >
 

Private Member Functions

std::list< PolynomialcomputeProducts (const Polynomial &p, const std::list< Alpha > &currAda) const
 
std::list< AlphafirstNLines (const uint n, const Eigen::MatrixXf &mat, const std::vector< Alpha > &ada, std::vector< Polynomial > &products, const uint q) const
 
void update ()
 
std::list< SignConditiongetSigns (const Polynomial &p, std::list< Polynomial > &products, std::list< Alpha > &ada, std::list< uint > &adaHelper, Eigen::MatrixXf &matrix)
 

Static Private Member Functions

static int sigmaToTheAlpha (const Alpha &alpha, const SignCondition &sigma)
 
static Eigen::MatrixXf adaptedMat (const std::list< Alpha > &ada, const std::list< SignCondition > &signs)
 
static Eigen::MatrixXf kroneckerProduct (const Eigen::MatrixXf &m1, const Eigen::MatrixXf &m2)
 
static void removeColumn (Eigen::MatrixXf &matrix, Eigen::Index colToRemove)
 
static void removeRow (Eigen::MatrixXf &matrix, Eigen::Index rowToRemove)
 

Private Attributes

std::list< PolynomialmP
 
TarskiQueryManager< Number > mTaQ
 
std::list< SignConditionmSigns
 
std::list< PolynomialmProducts
 
std::list< AlphamAda
 
std::list< uintmAdaHelper
 
Eigen::MatrixXf mMatrix
 
bool mNeedsUpdate = false
 

Detailed Description

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

Definition at line 25 of file SignDetermination.h.

Member Typedef Documentation

◆ Alpha

template<typename Number >
using carl::SignDetermination< Number >::Alpha = std::list<uint>
private

Definition at line 33 of file SignDetermination.h.

◆ Polynomial

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

Definition at line 28 of file SignDetermination.h.

◆ TaQResType

template<typename Number >
using carl::SignDetermination< Number >::TaQResType = typename TarskiQueryManager<Number>::QueryResultType
private

Definition at line 29 of file SignDetermination.h.

Constructor & Destructor Documentation

◆ SignDetermination() [1/2]

template<typename Number >
template<typename InputIt >
carl::SignDetermination< Number >::SignDetermination ( InputIt  zeroSet_first,
InputIt  zeroSet_last 
)
inline

Definition at line 48 of file SignDetermination.h.

◆ SignDetermination() [2/2]

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

Definition at line 56 of file SignDetermination.h.

Member Function Documentation

◆ adaptedList()

template<typename Number >
const auto& carl::SignDetermination< Number >::adaptedList ( ) const
inline

Definition at line 76 of file SignDetermination.h.

Here is the caller graph for this function:

◆ adaptedMat()

template<typename Number >
static Eigen::MatrixXf carl::SignDetermination< Number >::adaptedMat ( const std::list< Alpha > &  ada,
const std::list< SignCondition > &  signs 
)
inlinestaticprivate

Definition at line 100 of file SignDetermination.h.

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

◆ computeProducts()

template<typename Number >
std::list<Polynomial> carl::SignDetermination< Number >::computeProducts ( const Polynomial p,
const std::list< Alpha > &  currAda 
) const
inlineprivate

Definition at line 143 of file SignDetermination.h.

Here is the caller graph for this function:

◆ firstNLines()

template<typename Number >
std::list<Alpha> carl::SignDetermination< Number >::firstNLines ( const uint  n,
const Eigen::MatrixXf &  mat,
const std::vector< Alpha > &  ada,
std::vector< Polynomial > &  products,
const uint  q 
) const
inlineprivate

Definition at line 164 of file SignDetermination.h.

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

◆ getSigns() [1/2]

template<typename Number >
std::list<SignCondition> carl::SignDetermination< Number >::getSigns ( const Polynomial p)
inline

Definition at line 375 of file SignDetermination.h.

Here is the call graph for this function:

◆ getSigns() [2/2]

template<typename Number >
std::list<SignCondition> carl::SignDetermination< Number >::getSigns ( const Polynomial p,
std::list< Polynomial > &  products,
std::list< Alpha > &  ada,
std::list< uint > &  adaHelper,
Eigen::MatrixXf &  matrix 
)
inlineprivate

Definition at line 280 of file SignDetermination.h.

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

◆ getSignsAndAdd()

template<typename Number >
std::list<SignCondition> carl::SignDetermination< Number >::getSignsAndAdd ( const Polynomial p)
inline

Definition at line 384 of file SignDetermination.h.

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

◆ getSignsAndAddAll()

template<typename Number >
template<typename InputIt >
std::list<SignCondition> carl::SignDetermination< Number >::getSignsAndAddAll ( InputIt  first,
InputIt  last 
)
inline

Definition at line 405 of file SignDetermination.h.

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

◆ kroneckerProduct()

template<typename Number >
static Eigen::MatrixXf carl::SignDetermination< Number >::kroneckerProduct ( const Eigen::MatrixXf &  m1,
const Eigen::MatrixXf &  m2 
)
inlinestaticprivate

Definition at line 114 of file SignDetermination.h.

Here is the caller graph for this function:

◆ matrix()

template<typename Number >
const auto& carl::SignDetermination< Number >::matrix ( ) const
inline

Definition at line 77 of file SignDetermination.h.

Here is the caller graph for this function:

◆ needsUpdate()

template<typename Number >
bool carl::SignDetermination< Number >::needsUpdate ( ) const
inline

Definition at line 78 of file SignDetermination.h.

Here is the caller graph for this function:

◆ processedPolynomials()

template<typename Number >
const auto& carl::SignDetermination< Number >::processedPolynomials ( ) const
inline

Definition at line 73 of file SignDetermination.h.

Here is the caller graph for this function:

◆ products()

template<typename Number >
const auto& carl::SignDetermination< Number >::products ( ) const
inline

Definition at line 75 of file SignDetermination.h.

Here is the caller graph for this function:

◆ removeColumn()

template<typename Number >
static void carl::SignDetermination< Number >::removeColumn ( Eigen::MatrixXf &  matrix,
Eigen::Index  colToRemove 
)
inlinestaticprivate

Definition at line 123 of file SignDetermination.h.

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

◆ removeRow()

template<typename Number >
static void carl::SignDetermination< Number >::removeRow ( Eigen::MatrixXf &  matrix,
Eigen::Index  rowToRemove 
)
inlinestaticprivate

Definition at line 132 of file SignDetermination.h.

Here is the call graph for this function:

◆ sigmaToTheAlpha()

template<typename Number >
static int carl::SignDetermination< Number >::sigmaToTheAlpha ( const Alpha alpha,
const SignCondition sigma 
)
inlinestaticprivate

Definition at line 82 of file SignDetermination.h.

Here is the caller graph for this function:

◆ signs()

template<typename Number >
const auto& carl::SignDetermination< Number >::signs ( ) const
inline

Definition at line 74 of file SignDetermination.h.

Here is the caller graph for this function:

◆ sizeOfZeroSet()

template<typename Number >
uint carl::SignDetermination< Number >::sizeOfZeroSet ( ) const
inline

Definition at line 67 of file SignDetermination.h.

Here is the caller graph for this function:

◆ update()

template<typename Number >
void carl::SignDetermination< Number >::update ( )
inlineprivate

Definition at line 208 of file SignDetermination.h.

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

Field Documentation

◆ mAda

template<typename Number >
std::list<Alpha> carl::SignDetermination< Number >::mAda
private

Definition at line 39 of file SignDetermination.h.

◆ mAdaHelper

template<typename Number >
std::list<uint> carl::SignDetermination< Number >::mAdaHelper
private

Definition at line 40 of file SignDetermination.h.

◆ mMatrix

template<typename Number >
Eigen::MatrixXf carl::SignDetermination< Number >::mMatrix
private

Definition at line 41 of file SignDetermination.h.

◆ mNeedsUpdate

template<typename Number >
bool carl::SignDetermination< Number >::mNeedsUpdate = false
private

Definition at line 42 of file SignDetermination.h.

◆ mP

template<typename Number >
std::list<Polynomial> carl::SignDetermination< Number >::mP
private

Definition at line 35 of file SignDetermination.h.

◆ mProducts

template<typename Number >
std::list<Polynomial> carl::SignDetermination< Number >::mProducts
private

Definition at line 38 of file SignDetermination.h.

◆ mSigns

template<typename Number >
std::list<SignCondition> carl::SignDetermination< Number >::mSigns
private

Definition at line 37 of file SignDetermination.h.

◆ mTaQ

template<typename Number >
TarskiQueryManager<Number> carl::SignDetermination< Number >::mTaQ
private

Definition at line 36 of file SignDetermination.h.


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