#include <GroebnerStrategy.h>
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | const GroebnerStrategy & | orig | ) |
copy constructor
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | const BoolePolyRing & | input_ring | ) | [inline] |
Construct from a ring.
const BoolePolyRing& polybori::groebner::GroebnerStrategy::ring | ( | ) | const [inline] |
Referenced by addNonTrivialImplicationsDelayed(), checkChainCriterion(), faugereStepDense(), and noroStep().
bool polybori::groebner::GroebnerStrategy::containsOne | ( | ) | const [inline] |
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().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalize | ( | ) |
void polybori::groebner::GroebnerStrategy::addGenerator | ( | const PolyEntry & | entry | ) |
void polybori::groebner::GroebnerStrategy::addGeneratorDelayed | ( | const BoolePolynomial & | p | ) |
References polybori::groebner::PolyEntryVector::empty(), generators, polybori::groebner::PairManagerWithStrategy< StrategyType >::introducePair(), polybori::groebner::PairManagerFacade< StrategyType >::pairs, PBORI_ASSERT, and polybori::BoolePolynomial::ring().
Referenced by add4ImplDelayed(), addAsYouWish(), addGeneratorTrySplit(), addHigherImplDelayedUsing4(), addNonTrivialImplicationsDelayed(), and polybori::groebner::parallel_reduce().
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::addGeneratorTrySplit | ( | const Polynomial & | p, | |
bool | is_minimal | |||
) |
References add4ImplDelayed(), addGenerator(), addGeneratorDelayed(), addHigherImplDelayedUsing4(), cache, 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::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().
bool polybori::groebner::GroebnerStrategy::variableHasValue | ( | idx_type | i | ) |
void polybori::groebner::GroebnerStrategy::llReduceAll | ( | ) |
References generators, and polybori::groebner::ReductionStrategy::llReduceAll().
void polybori::groebner::GroebnerStrategy::treat_m_p_1_case | ( | const PolyEntry & | e | ) | [inline] |
Polynomial polybori::groebner::GroebnerStrategy::nextSpoly | ( | ) | [inline] |
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, polybori::BoolePolynomial::ring(), ring(), polybori::groebner::LiteralFactorization::trivial(), polybori::groebner::LiteralFactorization::var2var_map, and polybori::BoolePolyRing::variable().
void polybori::groebner::GroebnerStrategy::propagate | ( | const PolyEntry & | e | ) |
void polybori::groebner::GroebnerStrategy::log | ( | const char * | c | ) | const [inline] |
Polynomial polybori::groebner::GroebnerStrategy::redTail | ( | const Polynomial & | p | ) |
References generators, and polybori::groebner::red_tail().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::noroStep | ( | const std::vector< Polynomial > & | orig_system | ) |
References polybori::groebner::add_up_exponents(), polybori::BoolePolynomial::diagram(), polybori::groebner::draw_matrix(), polybori::groebner::GroebnerOptions::enabledLog, polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), generators, polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::isZero(), polybori::groebner::ll_red_nf(), polybori::groebner::ReductionTerms::llReductor, log(), polybori::groebner::GroebnerOptions::matrixPrefix, polybori::groebner::GroebnerOptions::optDrawMatrices, PBORI_ASSERT, PBORI_LIKELY, PBORI_UNLIKELY, polybori::groebner::ReductionStrategy::reducedNormalForm(), ring(), and polybori::BooleSet::size().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::faugereStepDense | ( | const std::vector< Polynomial > & | orig_system | ) |
References polybori::groebner::GroebnerOptions::enabledLog, polybori::groebner::fix_point_iterate(), polybori::groebner::linalg_step(), polybori::groebner::linalg_step_modified(), polybori::groebner::GroebnerOptions::matrixPrefix, polybori::groebner::GroebnerOptions::optDrawMatrices, polybori::groebner::GroebnerOptions::optModifiedLinearAlgebra, PBORI_ASSERT, ring(), and polybori::same_rings().
Referenced by polybori::groebner::parallel_reduce().
Polynomial polybori::groebner::GroebnerStrategy::nf | ( | Polynomial | p | ) | const |
References generators, and polybori::groebner::ReductionStrategy::nf().
Referenced by polybori::groebner::red_tail_in_last_block().
void polybori::groebner::GroebnerStrategy::symmGB_F2 | ( | ) |
int polybori::groebner::GroebnerStrategy::suggestPluginVariable | ( | ) |
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< StrategyType >::pairs, polybori::groebner::PolyEntryVector::size(), and polybori::transform().
bool polybori::groebner::GroebnerStrategy::checkSingletonCriterion | ( | int | i, | |
int | j | |||
) | const [inline] |
bool polybori::groebner::GroebnerStrategy::checkPairCriteria | ( | const Exponent & | lm, | |
int | i, | |||
int | j | |||
) | [inline] |
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::checkVariableSingletonCriterion | ( | int | idx | ) | const [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableLeadOfFactorCriterion | ( | int | idx, | |
int | var | |||
) | const [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableChainCriterion | ( | int | idx | ) | [inline] |
bool polybori::groebner::GroebnerStrategy::checkVariableCriteria | ( | int | idx, | |
int | var | |||
) | [inline] |
References PBORI_UNLIKELY.
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::treatVariablePairs | ( | PolyEntryReference | entry | ) | [protected] |
References add4ImplDelayed(), addHigherImplDelayedUsing4(), addVariablePairs(), polybori::BooleMonomial::deg(), polybori::BooleExponent::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::BoolePolynomial::usedVariables(), polybori::groebner::PolyEntryBase::usedVariables, polybori::groebner::LiteralFactorization::var2var_map, and polybori::groebner::zeros().
Referenced by addGenerator().
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< StrategyType >::pairs, and polybori::groebner::PolyEntryVector::size().
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< StrategyType >::pairs, polybori::groebner::PolyEntryVector::size(), polybori::groebner::VARIABLE_PAIR, and polybori::groebner::PolyEntryReference::vPairCalculated.
Referenced by treatVariablePairs().
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().
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().
Referenced by addAsYouWish(), addGenerator(), addGeneratorDelayed(), addGeneratorTrySplit(), addVariablePairs(), allGenerators(), checkChainCriterion(), checkExtendedProductCriterion(), polybori::groebner::fix_point_iterate(), llReduceAll(), minimalize(), minimalizeAndTailReduce(), nf(), polybori::groebner::nf3_lexbuckets(), normalPairsWithLast(), noroStep(), polybori::groebner::HasTRepOrExtendedProductCriterion::operator()(), polybori::groebner::ChainVariableCriterion::operator()(), polybori::groebner::ChainCriterion::operator()(), polybori::groebner::parallel_reduce(), polybori::groebner::red_tail_in_last_block(), redTail(), polybori::groebner::SlimgbReduction< variant >::reduce(), suggestPluginVariable(), and variableHasValue().
boost::shared_ptr<CacheManager> polybori::groebner::GroebnerStrategy::cache |
Referenced by addGeneratorTrySplit(), and polybori::groebner::full_implication_gb().
unsigned int polybori::groebner::GroebnerStrategy::reductionSteps |
Referenced by checkChainCriterion().
Referenced by checkExtendedProductCriterion().