carl  24.04
Computer ARithmetic Library
carl::Buchberger< Polynomial, AddingPolicy > Class Template Reference

Gebauer and Moeller style implementation of the Buchberger algorithm. More...

#include <Buchberger.h>

Inheritance diagram for carl::Buchberger< Polynomial, AddingPolicy >:
Collaboration diagram for carl::Buchberger< Polynomial, AddingPolicy >:

Public Member Functions

 Buchberger ()
 
virtual ~Buchberger ()=default
 
 Buchberger (const Buchberger &rhs)
 
void calculate (const std::list< Polynomial > &scheduledForAdding)
 
void setIdeal (const std::shared_ptr< Ideal< Polynomial >> &ideal)
 
void setCriticalPairs (const std::shared_ptr< CritPairs > &criticalPairs)
 
void update (size_t index)
 

Protected Member Functions

bool addToGb (const Polynomial &newPol)
 
void removeBuchbergerTriples (std::unordered_map< size_t, SPolPair > &spairs, std::vector< size_t > &primelist)
 
void reduce ()
 

Protected Attributes

std::shared_ptr< Ideal< Polynomial > > pGb
 
std::vector< size_t > mGbElementsIndices
 
std::shared_ptr< CritPairspCritPairs
 
UpdateFnct< Buchberger< Polynomial, AddingPolicy > > mUpdateCallBack
 

Detailed Description

template<typename Polynomial, template< typename > class AddingPolicy>
class carl::Buchberger< Polynomial, AddingPolicy >

Gebauer and Moeller style implementation of the Buchberger algorithm.

For more information about this Algorithm. More information can be found in the Bachelor Thesis On Groebner Bases in SMT-Compliant Decision Procedures.

Definition at line 63 of file Buchberger.h.

Constructor & Destructor Documentation

◆ Buchberger() [1/2]

template<typename Polynomial , template< typename > class AddingPolicy>
carl::Buchberger< Polynomial, AddingPolicy >::Buchberger ( )
inline

Definition at line 77 of file Buchberger.h.

◆ ~Buchberger()

template<typename Polynomial , template< typename > class AddingPolicy>
virtual carl::Buchberger< Polynomial, AddingPolicy >::~Buchberger ( )
virtualdefault

◆ Buchberger() [2/2]

template<typename Polynomial , template< typename > class AddingPolicy>
carl::Buchberger< Polynomial, AddingPolicy >::Buchberger ( const Buchberger< Polynomial, AddingPolicy > &  rhs)
inline

Definition at line 88 of file Buchberger.h.

Member Function Documentation

◆ addToGb()

template<typename Polynomial , template< typename > class AddingPolicy>
bool carl::Buchberger< Polynomial, AddingPolicy >::addToGb ( const Polynomial &  newPol)
inlineprotected

Definition at line 111 of file Buchberger.h.

◆ calculate()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::calculate ( const std::list< Polynomial > &  scheduledForAdding)

◆ reduce()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::reduce ( )
protected

◆ removeBuchbergerTriples()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::removeBuchbergerTriples ( std::unordered_map< size_t, SPolPair > &  spairs,
std::vector< size_t > &  primelist 
)
protected

◆ setCriticalPairs()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::setCriticalPairs ( const std::shared_ptr< CritPairs > &  criticalPairs)
inline

Definition at line 101 of file Buchberger.h.

◆ setIdeal()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::setIdeal ( const std::shared_ptr< Ideal< Polynomial >> &  ideal)
inline

Definition at line 97 of file Buchberger.h.

◆ update()

template<typename Polynomial , template< typename > class AddingPolicy>
void carl::Buchberger< Polynomial, AddingPolicy >::update ( size_t  index)

Field Documentation

◆ mGbElementsIndices

template<typename Polynomial , template< typename > class AddingPolicy>
std::vector<size_t> carl::Buchberger< Polynomial, AddingPolicy >::mGbElementsIndices
protected

Definition at line 68 of file Buchberger.h.

◆ mUpdateCallBack

template<typename Polynomial , template< typename > class AddingPolicy>
UpdateFnct<Buchberger<Polynomial, AddingPolicy> > carl::Buchberger< Polynomial, AddingPolicy >::mUpdateCallBack
protected

Definition at line 70 of file Buchberger.h.

◆ pCritPairs

template<typename Polynomial , template< typename > class AddingPolicy>
std::shared_ptr<CritPairs> carl::Buchberger< Polynomial, AddingPolicy >::pCritPairs
protected

Definition at line 69 of file Buchberger.h.

◆ pGb

template<typename Polynomial , template< typename > class AddingPolicy>
std::shared_ptr<Ideal<Polynomial> > carl::Buchberger< Polynomial, AddingPolicy >::pGb
protected

Definition at line 67 of file Buchberger.h.


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