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

#include <MultiplicationTable.h>

Collaboration diagram for carl::MultiplicationTable< Number >:

Data Structures

struct  TableContent
 

Public Types

using IndexPairs = std::forward_list< std::pair< uint, uint > >
 
using Monomial = Term< Number >
 

Public Member Functions

 MultiplicationTable ()
 
 MultiplicationTable (const GroebnerBase< Number > &gb)
 
std::unordered_map< Monomial, TableContent >::const_iterator begin () const
 
std::unordered_map< Monomial, TableContent >::const_iterator end () const
 
std::unordered_map< Monomial, TableContent >::const_iterator cbegin () const
 
std::unordered_map< Monomial, TableContent >::const_iterator cend () const
 
bool contains (const Monomial &m) const
 
const std::vector< Monomial > & getBase () const noexcept
 
BaseRepresentation< Number > reduce (const MultivariatePolynomial< Number > &p) const
 
const TableContentgetEntry (const Monomial &mon) const
 
MultivariatePolynomial< Number > baseReprToPolynomial (const BaseRepresentation< Number > &baseRepr) const
 
BaseRepresentation< Number > multiply (const BaseRepresentation< Number > &f, const BaseRepresentation< Number > &g) const
 
Number trace (const BaseRepresentation< Number > &f) const
 

Private Member Functions

IndexPairs indexPairs (const Monomial &c) const
 
void init (const GroebnerBase< Number > &gb)
 

Private Attributes

std::unordered_map< Monomial, TableContentmTable
 
std::vector< MonomialmBase
 
GroebnerBase< Number > mGb
 

Friends

template<typename C >
std::ostream & operator<< (std::ostream &o, const MultiplicationTable< C > &table)
 

Detailed Description

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

Definition at line 57 of file MultiplicationTable.h.

Member Typedef Documentation

◆ IndexPairs

template<typename Number >
using carl::MultiplicationTable< Number >::IndexPairs = std::forward_list<std::pair<uint, uint> >

Definition at line 61 of file MultiplicationTable.h.

◆ Monomial

template<typename Number >
using carl::MultiplicationTable< Number >::Monomial = Term<Number>

Definition at line 62 of file MultiplicationTable.h.

Constructor & Destructor Documentation

◆ MultiplicationTable() [1/2]

template<typename Number >
carl::MultiplicationTable< Number >::MultiplicationTable ( )
inline

Definition at line 81 of file MultiplicationTable.h.

◆ MultiplicationTable() [2/2]

template<typename Number >
carl::MultiplicationTable< Number >::MultiplicationTable ( const GroebnerBase< Number > &  gb)
inlineexplicit

Definition at line 83 of file MultiplicationTable.h.

Here is the call graph for this function:

Member Function Documentation

◆ baseReprToPolynomial()

template<typename Number >
MultivariatePolynomial<Number> carl::MultiplicationTable< Number >::baseReprToPolynomial ( const BaseRepresentation< Number > &  baseRepr) const
inline

Definition at line 113 of file MultiplicationTable.h.

◆ begin()

template<typename Number >
std::unordered_map<Monomial, TableContent>::const_iterator carl::MultiplicationTable< Number >::begin ( ) const
inline

Definition at line 89 of file MultiplicationTable.h.

◆ cbegin()

template<typename Number >
std::unordered_map<Monomial, TableContent>::const_iterator carl::MultiplicationTable< Number >::cbegin ( ) const
inline

Definition at line 91 of file MultiplicationTable.h.

◆ cend()

template<typename Number >
std::unordered_map<Monomial, TableContent>::const_iterator carl::MultiplicationTable< Number >::cend ( ) const
inline

Definition at line 92 of file MultiplicationTable.h.

◆ contains()

template<typename Number >
bool carl::MultiplicationTable< Number >::contains ( const Monomial m) const
inline

Definition at line 95 of file MultiplicationTable.h.

Here is the caller graph for this function:

◆ end()

template<typename Number >
std::unordered_map<Monomial, TableContent>::const_iterator carl::MultiplicationTable< Number >::end ( ) const
inline

Definition at line 90 of file MultiplicationTable.h.

◆ getBase()

template<typename Number >
const std::vector<Monomial>& carl::MultiplicationTable< Number >::getBase ( ) const
inlinenoexcept

Definition at line 99 of file MultiplicationTable.h.

Here is the caller graph for this function:

◆ getEntry()

template<typename Number >
const TableContent& carl::MultiplicationTable< Number >::getEntry ( const Monomial mon) const
inline

Definition at line 107 of file MultiplicationTable.h.

Here is the caller graph for this function:

◆ indexPairs()

template<typename Number >
IndexPairs carl::MultiplicationTable< Number >::indexPairs ( const Monomial c) const
inlineprivate

Definition at line 157 of file MultiplicationTable.h.

Here is the caller graph for this function:

◆ init()

template<typename Number >
void carl::MultiplicationTable< Number >::init ( const GroebnerBase< Number > &  gb)
inlineprivate

Definition at line 170 of file MultiplicationTable.h.

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

◆ multiply()

template<typename Number >
BaseRepresentation<Number> carl::MultiplicationTable< Number >::multiply ( const BaseRepresentation< Number > &  f,
const BaseRepresentation< Number > &  g 
) const
inline

Definition at line 121 of file MultiplicationTable.h.

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

◆ reduce()

template<typename Number >
BaseRepresentation<Number> carl::MultiplicationTable< Number >::reduce ( const MultivariatePolynomial< Number > &  p) const
inline

Definition at line 103 of file MultiplicationTable.h.

Here is the caller graph for this function:

◆ trace()

template<typename Number >
Number carl::MultiplicationTable< Number >::trace ( const BaseRepresentation< Number > &  f) const
inline

Definition at line 139 of file MultiplicationTable.h.

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

Friends And Related Function Documentation

◆ operator<<

template<typename Number >
template<typename C >
std::ostream& operator<< ( std::ostream &  o,
const MultiplicationTable< C > &  table 
)
friend

Definition at line 299 of file MultiplicationTable.h.

Field Documentation

◆ mBase

template<typename Number >
std::vector<Monomial> carl::MultiplicationTable< Number >::mBase
private

Definition at line 74 of file MultiplicationTable.h.

◆ mGb

template<typename Number >
GroebnerBase<Number> carl::MultiplicationTable< Number >::mGb
private

Definition at line 77 of file MultiplicationTable.h.

◆ mTable

template<typename Number >
std::unordered_map<Monomial, TableContent> carl::MultiplicationTable< Number >::mTable
private

Definition at line 71 of file MultiplicationTable.h.


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