PolyBoRi
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
polybori::groebner::GroebnerStrategy Class Reference

#include <groebner_alg.h>

Public Member Functions

bool containsOne () const
 GroebnerStrategy (const GroebnerStrategy &orig)
std::vector< PolynomialminimalizeAndTailReduce ()
std::vector< Polynomialminimalize ()
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< PolynomialnoroStep (const std::vector< Polynomial > &)
std::vector< PolynomialfaugereStepDense (const std::vector< Polynomial > &)
Polynomial nf (Polynomial p) const
void symmGB_F2 ()
int suggestPluginVariable ()
std::vector< PolynomialallGenerators ()

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< CacheManagercache
BoolePolyRing r
bool enabledLog
unsigned int reductionSteps
int normalForms
int currentDegree
int chainCriterions
int variableChainCriterions
int easyProductCriterions
int extendedProductCriterions
int averageLength
bool optRedTail
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< PolynomialtreatVariablePairs (int s)
void treatNormalPairs (int s, MonomialSet intersecting_terms, MonomialSet other_terms, MonomialSet ext_prod_terms)
void addVariablePairs (int s)
std::vector< Polynomialadd4ImplDelayed (const Polynomial &p, const Exponent &lm_exp, const Exponent &used_variables, int s, bool include_orig)
std::vector< PolynomialaddHigherImplDelayedUsing4 (int s, const LiteralFactorization &literal_factors, bool include_orig)

Constructor & Destructor Documentation

polybori::groebner::GroebnerStrategy::GroebnerStrategy ( const GroebnerStrategy orig)
polybori::groebner::GroebnerStrategy::GroebnerStrategy ( )
inline

Member Function Documentation

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)
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::BooleMonomial::diagram(), polybori::BoolePolynomial::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::groebner::PolyEntry::length, polybori::BoolePolynomial::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(), polybori::CDDInterface< CuddLikeZDD >::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)
void polybori::groebner::GroebnerStrategy::addGeneratorTrySplit ( const Polynomial p,
bool  is_minimal 
)
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::addHigherImplDelayedUsing4 ( int  s,
const LiteralFactorization literal_factors,
bool  include_orig 
)
protected
void polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed ( const PolyEntry p)
void polybori::groebner::GroebnerStrategy::addVariablePairs ( int  s)
protected
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::allGenerators ( )
bool polybori::groebner::GroebnerStrategy::canRewrite ( const Polynomial p) const
inline
bool polybori::groebner::GroebnerStrategy::containsOne ( ) const
inline
std::vector<Polynomial> polybori::groebner::GroebnerStrategy::faugereStepDense ( const std::vector< Polynomial > &  )
void polybori::groebner::GroebnerStrategy::llReduceAll ( )
void polybori::groebner::GroebnerStrategy::log ( const char *  c)
inline
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalize ( )
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::minimalizeAndTailReduce ( )
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)
void polybori::groebner::GroebnerStrategy::propagate_step ( const PolyEntry e,
std::set< int >  others 
)
Polynomial polybori::groebner::GroebnerStrategy::redTail ( const Polynomial p)
int polybori::groebner::GroebnerStrategy::suggestPluginVariable ( )
void polybori::groebner::GroebnerStrategy::symmGB_F2 ( )
void polybori::groebner::GroebnerStrategy::treat_m_p_1_case ( const PolyEntry e)
void polybori::groebner::GroebnerStrategy::treatNormalPairs ( int  s,
MonomialSet  intersecting_terms,
MonomialSet  other_terms,
MonomialSet  ext_prod_terms 
)
protected
std::vector< Polynomial > polybori::groebner::GroebnerStrategy::treatVariablePairs ( int  s)
protected
bool polybori::groebner::GroebnerStrategy::variableHasValue ( idx_type  i)

References generators.

Member Data Documentation

int polybori::groebner::GroebnerStrategy::averageLength

Referenced by GroebnerStrategy().

boost::shared_ptr<CacheManager> polybori::groebner::GroebnerStrategy::cache
int polybori::groebner::GroebnerStrategy::chainCriterions
int polybori::groebner::GroebnerStrategy::currentDegree

Referenced by GroebnerStrategy().

int polybori::groebner::GroebnerStrategy::easyProductCriterions

Referenced by addGenerator(), and GroebnerStrategy().

bool polybori::groebner::GroebnerStrategy::enabledLog

Referenced by GroebnerStrategy().

exp2Index_map_type polybori::groebner::GroebnerStrategy::exp2Index
int polybori::groebner::GroebnerStrategy::extendedProductCriterions
PolyEntryVector polybori::groebner::GroebnerStrategy::generators
MonomialSet polybori::groebner::GroebnerStrategy::leadingTerms
MonomialSet polybori::groebner::GroebnerStrategy::leadingTerms00

Referenced by addGenerator().

MonomialSet polybori::groebner::GroebnerStrategy::leadingTerms11

Referenced by addGenerator().

MonomialSet polybori::groebner::GroebnerStrategy::llReductor
lm2Index_map_type polybori::groebner::GroebnerStrategy::lm2Index
MonomialSet polybori::groebner::GroebnerStrategy::minimalLeadingTerms
MonomialSet polybori::groebner::GroebnerStrategy::monomials
MonomialSet polybori::groebner::GroebnerStrategy::monomials_plus_one
int polybori::groebner::GroebnerStrategy::normalForms

Referenced by GroebnerStrategy().

bool polybori::groebner::GroebnerStrategy::optAllowRecursion
bool polybori::groebner::GroebnerStrategy::optBrutalReductions
bool polybori::groebner::GroebnerStrategy::optDelayNonMinimals

Referenced by addAsYouWish(), and GroebnerStrategy().

bool polybori::groebner::GroebnerStrategy::optExchange
bool polybori::groebner::GroebnerStrategy::optLazy
bool polybori::groebner::GroebnerStrategy::optLinearAlgebraInLastBlock
bool polybori::groebner::GroebnerStrategy::optLL
bool polybori::groebner::GroebnerStrategy::optRedTail
bool polybori::groebner::GroebnerStrategy::optRedTailDegGrowth
bool polybori::groebner::GroebnerStrategy::optRedTailInLastBlock

Referenced by addAsYouWish(), and GroebnerStrategy().

bool polybori::groebner::GroebnerStrategy::optStepBounded
PairManager polybori::groebner::GroebnerStrategy::pairs
BoolePolyRing polybori::groebner::GroebnerStrategy::r
bool polybori::groebner::GroebnerStrategy::reduceByTailReduced

Referenced by GroebnerStrategy().

idx_type polybori::groebner::GroebnerStrategy::reducibleUntil
unsigned int polybori::groebner::GroebnerStrategy::reductionSteps

Referenced by GroebnerStrategy().

int polybori::groebner::GroebnerStrategy::variableChainCriterions

The documentation for this class was generated from the following files: