#include <groebner_alg.h>
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | const GroebnerStrategy & | orig | ) |
References averageLength, cache, chainCriterions, currentDegree, easyProductCriterions, enabledLog, extendedProductCriterions, llReductor, monomials, normalForms, optAllowRecursion, optBrutalReductions, optDelayNonMinimals, optExchange, optLazy, optLinearAlgebraInLastBlock, optLL, optRedTail, optRedTailDegGrowth, optRedTailInLastBlock, optStepBounded, pairs, reduceByTailReduced, reducibleUntil, reductionSteps, polybori::groebner::PairManager::strat, and variableChainCriterions.
polybori::groebner::GroebnerStrategy::GroebnerStrategy | ( | ) | [inline] |
References polybori::BoolePolynomial::diagram().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::add4ImplDelayed | ( | const Polynomial & | p, | |
const Exponent & | lm_exp, | |||
const Exponent & | used_variables, | |||
int | s, | |||
bool | include_orig | |||
) | [protected] |
void polybori::groebner::GroebnerStrategy::addAsYouWish | ( | const Polynomial & | p | ) |
References addGenerator(), addGeneratorDelayed(), addGeneratorTrySplit(), polybori::BooleExponent::deg(), polybori::BooleSet::divisorsOf(), polybori::BoolePolynomial::eliminationLength(), polybori::CDDInterface< CuddLikeZDD >::emptiness(), polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), polybori::BoolePolynomial::leadExp(), leadingTerms, optDelayNonMinimals, optRedTail, optRedTailInLastBlock, polybori::BooleSet::owns(), polybori::groebner::red_tail(), polybori::groebner::red_tail_in_last_block(), and polybori::BoolePolynomial::ring().
Referenced by symmGB_F2().
int polybori::groebner::GroebnerStrategy::addGenerator | ( | const BoolePolynomial & | p, | |
bool | is_impl = false , |
|||
std::vector< int > * | impl_v = NULL | |||
) |
deactivated existAbstract, because sigfaults on SatTestCase, AD
!!!! here we add the lm !!!!
References polybori::groebner::addPolynomialToReductor(), polybori::BooleMonomial::begin(), polybori::BoolePolynomial::diagram(), polybori::BooleMonomial::diagram(), polybori::BooleSet::diff(), polybori::BooleSet::divisorsOf(), easyProductCriterions, polybori::CDDInterface< CuddLikeZDD >::emptiness(), polybori::BooleMonomial::end(), polybori::BooleSet::existAbstract(), exp2Index, polybori::BooleSet::expBegin(), polybori::BoolePolynomial::expBegin(), polybori::BooleSet::expEnd(), polybori::BoolePolynomial::expEnd(), extendedProductCriterions, generators, polybori::groebner::PairStatusSet::HAS_T_REP, polybori::BooleSet::intersect(), polybori::groebner::LiteralFactorization::is00Factorization(), polybori::groebner::LiteralFactorization::is11Factorization(), polybori::BoolePolynomial::isOne(), leadingTerms, leadingTerms00, leadingTerms11, polybori::BoolePolynomial::length(), polybori::groebner::PolyEntry::length, polybori::CDDInterface< CuddLikeZDD >::length(), polybori::groebner::PolyEntry::literal_factors, llReductor, polybori::groebner::PolyEntry::lm, lm2Index, polybori::groebner::PolyEntry::lmDeg, polybori::groebner::PolyEntry::lmExp, minimalLeadingTerms, polybori::groebner::mod_mon_set(), monomials, polybori::BooleSet::multiplesOf(), polybori::BoolePolynomial::navigation(), optLL, optRedTail, polybori::groebner::PolyEntry::p, pairs, polybori::groebner::PairStatusSet::prolong(), propagate(), polybori::groebner::red_tail(), reducibleUntil, polybori::groebner::PairStatusSet::setToHasTRep(), polybori::groebner::PairStatusSet::setToUncalculated(), polybori::groebner::PairManager::status, polybori::BooleSet::subset0(), treatNormalPairs(), treatVariablePairs(), polybori::BooleSet::unite(), and polybori::BooleSet::uniteAssign().
Referenced by addAsYouWish(), addGeneratorTrySplit(), and polybori::groebner::full_implication_gb().
void polybori::groebner::GroebnerStrategy::addGeneratorDelayed | ( | const BoolePolynomial & | p | ) |
References polybori::groebner::PairManager::introducePair(), and pairs.
Referenced by add4ImplDelayed(), addAsYouWish(), addGeneratorTrySplit(), addHigherImplDelayedUsing4(), addNonTrivialImplicationsDelayed(), polybori::groebner::nf_delaying(), polybori::groebner::nf_delaying_exchanging(), and polybori::groebner::parallel_reduce().
void polybori::groebner::GroebnerStrategy::addGeneratorTrySplit | ( | const Polynomial & | p, | |
bool | is_minimal | |||
) |
References add4ImplDelayed(), addGenerator(), addGeneratorDelayed(), addHigherImplDelayedUsing4(), cache, polybori::BooleSet::divisorsOf(), polybori::groebner::full_implication_gb(), polybori::BoolePolynomial::isZero(), polybori::BoolePolynomial::leadExp(), leadingTerms, log(), minimalLeadingTerms, optAllowRecursion, optRedTail, polybori::groebner::polynomial_in_one_block(), polybori::groebner::red_tail(), polybori::groebner::LiteralFactorization::rest, and polybori::BoolePolynomial::usedVariablesExp().
Referenced by addAsYouWish().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::addHigherImplDelayedUsing4 | ( | int | s, | |
const LiteralFactorization & | literal_factors, | |||
bool | include_orig | |||
) | [protected] |
References addGeneratorDelayed(), polybori::BooleSet::divisorsOf(), polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::leadExp(), minimalLeadingTerms, polybori::groebner::LiteralFactorization::rest, polybori::BooleEnv::ring(), polybori::groebner::set_up_translation_vectors(), polybori::BooleExponent::size(), and polybori::BoolePolynomial::usedVariablesExp().
Referenced by addGeneratorTrySplit(), and treatVariablePairs().
void polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed | ( | const PolyEntry & | p | ) |
References addGeneratorDelayed(), polybori::groebner::LiteralFactorization::factors, polybori::BoolePolynomial::isOne(), polybori::groebner::PolyEntry::literal_factors, log(), polybori::groebner::PolyEntry::p, polybori::groebner::LiteralFactorization::rest, polybori::BoolePolynomial::ring(), polybori::groebner::LiteralFactorization::trivial(), and polybori::groebner::LiteralFactorization::var2var_map.
Referenced by propagate_step().
void polybori::groebner::GroebnerStrategy::addVariablePairs | ( | int | s | ) | [protected] |
References generators, polybori::groebner::PairManager::introducePair(), pairs, and polybori::groebner::VARIABLE_PAIR.
Referenced by treatVariablePairs().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::allGenerators | ( | ) |
References polybori::groebner::PairManager::appendHiddenGenerators(), generators, and pairs.
bool polybori::groebner::GroebnerStrategy::canRewrite | ( | const Polynomial & | p | ) | const [inline] |
References polybori::groebner::is_rewriteable().
Referenced by polybori::groebner::red_tail_generic().
bool polybori::groebner::GroebnerStrategy::containsOne | ( | ) | const [inline] |
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::faugereStepDense | ( | const std::vector< Polynomial > & | ) |
Referenced by polybori::groebner::parallel_reduce().
void polybori::groebner::GroebnerStrategy::llReduceAll | ( | ) |
void polybori::groebner::GroebnerStrategy::log | ( | const char * | c | ) | [inline] |
Referenced by addGeneratorTrySplit(), addNonTrivialImplicationsDelayed(), polybori::groebner::PairManager::cleanTopByChainCriterion(), polybori::groebner::full_implication_gb(), polybori::groebner::nf_delaying(), polybori::groebner::nf_delaying_exchanging(), and polybori::groebner::parallel_reduce().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalize | ( | ) |
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalizeAndTailReduce | ( | ) |
References exp2Index, polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), generators, polybori::CDDInterface< CuddLikeZDD >::length(), polybori::groebner::minimal_elements(), minimalLeadingTerms, optRedTailDegGrowth, and polybori::groebner::red_tail().
Referenced by polybori::groebner::full_implication_gb().
Polynomial polybori::groebner::GroebnerStrategy::nextSpoly | ( | ) | [inline] |
Polynomial polybori::groebner::GroebnerStrategy::nf | ( | Polynomial | p | ) | const |
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::noroStep | ( | const std::vector< Polynomial > & | ) |
void polybori::groebner::GroebnerStrategy::propagate | ( | const PolyEntry & | e | ) |
References propagate_step(), and polybori::groebner::should_propagate().
Referenced by addGenerator().
void polybori::groebner::GroebnerStrategy::propagate_step | ( | const PolyEntry & | e, | |
std::set< int > | others | |||
) |
References addNonTrivialImplicationsDelayed(), polybori::BoolePolynomial::diagram(), generators, polybori::groebner::PolyEntry::length, polybori::groebner::PolyEntry::lm, polybori::groebner::PolyEntry::lmExp, monomials, polybori::groebner::PolyEntry::p, polybori::groebner::should_propagate(), and polybori::BooleSet::unite().
Referenced by propagate().
Polynomial polybori::groebner::GroebnerStrategy::redTail | ( | const Polynomial & | p | ) |
References polybori::groebner::red_tail().
int polybori::groebner::GroebnerStrategy::suggestPluginVariable | ( | ) |
void polybori::groebner::GroebnerStrategy::symmGB_F2 | ( | ) |
void polybori::groebner::GroebnerStrategy::treat_m_p_1_case | ( | const PolyEntry & | e | ) |
References polybori::BoolePolynomial::begin(), polybori::BooleMonomial::diagram(), polybori::BoolePolynomial::end(), polybori::BoolePolynomial::length(), polybori::groebner::PolyEntry::length, polybori::groebner::PolyEntry::lm, monomials_plus_one, polybori::groebner::PolyEntry::p, and polybori::BooleSet::unite().
void polybori::groebner::GroebnerStrategy::treatNormalPairs | ( | int | s, | |
MonomialSet | intersecting_terms, | |||
MonomialSet | other_terms, | |||
MonomialSet | ext_prod_terms | |||
) | [protected] |
References polybori::BooleSet::begin(), polybori::BooleSet::end(), exp2Index, polybori::BooleSet::expBegin(), polybori::BooleSet::expEnd(), generators, polybori::BooleSet::intersect(), polybori::groebner::PairManager::introducePair(), leadingTerms, polybori::groebner::PolyEntry::lm, polybori::groebner::PolyEntry::lmExp, minimalLeadingTerms, pairs, polybori::BooleMonomial::reducibleBy(), and polybori::BooleMonomial::ring().
Referenced by addGenerator().
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::treatVariablePairs | ( | int | s | ) | [protected] |
References add4ImplDelayed(), addHigherImplDelayedUsing4(), addVariablePairs(), polybori::BooleExponent::deg(), polybori::groebner::LiteralFactorization::factors, generators, polybori::groebner::PolyEntry::literal_factors, polybori::groebner::PolyEntry::lmExp, polybori::BoolePolynomial::nUsedVariables(), polybori::groebner::PolyEntry::p, polybori::groebner::polynomial_in_one_block(), polybori::groebner::LiteralFactorization::rest, polybori::groebner::PolyEntry::usedVariables, and polybori::groebner::LiteralFactorization::var2var_map.
Referenced by addGenerator().
bool polybori::groebner::GroebnerStrategy::variableHasValue | ( | idx_type | i | ) |
References generators.
Referenced by GroebnerStrategy().
boost::shared_ptr<CacheManager> polybori::groebner::GroebnerStrategy::cache |
Referenced by addGeneratorTrySplit(), polybori::groebner::full_implication_gb(), and GroebnerStrategy().
Referenced by polybori::groebner::PairManager::cleanTopByChainCriterion(), and GroebnerStrategy().
Referenced by GroebnerStrategy().
Referenced by addGenerator(), and GroebnerStrategy().
Referenced by GroebnerStrategy().
Referenced by addGenerator(), minimalizeAndTailReduce(), polybori::groebner::HasTRepOrExtendedProductCriterion::operator()(), polybori::groebner::ChainVariableCriterion::operator()(), polybori::groebner::ChainCriterion::operator()(), polybori::groebner::PairManager::replacePair(), polybori::groebner::select1(), polybori::groebner::select_no_deg_growth(), and treatNormalPairs().
Referenced by addGenerator(), addVariablePairs(), allGenerators(), polybori::groebner::PairManager::cleanTopByChainCriterion(), llReduceAll(), minimalize(), minimalizeAndTailReduce(), polybori::groebner::PairManager::nextSpoly(), polybori::groebner::nf1(), polybori::groebner::nf2(), polybori::groebner::nf2_short(), polybori::groebner::nf3(), polybori::groebner::nf3_db(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::nf3_short(), polybori::groebner::nf_delaying(), polybori::groebner::nf_delaying_exchanging(), polybori::groebner::LessWeightedLengthInStrat::operator()(), polybori::groebner::HasTRepOrExtendedProductCriterion::operator()(), polybori::groebner::ChainVariableCriterion::operator()(), polybori::groebner::parallel_reduce(), propagate_step(), polybori::groebner::PairManager::replacePair(), polybori::groebner::select_no_deg_growth(), treatNormalPairs(), treatVariablePairs(), and variableHasValue().
Referenced by addAsYouWish(), addGenerator(), addGeneratorTrySplit(), polybori::groebner::PairManager::cleanTopByChainCriterion(), polybori::groebner::LexHelper::irreducible_lead(), polybori::groebner::PairManager::replacePair(), polybori::groebner::select1(), polybori::groebner::select_no_deg_growth(), and treatNormalPairs().
Referenced by addGenerator(), GroebnerStrategy(), llReduceAll(), and polybori::groebner::red_tail_generic().
Referenced by addGenerator(), minimalize(), polybori::groebner::LessCombinedManySizesInStrat::operator()(), polybori::groebner::LessUsedTailVariablesThenLessWeightedLengthInStrat::operator()(), polybori::groebner::LessEcartThenLessWeightedLengthInStrat::operator()(), and polybori::groebner::HasTRepOrExtendedProductCriterion::operator()().
Referenced by addGenerator(), GroebnerStrategy(), llReduceAll(), propagate_step(), and polybori::groebner::red_tail_generic().
Referenced by treat_m_p_1_case().
Referenced by GroebnerStrategy().
Referenced by addGeneratorTrySplit(), polybori::groebner::full_implication_gb(), and GroebnerStrategy().
Referenced by addAsYouWish(), and GroebnerStrategy().
Referenced by GroebnerStrategy(), and polybori::groebner::parallel_reduce().
Referenced by GroebnerStrategy(), and polybori::groebner::parallel_reduce().
Referenced by GroebnerStrategy(), and polybori::groebner::parallel_reduce().
Referenced by addGenerator(), GroebnerStrategy(), and polybori::groebner::red_tail_generic().
Referenced by addAsYouWish(), addGenerator(), addGeneratorTrySplit(), GroebnerStrategy(), and nf().
Referenced by addAsYouWish(), and GroebnerStrategy().
Referenced by GroebnerStrategy(), and polybori::groebner::parallel_reduce().
Referenced by addGenerator(), addGeneratorDelayed(), addVariablePairs(), allGenerators(), polybori::groebner::PairManager::cleanTopByChainCriterion(), GroebnerStrategy(), polybori::groebner::HasTRepOrExtendedProductCriterion::operator()(), polybori::groebner::ChainVariableCriterion::operator()(), polybori::groebner::ChainCriterion::operator()(), symmGB_F2(), and treatNormalPairs().
Referenced by polybori::groebner::PairManager::nextSpoly().
Referenced by GroebnerStrategy().
Referenced by addGenerator(), GroebnerStrategy(), and polybori::groebner::LexHelper::knowRestIsIrreducible().
unsigned int polybori::groebner::GroebnerStrategy::reductionSteps |
Referenced by GroebnerStrategy().
Referenced by polybori::groebner::PairManager::cleanTopByChainCriterion(), and GroebnerStrategy().