PolyBoRi
|
This class defines GroebnerStrategy. More...
#include <GroebnerStrategy.h>
Public Attributes | |
public available parameters | |
ReductionStrategy | generators |
boost::shared_ptr< CacheManager > | cache |
unsigned int | reductionSteps |
int | normalForms |
int | currentDegree |
int | averageLength |
int | chainCriterions |
int | variableChainCriterions |
int | easyProductCriterions |
int | extendedProductCriterions |
![]() | |
bool | optRedTailInLastBlock |
bool | optLazy |
std::string | matrixPrefix |
bool | optDrawMatrices |
bool | optModifiedLinearAlgebra |
bool | optDelayNonMinimals |
bool | enabledLog |
bool | optExchange |
bool | optHFE |
bool | optStepBounded |
bool | optAllowRecursion |
bool | optLinearAlgebraInLastBlock |
bool | reduceByTailReduced |
![]() | |
PairManagerWithStrategy < strategy_type > | pairs |
For compatibility reasons make this a public member. More... | |
Protected Member Functions | |
std::vector< Polynomial > | treatVariablePairs (PolyEntryReference) |
void | normalPairsWithLast (const MonomialSet &) |
void | addVariablePairs (PolyEntryReference) |
std::vector< Polynomial > | add4ImplDelayed (PolyEntryReference) |
std::vector< Polynomial > | add4ImplDelayed (const Polynomial &p, const Exponent &lm_exp, const Exponent &used_variables) const |
std::vector< Polynomial > | addHigherImplDelayedUsing4 (PolyEntryReference) |
std::vector< Polynomial > | addHigherImplDelayedUsing4 (const LiteralFactorization &) const |
This class defines GroebnerStrategy.
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | const GroebnerStrategy & | orig | ) |
copy constructor
|
inline |
Construct from a ring.
|
protected |
References addGeneratorDelayed(), polybori::for_each(), polybori::groebner::PolyEntryBase::leadExp, polybori::groebner::PolyEntryReference::markVariablePairsCalculated(), polybori::groebner::PolyEntryBase::p, and polybori::groebner::PolyEntryBase::usedVariables.
Referenced by add4ImplDelayed(), addGeneratorTrySplit(), and treatVariablePairs().
|
protected |
References add4ImplDelayed().
void polybori::groebner::GroebnerStrategy::addAsYouWish | ( | const Polynomial & | p | ) |
References addGenerator(), addGeneratorDelayed(), addGeneratorTrySplit(), polybori::BooleExponent::deg(), polybori::BooleSet::divisorsOf(), polybori::BoolePolynomial::eliminationLength(), generators, polybori::CCuddDDFacade< RingType, DiagramType >::isZero(), polybori::BoolePolynomial::leadExp(), polybori::groebner::ReductionTerms::leadingTerms, polybori::groebner::GroebnerOptions::optDelayNonMinimals, polybori::groebner::ReductionOptions::optRedTail, polybori::groebner::GroebnerOptions::optRedTailInLastBlock, polybori::BooleSet::owns(), polybori::groebner::red_tail(), polybori::groebner::red_tail_in_last_block(), polybori::BoolePolynomial::ring(), and polybori::which().
Referenced by symmGB_F2().
void polybori::groebner::GroebnerStrategy::addGenerator | ( | const PolyEntry & | entry | ) |
void polybori::groebner::GroebnerStrategy::addGeneratorDelayed | ( | const BoolePolynomial & | p | ) |
References polybori::groebner::PolyEntryVector::empty(), generators, polybori::BoolePolyRing::id(), polybori::groebner::PairManagerWithStrategy< StrategyType >::introducePair(), polybori::groebner::PairManagerFacade< GroebnerStrategy >::pairs, PBORI_ASSERT, and polybori::BoolePolynomial::ring().
Referenced by add4ImplDelayed(), addAsYouWish(), addGeneratorTrySplit(), addHigherImplDelayedUsing4(), addNonTrivialImplicationsDelayed(), and polybori::groebner::parallel_reduce().
void polybori::groebner::GroebnerStrategy::addGeneratorTrySplit | ( | const Polynomial & | p, |
bool | is_minimal | ||
) |
References add4ImplDelayed(), addGenerator(), addGeneratorDelayed(), addHigherImplDelayedUsing4(), cache, polybori::BooleExponent::deg(), polybori::BooleSet::divisorsOf(), polybori::groebner::PolyEntryVector::empty(), polybori::groebner::full_implication_gb(), generators, polybori::groebner::have_base_ordering_for_tables(), polybori::groebner::have_ordering_for_tables(), polybori::BoolePolyRing::id(), polybori::BoolePolynomial::inSingleBlock(), polybori::BoolePolynomial::leadExp(), polybori::groebner::ReductionTerms::leadingTerms, log(), polybori::groebner::ReductionTerms::minimalLeadingTerms, polybori::groebner::multiply_with_literal_factors(), polybori::groebner::GroebnerOptions::optAllowRecursion, PBORI_ASSERT, polybori::groebner::LiteralFactorization::rest, polybori::BoolePolynomial::ring(), and polybori::BoolePolynomial::usedVariablesExp().
Referenced by addAsYouWish().
|
protected |
References addGeneratorDelayed(), polybori::for_each(), and polybori::groebner::PolyEntry::markVariablePairsCalculated().
Referenced by addGeneratorTrySplit(), addHigherImplDelayedUsing4(), and treatVariablePairs().
|
protected |
References addHigherImplDelayedUsing4().
void polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed | ( | const PolyEntry & | p | ) |
References addGeneratorDelayed(), polybori::groebner::LiteralFactorization::factors, polybori::BoolePolynomial::isOne(), polybori::groebner::PolyEntryBase::literal_factors, log(), polybori::BoolePolyRing::one(), polybori::groebner::PolyEntryBase::p, polybori::groebner::LiteralFactorization::rest, ring(), polybori::BoolePolynomial::ring(), polybori::groebner::LiteralFactorization::trivial(), polybori::groebner::LiteralFactorization::var2var_map, and polybori::BoolePolyRing::variable().
|
protected |
References polybori::BooleExponent::begin(), polybori::BooleMonomial::deg(), polybori::BooleExponent::end(), generators, polybori::groebner::PairManagerWithStrategy< StrategyType >::introducePair(), polybori::groebner::PolyEntryBase::lead, polybori::groebner::PolyEntryBase::leadExp, polybori::groebner::PolyEntryBase::literal_factors, polybori::groebner::LiteralFactorization::occursAsLeadOfFactor(), polybori::groebner::PairManagerFacade< GroebnerStrategy >::pairs, polybori::groebner::PolyEntryVector::size(), polybori::groebner::VARIABLE_PAIR, and polybori::groebner::PolyEntryReference::vPairCalculated.
Referenced by treatVariablePairs().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::allGenerators | ( | ) |
References polybori::groebner::PairManager::appendHiddenGenerators(), polybori::groebner::PolyEntryVector::begin(), polybori::groebner::PolyEntryVector::empty(), polybori::groebner::PolyEntryVector::end(), polybori::groebner::PolyEntryVector::front(), generators, polybori::groebner::PairManagerFacade< GroebnerStrategy >::pairs, polybori::groebner::PolyEntryVector::size(), and polybori::transform().
bool polybori::groebner::GroebnerStrategy::checkChainCriterion | ( | const Exponent & | lm, |
int | i, | ||
int | j | ||
) |
bool polybori::groebner::GroebnerStrategy::checkExtendedProductCriterion | ( | int | i, |
int | j | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
References PBORI_UNLIKELY.
|
inline |
|
inline |
|
inline |
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::faugereStepDense | ( | const std::vector< Polynomial > & | ) |
Referenced by polybori::groebner::parallel_reduce().
void polybori::groebner::GroebnerStrategy::llReduceAll | ( | ) |
References generators, and polybori::groebner::ReductionStrategy::llReduceAll().
|
inline |
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalize | ( | ) |
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalizeAndTailReduce | ( | ) |
References generators, polybori::groebner::minimal_elements(), polybori::groebner::ReductionTerms::minimalLeadingTerms, polybori::groebner::ReductionOptions::optRedTailDegGrowth, polybori::BooleSet::rExpBegin(), polybori::BooleSet::rExpEnd(), polybori::CCuddDDFacade< RingType, DiagramType >::ring(), polybori::BooleSet::size(), and polybori::transform().
|
inline |
Polynomial polybori::groebner::GroebnerStrategy::nf | ( | Polynomial | p | ) | const |
References generators, and polybori::groebner::ReductionStrategy::nf().
Referenced by polybori::groebner::red_tail_in_last_block().
|
protected |
References polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), generators, polybori::groebner::PolyEntryVector::index(), polybori::groebner::PairManagerWithStrategy< StrategyType >::introducePair(), polybori::groebner::PairManagerFacade< GroebnerStrategy >::pairs, and polybori::groebner::PolyEntryVector::size().
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::noroStep | ( | const std::vector< Polynomial > & | ) |
void polybori::groebner::GroebnerStrategy::propagate | ( | const PolyEntry & | e | ) |
Polynomial polybori::groebner::GroebnerStrategy::redTail | ( | const Polynomial & | p | ) |
References generators, and polybori::groebner::red_tail().
|
inline |
Referenced by addNonTrivialImplicationsDelayed(), and checkChainCriterion().
int polybori::groebner::GroebnerStrategy::suggestPluginVariable | ( | ) |
References polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), polybori::for_each(), generators, polybori::groebner::ReductionTerms::minimalLeadingTerms, polybori::BoolePolyRing::nVariables(), polybori::groebner::RankingVector::rerank(), and polybori::CCuddDDFacade< RingType, DiagramType >::ring().
void polybori::groebner::GroebnerStrategy::symmGB_F2 | ( | ) |
|
inline |
|
protected |
References add4ImplDelayed(), addHigherImplDelayedUsing4(), addVariablePairs(), polybori::BooleExponent::deg(), polybori::BooleMonomial::deg(), polybori::BooleMonomial::divisors(), polybori::groebner::LiteralFactorization::factors, polybori::groebner::have_base_ordering_for_tables(), polybori::groebner::have_ordering_for_tables(), polybori::BoolePolynomial::inSingleBlock(), polybori::BoolePolynomial::leadDeg(), polybori::groebner::PolyEntryBase::literal_factors, polybori::BoolePolynomial::nUsedVariables(), polybori::groebner::PolyEntryBase::p, PBORI_ASSERT, polybori::groebner::LiteralFactorization::rest, polybori::BoolePolynomial::ring(), polybori::BooleSet::size(), polybori::groebner::PolyEntryBase::usedVariables, polybori::BoolePolynomial::usedVariables(), polybori::groebner::LiteralFactorization::var2var_map, and polybori::groebner::zeros().
Referenced by addGenerator().
bool polybori::groebner::GroebnerStrategy::variableHasValue | ( | idx_type | i | ) |
int polybori::groebner::GroebnerStrategy::averageLength |
boost::shared_ptr<CacheManager> polybori::groebner::GroebnerStrategy::cache |
Referenced by addGeneratorTrySplit(), and polybori::groebner::full_implication_gb().
int polybori::groebner::GroebnerStrategy::chainCriterions |
Referenced by checkChainCriterion().
int polybori::groebner::GroebnerStrategy::currentDegree |
int polybori::groebner::GroebnerStrategy::easyProductCriterions |
int polybori::groebner::GroebnerStrategy::extendedProductCriterions |
Referenced by checkExtendedProductCriterion().
ReductionStrategy polybori::groebner::GroebnerStrategy::generators |
Referenced by addAsYouWish(), addGenerator(), addGeneratorDelayed(), addGeneratorTrySplit(), addVariablePairs(), allGenerators(), checkChainCriterion(), checkExtendedProductCriterion(), llReduceAll(), minimalize(), minimalizeAndTailReduce(), nf(), polybori::groebner::nf3_lexbuckets(), normalPairsWithLast(), polybori::groebner::ChainCriterion::operator()(), polybori::groebner::ChainVariableCriterion::operator()(), polybori::groebner::HasTRepOrExtendedProductCriterion::operator()(), polybori::groebner::parallel_reduce(), polybori::groebner::red_tail_in_last_block(), redTail(), suggestPluginVariable(), and variableHasValue().
int polybori::groebner::GroebnerStrategy::normalForms |
unsigned int polybori::groebner::GroebnerStrategy::reductionSteps |
int polybori::groebner::GroebnerStrategy::variableChainCriterions |