#include <groebner_alg.h>
Public Member Functions | |
bool | containsOne () const |
GroebnerStrategy (const GroebnerStrategy &orig) | |
std::vector< Polynomial > | minimalizeAndTailReduce () |
std::vector< Polynomial > | minimalize () |
int | addGenerator (const BoolePolynomial &p, bool is_impl=false, std::vector< int > *impl_v=NULL) |
void | addGeneratorDelayed (const BoolePolynomial &p) |
void | addAsYouWish (const Polynomial &p) |
void | addGeneratorTrySplit (const Polynomial &p, bool is_minimal) |
bool | variableHasValue (idx_type i) |
void | llReduceAll () |
void | treat_m_p_1_case (const PolyEntry &e) |
GroebnerStrategy () | |
Polynomial | nextSpoly () |
void | addNonTrivialImplicationsDelayed (const PolyEntry &p) |
void | propagate (const PolyEntry &e) |
void | propagate_step (const PolyEntry &e, std::set< int > others) |
void | log (const char *c) |
bool | canRewrite (const Polynomial &p) const |
Polynomial | redTail (const Polynomial &p) |
std::vector< Polynomial > | noroStep (const std::vector< Polynomial > &) |
std::vector< Polynomial > | faugereStepDense (const std::vector< Polynomial > &) |
Polynomial | nf (Polynomial p) const |
void | symmGB_F2 () |
int | suggestPluginVariable () |
std::vector< Polynomial > | allGenerators () |
Public Attributes | |
idx_type | reducibleUntil |
PairManager | pairs |
bool | reduceByTailReduced |
PolyEntryVector | generators |
MonomialSet | leadingTerms |
MonomialSet | minimalLeadingTerms |
MonomialSet | leadingTerms11 |
MonomialSet | leadingTerms00 |
MonomialSet | llReductor |
MonomialSet | monomials |
MonomialSet | monomials_plus_one |
boost::shared_ptr< CacheManager > | cache |
BoolePolyRing | r |
bool | enabledLog |
unsigned int | reductionSteps |
int | normalForms |
int | currentDegree |
int | chainCriterions |
int | variableChainCriterions |
int | easyProductCriterions |
int | extendedProductCriterions |
int | averageLength |
bool | optRedTail |
bool | optHFE |
bool | optLazy |
bool | optLL |
bool | optDelayNonMinimals |
bool | optBrutalReductions |
bool | optExchange |
bool | optAllowRecursion |
bool | optRedTailDegGrowth |
bool | optStepBounded |
bool | optLinearAlgebraInLastBlock |
bool | optRedTailInLastBlock |
lm2Index_map_type | lm2Index |
exp2Index_map_type | exp2Index |
Protected Member Functions | |
std::vector< Polynomial > | treatVariablePairs (int s) |
void | treatNormalPairs (int s, MonomialSet intersecting_terms, MonomialSet other_terms, MonomialSet ext_prod_terms) |
void | addVariablePairs (int s) |
std::vector< Polynomial > | add4ImplDelayed (const Polynomial &p, const Exponent &lm_exp, const Exponent &used_variables, int s, bool include_orig) |
std::vector< Polynomial > | addHigherImplDelayedUsing4 (int s, const LiteralFactorization &literal_factors, bool include_orig) |
GroebnerStrategy::GroebnerStrategy | ( | const GroebnerStrategy & | orig | ) |
References averageLength, cache, chainCriterions, currentDegree, easyProductCriterions, enabledLog, extendedProductCriterions, llReductor, monomials, normalForms, optAllowRecursion, optBrutalReductions, optDelayNonMinimals, optExchange, optHFE, optLazy, optLinearAlgebraInLastBlock, optLL, optRedTail, optRedTailDegGrowth, optRedTailInLastBlock, optStepBounded, pairs, reduceByTailReduced, reducibleUntil, reductionSteps, PairManager::strat, and variableChainCriterions.
GroebnerStrategy::GroebnerStrategy | ( | ) | [inline] |
References chainCriterions, easyProductCriterions, enabledLog, extendedProductCriterions, llReductor, optAllowRecursion, optBrutalReductions, optDelayNonMinimals, optExchange, optHFE, optLazy, optLinearAlgebraInLastBlock, optLL, optRedTail, optRedTailDegGrowth, optRedTailInLastBlock, optStepBounded, BooleEnv::ordering(), reduceByTailReduced, reducibleUntil, and variableChainCriterions.
std::vector< Polynomial > GroebnerStrategy::add4ImplDelayed | ( | const Polynomial & | p, | |
const Exponent & | lm_exp, | |||
const Exponent & | used_variables, | |||
int | s, | |||
bool | include_orig | |||
) | [protected] |
References addGeneratorDelayed(), minimalLeadingTerms, BooleEnv::ring(), and set_up_translation_vectors().
Referenced by addGeneratorTrySplit(), and treatVariablePairs().
void GroebnerStrategy::addAsYouWish | ( | const Polynomial & | p | ) |
References addGenerator(), addGeneratorDelayed(), addGeneratorTrySplit(), leadingTerms, optDelayNonMinimals, optRedTail, optRedTailInLastBlock, polybori::groebner::red_tail(), and red_tail_in_last_block().
Referenced by symmGB_F2().
int 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 addPolynomialToReductor(), BooleSet::diff(), easyProductCriterions, exp2Index, extendedProductCriterions, generators, PairStatusSet::HAS_T_REP, leadingTerms, leadingTerms00, leadingTerms11, llReductor, lm2Index, minimalLeadingTerms, polybori::groebner::mod_mon_set(), monomials, optLL, optRedTail, pairs, PairStatusSet::prolong(), propagate(), polybori::groebner::red_tail(), reducibleUntil, PairStatusSet::setToHasTRep(), PairStatusSet::setToUncalculated(), PairManager::status, BooleSet::subset0(), treatNormalPairs(), treatVariablePairs(), and BooleSet::unite().
Referenced by addAsYouWish(), addGeneratorTrySplit(), and full_implication_gb().
void GroebnerStrategy::addGeneratorDelayed | ( | const BoolePolynomial & | p | ) |
References PairManager::introducePair(), and pairs.
Referenced by add4ImplDelayed(), addAsYouWish(), addGeneratorTrySplit(), addHigherImplDelayedUsing4(), and addNonTrivialImplicationsDelayed().
void GroebnerStrategy::addGeneratorTrySplit | ( | const Polynomial & | p, | |
bool | is_minimal | |||
) |
std::vector< Polynomial > GroebnerStrategy::addHigherImplDelayedUsing4 | ( | int | s, | |
const LiteralFactorization & | literal_factors, | |||
bool | include_orig | |||
) | [protected] |
References addGeneratorDelayed(), minimalLeadingTerms, BooleEnv::ring(), and set_up_translation_vectors().
Referenced by addGeneratorTrySplit(), and treatVariablePairs().
void GroebnerStrategy::addNonTrivialImplicationsDelayed | ( | const PolyEntry & | p | ) |
References addGeneratorDelayed(), and log().
Referenced by propagate_step().
void GroebnerStrategy::addVariablePairs | ( | int | s | ) | [protected] |
References generators, PairManager::introducePair(), pairs, and polybori::groebner::VARIABLE_PAIR.
Referenced by treatVariablePairs().
std::vector< Polynomial > GroebnerStrategy::allGenerators | ( | ) |
References PairManager::appendHiddenGenerators(), generators, and pairs.
bool GroebnerStrategy::canRewrite | ( | const Polynomial & | p | ) | const [inline] |
References polybori::groebner::is_rewriteable(), and minimalLeadingTerms.
Referenced by polybori::groebner::red_tail_generic().
bool GroebnerStrategy::containsOne | ( | ) | const [inline] |
References leadingTerms.
std::vector<Polynomial> GroebnerStrategy::faugereStepDense | ( | const std::vector< Polynomial > & | ) |
void GroebnerStrategy::llReduceAll | ( | ) |
References generators, polybori::groebner::ll_red_nf(), llReductor, and monomials.
void GroebnerStrategy::log | ( | const char * | c | ) | [inline] |
References enabledLog.
Referenced by addGeneratorTrySplit(), addNonTrivialImplicationsDelayed(), PairManager::cleanTopByChainCriterion(), and full_implication_gb().
std::vector< Polynomial > GroebnerStrategy::minimalize | ( | ) |
References generators, lm2Index, minimal_elements(), and minimalLeadingTerms.
std::vector< Polynomial > GroebnerStrategy::minimalizeAndTailReduce | ( | ) |
References exp2Index, generators, minimal_elements(), minimalLeadingTerms, optRedTailDegGrowth, and polybori::groebner::red_tail().
Referenced by full_implication_gb().
Polynomial GroebnerStrategy::nextSpoly | ( | ) | [inline] |
References generators, PairManager::nextSpoly(), and pairs.
Polynomial GroebnerStrategy::nf | ( | Polynomial | p | ) | const |
References polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), optRedTail, BooleEnv::ordering(), and polybori::groebner::red_tail().
Referenced by red_tail_in_last_block().
std::vector<Polynomial> GroebnerStrategy::noroStep | ( | const std::vector< Polynomial > & | ) |
void GroebnerStrategy::propagate | ( | const PolyEntry & | e | ) |
References propagate_step(), and should_propagate().
Referenced by addGenerator().
void GroebnerStrategy::propagate_step | ( | const PolyEntry & | e, | |
std::set< int > | others | |||
) |
References addNonTrivialImplicationsDelayed(), generators, monomials, and should_propagate().
Referenced by propagate().
Polynomial GroebnerStrategy::redTail | ( | const Polynomial & | p | ) |
References polybori::groebner::red_tail().
int GroebnerStrategy::suggestPluginVariable | ( | ) |
References minimalLeadingTerms, and BooleEnv::ring().
void GroebnerStrategy::symmGB_F2 | ( | ) |
References addAsYouWish(), pairs, polybori::groebner::parallel_reduce(), and PairManager::queue.
Referenced by full_implication_gb().
BEGIN_NAMESPACE_PBORIGB void GroebnerStrategy::treat_m_p_1_case | ( | const PolyEntry & | e | ) |
References monomials_plus_one.
void GroebnerStrategy::treatNormalPairs | ( | int | s, | |
MonomialSet | intersecting_terms, | |||
MonomialSet | other_terms, | |||
MonomialSet | ext_prod_terms | |||
) | [protected] |
References exp2Index, generators, PairManager::introducePair(), leadingTerms, minimalLeadingTerms, pairs, and BooleMonomial::ring().
Referenced by addGenerator().
std::vector< Polynomial > GroebnerStrategy::treatVariablePairs | ( | int | s | ) | [protected] |
References add4ImplDelayed(), addHigherImplDelayedUsing4(), addVariablePairs(), generators, and polynomial_in_one_block().
Referenced by addGenerator().
bool GroebnerStrategy::variableHasValue | ( | idx_type | i | ) |
References generators.
Referenced by GroebnerStrategy().
boost::shared_ptr<CacheManager> GroebnerStrategy::cache |
Referenced by addGeneratorTrySplit(), full_implication_gb(), and GroebnerStrategy().
Referenced by PairManager::cleanTopByChainCriterion(), and GroebnerStrategy().
Referenced by GroebnerStrategy().
Referenced by addGenerator(), and GroebnerStrategy().
Referenced by GroebnerStrategy(), and log().
Referenced by addGenerator(), minimalizeAndTailReduce(), polybori::groebner::IsEcart0Predicate::operator()(), LessEcartThenLessWeightedLengthInStrat::operator()(), LessWeightedLengthInStratModified::operator()(), LessWeightedLengthInStrat::operator()(), ShorterEliminationLengthModified::operator()(), ShorterEliminationLength::operator()(), HasTRepOrExtendedProductCriterion::operator()(), ChainVariableCriterion::operator()(), ChainCriterion::operator()(), PairManager::replacePair(), and treatNormalPairs().
PolyEntryVector GroebnerStrategy::generators |
Referenced by addGenerator(), addVariablePairs(), allGenerators(), PairManager::cleanTopByChainCriterion(), llReduceAll(), minimalize(), minimalizeAndTailReduce(), nextSpoly(), PairManager::nextSpoly(), polybori::groebner::nf3_db(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::IsEcart0Predicate::operator()(), LessCombinedManySizesInStrat::operator()(), LessUsedTailVariablesThenLessWeightedLengthInStrat::operator()(), LessEcartThenLessWeightedLengthInStrat::operator()(), LessWeightedLengthInStratModified::operator()(), LessWeightedLengthInStrat::operator()(), ShorterEliminationLengthModified::operator()(), ShorterEliminationLength::operator()(), HasTRepOrExtendedProductCriterion::operator()(), ChainVariableCriterion::operator()(), propagate_step(), polybori::groebner::SlimgbReduction< variant >::reduce(), PairManager::replacePair(), treatNormalPairs(), treatVariablePairs(), and variableHasValue().
MonomialSet GroebnerStrategy::leadingTerms |
MonomialSet GroebnerStrategy::leadingTerms00 |
Referenced by addGenerator().
MonomialSet GroebnerStrategy::leadingTerms11 |
Referenced by addGenerator().
MonomialSet GroebnerStrategy::llReductor |
Referenced by addGenerator(), GroebnerStrategy(), llReduceAll(), and polybori::groebner::red_tail_generic().
Referenced by addGenerator(), minimalize(), LessCombinedManySizesInStrat::operator()(), LessUsedTailVariablesThenLessWeightedLengthInStrat::operator()(), LessEcartThenLessWeightedLengthInStrat::operator()(), LessWeightedLengthInStratModified::operator()(), LessWeightedLengthInStrat::operator()(), and HasTRepOrExtendedProductCriterion::operator()().
MonomialSet GroebnerStrategy::minimalLeadingTerms |
MonomialSet GroebnerStrategy::monomials |
Referenced by addGenerator(), GroebnerStrategy(), llReduceAll(), propagate_step(), and polybori::groebner::red_tail_generic().
MonomialSet GroebnerStrategy::monomials_plus_one |
Referenced by treat_m_p_1_case().
Referenced by GroebnerStrategy().
Referenced by addGeneratorTrySplit(), full_implication_gb(), and GroebnerStrategy().
Referenced by addAsYouWish(), and GroebnerStrategy().
Referenced by GroebnerStrategy().
Referenced by GroebnerStrategy(), and PairManager::introducePair().
Referenced by GroebnerStrategy().
Referenced by GroebnerStrategy().
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().
Referenced by addGenerator(), addGeneratorDelayed(), addVariablePairs(), allGenerators(), PairManager::cleanTopByChainCriterion(), GroebnerStrategy(), nextSpoly(), HasTRepOrExtendedProductCriterion::operator()(), ChainVariableCriterion::operator()(), ChainCriterion::operator()(), symmGB_F2(), and treatNormalPairs().
Referenced by PairManager::nextSpoly().
Referenced by GroebnerStrategy().
idx_type GroebnerStrategy::reducibleUntil |
Referenced by addGenerator(), GroebnerStrategy(), and polybori::groebner::LexHelper::knowRestIsIrreducible().
unsigned int GroebnerStrategy::reductionSteps |
Referenced by GroebnerStrategy().
Referenced by PairManager::cleanTopByChainCriterion(), and GroebnerStrategy().