GroebnerStrategy Class Reference

#include <groebner_alg.h>

List of all members.

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< 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 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)

Constructor & Destructor Documentation

GroebnerStrategy::GroebnerStrategy ( const GroebnerStrategy orig  ) 
GroebnerStrategy::GroebnerStrategy (  )  [inline]

Member Function Documentation

std::vector< Polynomial > GroebnerStrategy::add4ImplDelayed ( const Polynomial &  p,
const Exponent &  lm_exp,
const Exponent &  used_variables,
int  s,
bool  include_orig 
) [protected]
void GroebnerStrategy::addAsYouWish ( const Polynomial &  p  ) 
int GroebnerStrategy::addGenerator ( const BoolePolynomial p,
bool  is_impl = false,
std::vector< int > *  impl_v = NULL 
)
void GroebnerStrategy::addGeneratorDelayed ( const BoolePolynomial p  ) 
void GroebnerStrategy::addGeneratorTrySplit ( const Polynomial &  p,
bool  is_minimal 
)
std::vector< Polynomial > GroebnerStrategy::addHigherImplDelayedUsing4 ( int  s,
const LiteralFactorization &  literal_factors,
bool  include_orig 
) [protected]
void GroebnerStrategy::addNonTrivialImplicationsDelayed ( const PolyEntry &  p  ) 

References addGeneratorDelayed(), and log().

Referenced by propagate_step().

void GroebnerStrategy::addVariablePairs ( int  s  )  [protected]
std::vector< Polynomial > GroebnerStrategy::allGenerators (  ) 
bool GroebnerStrategy::canRewrite ( const Polynomial &  p  )  const [inline]
bool GroebnerStrategy::containsOne (  )  const [inline]

References leadingTerms.

std::vector<Polynomial> GroebnerStrategy::faugereStepDense ( const std::vector< Polynomial > &   ) 
void GroebnerStrategy::llReduceAll (  ) 
void GroebnerStrategy::log ( const char *  c  )  [inline]
std::vector< Polynomial > GroebnerStrategy::minimalize (  ) 
std::vector< Polynomial > GroebnerStrategy::minimalizeAndTailReduce (  ) 
Polynomial GroebnerStrategy::nextSpoly (  )  [inline]
Polynomial GroebnerStrategy::nf ( Polynomial  p  )  const
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 
)

Todo:
: should take the one with smallest lm

References addNonTrivialImplicationsDelayed(), generators, monomials, and should_propagate().

Referenced by propagate().

Polynomial GroebnerStrategy::redTail ( const Polynomial &  p  ) 
int GroebnerStrategy::suggestPluginVariable (  ) 
void GroebnerStrategy::symmGB_F2 (  ) 
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]
std::vector< Polynomial > GroebnerStrategy::treatVariablePairs ( int  s  )  [protected]
bool GroebnerStrategy::variableHasValue ( idx_type  i  ) 

References generators.


Member Data Documentation

Referenced by GroebnerStrategy().

Referenced by GroebnerStrategy().

Referenced by addGenerator(), and GroebnerStrategy().

Referenced by GroebnerStrategy(), and log().

Referenced by addGenerator().

Referenced by addGenerator().

Referenced by treat_m_p_1_case().

Referenced by GroebnerStrategy().

Referenced by addAsYouWish(), and GroebnerStrategy().

Referenced by GroebnerStrategy().

Referenced by GroebnerStrategy().

Referenced by GroebnerStrategy().

Referenced by addAsYouWish(), and GroebnerStrategy().

Referenced by GroebnerStrategy().

Referenced by PairManager::nextSpoly().

Referenced by GroebnerStrategy().

Referenced by GroebnerStrategy().


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

Generated on 23 Dec 2009 for PolyBoRi by  doxygen 1.6.1