#include <FGLMStrategy.h>
Public Types | |
typedef BoolePolyRing | ring_with_ordering_type |
typedef std::vector< idx_type > | IndexVector |
Public Member Functions | |
FGLMStrategy (const ring_with_ordering_type &from_ring, const ring_with_ordering_type &to_ring, const PolynomialVector &gb) | |
PolynomialVector | main () |
void | analyzeGB (const ReductionStrategy &gb) |
void | setupMultiplicationTables () |
void | setupStandardMonomialsFromTables () |
void | writeRowToVariableDivisors (mzd_t *row, Monomial lm) |
void | testMultiplicationTables () |
void | transposeMultiplicationTables () |
void | writeTailToRow (MonomialSet tail, mzd_t *row) |
Polynomial | rowToPoly (mzd_t *row) |
void | findVectorInMultTables (mzd_t *dst, Monomial m) |
mzd_t * | multiplicationTableForVariable (const Variable &v) |
~FGLMStrategy () |
typedef std::vector<idx_type> polybori::groebner::FGLMStrategy::IndexVector |
polybori::groebner::FGLMStrategy::FGLMStrategy | ( | const ring_with_ordering_type & | from_ring, | |
const ring_with_ordering_type & | to_ring, | |||
const PolynomialVector & | gb | |||
) |
polybori::groebner::FGLMStrategy::~FGLMStrategy | ( | ) | [inline] |
PolynomialVector polybori::groebner::FGLMStrategy::main | ( | ) |
References polybori::groebner::add_up_monomials(), polybori::BooleMonomial::begin(), polybori::BooleExponent::begin(), polybori::BoolePolyRing::coerce(), polybori::BooleSet::containsDivisorsOfDecDeg(), polybori::BooleExponent::deg(), polybori::BooleMonomial::deg(), polybori::BooleMonomial::diagram(), polybori::BooleSet::divisorsOf(), polybori::BooleMonomial::exp(), polybori::BoolePolynomial::expBegin(), findVectorInMultTables(), polybori::groebner::FGLMNoLinearCombinationException::firstNonZeroIndex, polybori::BoolePolyRing::id(), polybori::BooleSet::owns(), PBORI_ASSERT, polybori::BooleMonomial::reducibleBy(), polybori::BooleMonomial::set(), polybori::BooleMonomial::size(), and polybori::BoolePolyRing::zero().
void polybori::groebner::FGLMStrategy::analyzeGB | ( | const ReductionStrategy & | gb | ) |
References polybori::BooleMonomial::begin(), polybori::BooleMonomial::diagram(), polybori::BooleMonomial::divisors(), polybori::BooleMonomial::end(), polybori::groebner::ReductionTerms::leadingTerms, polybori::groebner::mod_mon_set(), polybori::BoolePolyRing::nVariables(), polybori::BooleSet::size(), polybori::BooleMonomial::size(), polybori::groebner::PolyEntryVector::size(), polybori::BooleSet::usedVariables(), polybori::BooleMonomial::variableBegin(), and polybori::BooleMonomial::variableEnd().
Referenced by FGLMStrategy().
void polybori::groebner::FGLMStrategy::setupMultiplicationTables | ( | ) |
References polybori::BooleSet::begin(), polybori::groebner::PolyEntryVector::begin(), polybori::BooleMonomial::begin(), polybori::BooleSet::cartesianProduct(), polybori::BooleMonomial::deg(), polybori::BooleSet::divisorsOf(), polybori::groebner::draw_matrix(), polybori::groebner::PolyEntryVector::end(), polybori::BooleMonomial::end(), findVectorInMultTables(), multiplicationTableForVariable(), polybori::BoolePolynomial::orderedBegin(), polybori::BoolePolynomial::orderedEnd(), PBORI_ASSERT, polybori::BooleMonomial::ring(), polybori::BooleSet::size(), polybori::BooleMonomial::variableBegin(), writeRowToVariableDivisors(), and writeTailToRow().
Referenced by FGLMStrategy().
void polybori::groebner::FGLMStrategy::setupStandardMonomialsFromTables | ( | ) |
References polybori::BooleSet::begin(), polybori::BooleSet::end(), polybori::BooleMonomial::exp(), and polybori::BooleSet::size().
Referenced by FGLMStrategy().
void polybori::groebner::FGLMStrategy::writeRowToVariableDivisors | ( | mzd_t * | row, | |
Monomial | lm | |||
) |
void polybori::groebner::FGLMStrategy::testMultiplicationTables | ( | ) |
References polybori::BoolePolynomial::diagram(), polybori::BooleVariable::index(), multiplicationTableForVariable(), PBORI_ASSERT, and polybori::BoolePolynomial::ring().
Referenced by FGLMStrategy().
void polybori::groebner::FGLMStrategy::transposeMultiplicationTables | ( | ) |
References polybori::groebner::clear_mat().
void polybori::groebner::FGLMStrategy::writeTailToRow | ( | MonomialSet | tail, | |
mzd_t * | row | |||
) |
References polybori::BooleSet::expBegin(), and polybori::BooleSet::expEnd().
Referenced by setupMultiplicationTables().
Polynomial polybori::groebner::FGLMStrategy::rowToPoly | ( | mzd_t * | row | ) |
References polybori::groebner::add_up_monomials().
void polybori::groebner::FGLMStrategy::findVectorInMultTables | ( | mzd_t * | dst, | |
Monomial | m | |||
) |
Referenced by main(), and setupMultiplicationTables().
mzd_t* polybori::groebner::FGLMStrategy::multiplicationTableForVariable | ( | const Variable & | v | ) | [inline] |
References polybori::BooleVariable::index().
Referenced by setupMultiplicationTables(), and testMultiplicationTables().