PolyBoRi
|
This class defines GroebnerStrategy. More...
#include <GroebnerStrategy.h>
This class defines GroebnerStrategy.
copy constructor
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | const BoolePolyRing & | input_ring | ) | [inline] |
Construct from a ring.
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::add4ImplDelayed | ( | PolyEntryReference | entry | ) | [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().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::add4ImplDelayed | ( | const Polynomial & | p, |
const Exponent & | lm_exp, | ||
const Exponent & | used_variables | ||
) | const [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().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::addHigherImplDelayedUsing4 | ( | PolyEntryReference | entry | ) | [protected] |
References addGeneratorDelayed(), polybori::for_each(), and polybori::groebner::PolyEntry::markVariablePairsCalculated().
Referenced by addGeneratorTrySplit(), addHigherImplDelayedUsing4(), and treatVariablePairs().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::addHigherImplDelayedUsing4 | ( | const LiteralFactorization & | literal_factors | ) | const [protected] |
References addHigherImplDelayedUsing4().
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().
void polybori::groebner::GroebnerStrategy::addVariablePairs | ( | PolyEntryReference | entryref | ) | [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 | ||
) |
bool polybori::groebner::GroebnerStrategy::checkPairCriteria | ( | const Exponent & | lm, |
int | i, | ||
int | j | ||
) | [inline] |
bool polybori::groebner::GroebnerStrategy::checkSingletonCriterion | ( | int | i, |
int | j | ||
) | const [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableChainCriterion | ( | int | idx | ) | [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableCriteria | ( | int | idx, |
int | var | ||
) | [inline] |
References PBORI_UNLIKELY.
bool polybori::groebner::GroebnerStrategy::checkVariableLeadOfFactorCriterion | ( | int | idx, |
int | var | ||
) | const [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableSingletonCriterion | ( | int | idx | ) | const [inline] |
bool polybori::groebner::GroebnerStrategy::containsOne | ( | ) | const [inline] |
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::faugereStepDense | ( | const std::vector< Polynomial > & | ) |
Referenced by polybori::groebner::parallel_reduce().
References generators, and polybori::groebner::ReductionStrategy::llReduceAll().
void polybori::groebner::GroebnerStrategy::log | ( | const char * | c | ) | const [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().
References generators, and polybori::groebner::ReductionStrategy::nf().
Referenced by polybori::groebner::red_tail_in_last_block().
void polybori::groebner::GroebnerStrategy::normalPairsWithLast | ( | const MonomialSet & | act_l_terms | ) | [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 | ) |
References generators, and polybori::groebner::red_tail().
const BoolePolyRing& polybori::groebner::GroebnerStrategy::ring | ( | ) | const [inline] |
Referenced by addNonTrivialImplicationsDelayed(), and checkChainCriterion().
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::treat_m_p_1_case | ( | const PolyEntry & | e | ) | [inline] |
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::treatVariablePairs | ( | PolyEntryReference | entry | ) | [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().
boost::shared_ptr<CacheManager> polybori::groebner::GroebnerStrategy::cache |
Referenced by addGeneratorTrySplit(), and polybori::groebner::full_implication_gb().
Referenced by checkChainCriterion().
Referenced by checkExtendedProductCriterion().
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().
unsigned int polybori::groebner::GroebnerStrategy::reductionSteps |