cudd's
decicion diagram.
More...
#include <BooleMonomial.h>
Public Types | |
typedef BoolePolynomial | poly_type |
Type of Boolean polynomials. | |
typedef poly_type::var_type | var_type |
Type of Boolean variables. | |
typedef poly_type::constant_type | constant_type |
Type of Boolean constants. | |
typedef poly_type::set_type | set_type |
Type of sets of Boolean variables. | |
typedef poly_type::exp_type | exp_type |
Type of exponent vector. | |
typedef poly_type::ring_type | ring_type |
Type for Boolean polynomial rings (without ordering). | |
typedef poly_type::first_iterator | const_iterator |
Access to iterator over indices. | |
typedef CVariableIter < const_iterator, var_type > | variable_iterator |
Access to iterator over variables. | |
typedef std::map< self, idx_type, symmetric_composition < std::less < poly_type::navigator > , navigates< poly_type > > > | idx_map_type |
Type for index maps. | |
typedef dd_type::easy_equality_property | easy_equality_property |
The property whether the equality check is easy is inherited from dd_type. | |
Adopt global type definitions | |
typedef poly_type::dd_type | dd_type |
typedef poly_type::integer_type | integer_type |
Type for integer numbers. | |
typedef poly_type::ostream_type | ostream_type |
Type for out-stream. | |
Public Member Functions | |
BooleMonomial (const self &rhs) | |
Copy constructor. | |
BooleMonomial (const var_type &rhs) | |
Construct from Boolean variable. | |
BooleMonomial (const exp_type &rhs, const ring_type &ring) | |
Construct from exponent vector. | |
BooleMonomial (const ring_type &ring) | |
Construct from given ring. | |
~BooleMonomial () | |
Destructor. | |
operator const BoolePolynomial & () const | |
Casting operator. | |
exp_type | exp () const |
Get exponent vector. | |
const_iterator | begin () const |
Start iteration over indices. | |
const_iterator | end () const |
Finish iteration over indices. | |
variable_iterator | variableBegin () const |
Start iteration over variables. | |
variable_iterator | variableEnd () const |
Finish iteration over variables. | |
deg_type | deg () const |
Degree of the monomial. | |
size_type | size () const |
Size of the exponents. | |
set_type | divisors () const |
Divisors of the monomial. | |
set_type | multiples (const self &) const |
multiples of the monomial wrt. given monomial | |
hash_type | stableHash () const |
Hash value of the monomial. | |
hash_type | hash () const |
Get unique hash value (valid only per runtime). | |
self | change (idx_type) const |
Substitute variable with index idx by its complement. | |
bool_type | reducibleBy (const self &rhs) const |
Test for reducibility. | |
bool_type | reducibleBy (const var_type &rhs) const |
comp_type | compare (const self &) const |
Compare with rhs monomial and return comparision code. | |
deg_type | LCMDeg (const self &) const |
Degree of the least common multiple. | |
self & | LCMAssign (const self &) |
Compute the least common multiple and assign. | |
self | LCM (const self &) const |
Compute the least common multiple. | |
self & | GCDAssign (const self &) |
Compute the greatest common divisor and assign. | |
self | GCD (const self &) const |
Compute the greatest common divisor. | |
const dd_type & | diagram () const |
Read-only access to internal decision diagramm structure. | |
set_type | set () const |
Get corresponding subset of of the powerset over all variables. | |
self & | popFirst () |
Removes the first variables from monomial. | |
var_type | firstVariable () const |
Get first variable in monomial. | |
idx_type | firstIndex () const |
const ring_type & | ring () const |
Access ring, where this belongs to. | |
Arithmetical operations | |
self & | operator*= (const self &) |
self & | operator/= (const self &) |
self & | operator*= (const var_type &) |
self & | operator/= (const var_type &) |
Logical operations | |
bool_type | operator== (const self &rhs) const |
bool_type | operator!= (const self &rhs) const |
bool_type | operator== (constant_type rhs) const |
bool_type | operator!= (constant_type rhs) const |
bool_type | isOne () const |
bool_type | isConstant () const |
Protected Member Functions | |
dd_type & | internalDiagram () |
Access to internal decision diagramm structure. | |
BooleMonomial (const set_type &rhs) | |
Construct from decision diagram. | |
Friends | |
class | CDDOperations |
class | COrderingBase |
class | CTermGeneratorBase |
class | CTermGeneratorBase__ |
cudd's
decicion diagram.
BooleMonomial
is actually a specialization of BoolePolynomial
with a special constructor. Type of Boolean polynomials.
Type of Boolean variables.
Type of Boolean constants.
Type of sets of Boolean variables.
Type of exponent vector.
Type for Boolean polynomial rings (without ordering).
Access to iterator over indices.
Access to iterator over variables.
typedef std::map<self, idx_type, symmetric_composition< std::less<poly_type::navigator>, navigates<poly_type> > > polybori::BooleMonomial::idx_map_type |
Type for index maps.
The property whether the equality check is easy is inherited from dd_type.
polybori::BooleMonomial::BooleMonomial | ( | const self & | rhs | ) | [inline] |
Copy constructor.
polybori::BooleMonomial::BooleMonomial | ( | const var_type & | rhs | ) |
Construct from exponent vector.
polybori::BooleMonomial::BooleMonomial | ( | const ring_type & | ring | ) | [inline] |
Construct from given ring.
polybori::BooleMonomial::~BooleMonomial | ( | ) | [inline] |
Destructor.
polybori::BooleMonomial::BooleMonomial | ( | const set_type & | rhs | ) | [inline, protected] |
polybori::BooleMonomial::operator const BoolePolynomial & | ( | ) | const [inline] |
Casting operator.
BooleMonomial::exp_type polybori::BooleMonomial::exp | ( | ) | const |
Get exponent vector.
References polybori::BooleExponent::get(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::FGLMStrategy::main(), polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::random_set_using_generator(), polybori::groebner::ReductionStrategy::setupSetsForElement(), polybori::groebner::FGLMStrategy::setupStandardMonomialsFromTables(), polybori::groebner::PolyEntryIndices::update(), polybori::BooleSet::usedVariablesExp(), and polybori::groebner::FGLMStrategy::writeRowToVariableDivisors().
const_iterator polybori::BooleMonomial::begin | ( | ) | const [inline] |
Start iteration over indices.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), polybori::BooleExponent::BooleExponent(), polybori::BooleSet::containsDivisorsOfDecDeg(), GCDAssign(), polybori::BooleExponent::get(), polybori::BooleSet::hasTermOfVariables(), polybori::BoolePolynomial::inSingleBlock(), LCMDeg(), polybori::groebner::FGLMStrategy::main(), polybori::BooleExponent::operator=(), polybori::groebner::parallel_reduce(), polybori::groebner::reduce_by_monom(), polybori::groebner::reduce_complete(), polybori::BooleExponent::reducibleBy(), polybori::groebner::FGLMStrategy::setupMultiplicationTables(), polybori::groebner::sum_size(), and polybori::groebner::FGLMStrategy::writeRowToVariableDivisors().
const_iterator polybori::BooleMonomial::end | ( | ) | const [inline] |
Finish iteration over indices.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), polybori::BooleExponent::BooleExponent(), polybori::BooleSet::containsDivisorsOfDecDeg(), GCDAssign(), polybori::BooleExponent::get(), polybori::BooleSet::hasTermOfVariables(), polybori::BoolePolynomial::inSingleBlock(), LCMDeg(), polybori::BooleExponent::operator=(), polybori::groebner::reduce_by_monom(), polybori::BooleExponent::reducibleBy(), polybori::groebner::FGLMStrategy::setupMultiplicationTables(), polybori::groebner::sum_size(), and polybori::groebner::FGLMStrategy::writeRowToVariableDivisors().
variable_iterator polybori::BooleMonomial::variableBegin | ( | ) | const [inline] |
Start iteration over variables.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), and polybori::groebner::FGLMStrategy::setupMultiplicationTables().
variable_iterator polybori::BooleMonomial::variableEnd | ( | ) | const [inline] |
deg_type polybori::BooleMonomial::deg | ( | ) | const [inline] |
Degree of the monomial.
Referenced by polybori::groebner::GroebnerStrategy::addVariablePairs(), LCMDeg(), polybori::groebner::FGLMStrategy::main(), polybori::groebner::LargerDegreeComparer::operator()(), polybori::groebner::CountCriterion::operator()(), polybori::groebner::parallel_reduce(), polybori::groebner::reduce_by_monom(), polybori::groebner::FGLMStrategy::setupMultiplicationTables(), polybori::groebner::sum_size(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
size_type polybori::BooleMonomial::size | ( | ) | const [inline] |
Size of the exponents.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), polybori::BooleExponent::get(), polybori::groebner::FGLMStrategy::main(), polybori::BoolePolynomial::nUsedVariables(), and polybori::BooleExponent::operator=().
set_type polybori::BooleMonomial::divisors | ( | ) | const [inline] |
Divisors of the monomial.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), polybori::groebner::LexHelper::irreducible_lead(), polybori::groebner::CountCriterion::operator()(), polybori::groebner::ReductionStrategy::select_short(), polybori::groebner::GroebnerStrategy::treatVariablePairs(), and polybori::groebner::variety_lex_leading_terms().
BooleMonomial::set_type polybori::BooleMonomial::multiples | ( | const self & | monom | ) | const |
multiples of the monomial wrt. given monomial
References diagram(), polybori::BoolePolynomial::diagram(), and PBORI_TRACE_FUNC.
Referenced by polybori::BoolePolynomial::operator%=().
hash_type polybori::BooleMonomial::stableHash | ( | ) | const [inline] |
hash_type polybori::BooleMonomial::hash | ( | ) | const [inline] |
Get unique hash value (valid only per runtime).
Referenced by polybori::groebner::MonomialHasher::operator()().
BooleMonomial polybori::BooleMonomial::change | ( | idx_type | idx | ) | const |
Substitute variable with index idx by its complement.
References diagram(), and PBORI_TRACE_FUNC.
Referenced by GCDAssign(), and polybori::BoolePolynomial::operator%=().
BooleMonomial & polybori::BooleMonomial::operator*= | ( | const self & | rhs | ) |
References polybori::BoolePolynomial::internalDiagram(), and PBORI_TRACE_FUNC.
BooleMonomial & polybori::BooleMonomial::operator/= | ( | const self & | rhs | ) |
BooleMonomial & polybori::BooleMonomial::operator*= | ( | const var_type & | rhs | ) |
BooleMonomial & polybori::BooleMonomial::operator/= | ( | const var_type & | rhs | ) |
bool_type polybori::BooleMonomial::operator== | ( | constant_type | rhs | ) | const [inline] |
bool_type polybori::BooleMonomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
bool_type polybori::BooleMonomial::isOne | ( | ) | const [inline] |
References polybori::BooleConstant::isOne().
bool_type polybori::BooleMonomial::isConstant | ( | ) | const [inline] |
Test for reducibility.
Referenced by polybori::groebner::fixed_path_divisors(), polybori::groebner::FGLMStrategy::main(), polybori::groebner::minimal_elements_internal(), and operator*=().
BooleMonomial::bool_type polybori::BooleMonomial::reducibleBy | ( | const var_type & | rhs | ) | const |
References polybori::BoolePolynomial::firstReducibleBy(), and PBORI_TRACE_FUNC.
BooleMonomial::comp_type polybori::BooleMonomial::compare | ( | const self & | rhs | ) | const |
Compare with rhs monomial and return comparision code.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::operator<(), polybori::operator<=(), polybori::operator>(), and polybori::operator>=().
BooleMonomial::deg_type polybori::BooleMonomial::LCMDeg | ( | const self & | rhs | ) | const |
Degree of the least common multiple.
References begin(), deg(), end(), polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
BooleMonomial & polybori::BooleMonomial::LCMAssign | ( | const self & | rhs | ) |
BooleMonomial polybori::BooleMonomial::LCM | ( | const self & | rhs | ) | const |
Compute the least common multiple.
References PBORI_TRACE_FUNC.
Referenced by polybori::LCM(), and polybori::groebner::CountCriterion::operator()().
BooleMonomial & polybori::BooleMonomial::GCDAssign | ( | const self & | rhs | ) |
Compute the greatest common divisor and assign.
References polybori::BoolePolynomial::begin(), begin(), change(), polybori::BoolePolynomial::end(), end(), polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
BooleMonomial polybori::BooleMonomial::GCD | ( | const self & | rhs | ) | const |
Compute the greatest common divisor.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::extended_product_criterion(), polybori::GCD(), polybori::groebner::CountCriterion::operator()(), polybori::groebner::reduce_by_binom(), and polybori::groebner::reduce_complete().
const dd_type& polybori::BooleMonomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
Referenced by polybori::groebner::add_up_lex_sorted_exponents(), polybori::groebner::FGLMStrategy::analyzeGB(), change(), polybori::BooleSet::divisorsOf(), polybori::BooleSet::existAbstract(), polybori::groebner::fixed_path_divisors(), polybori::groebner::FGLMStrategy::main(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), multiples(), polybori::BooleSet::multiplesOf(), polybori::BoolePolynomial::operator*=(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), and polybori::groebner::reduce_by_monom().
set_type polybori::BooleMonomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
Referenced by polybori::BooleSet::add(), polybori::BooleSet::divide(), polybori::groebner::FGLMStrategy::main(), polybori::groebner::minimal_elements_multiplied_monoms(), polybori::BooleSet::owns(), polybori::groebner::TermsFacade< polybori::groebner::LeadingTerms11 >::update(), and polybori::groebner::MinimalLeadingTerms::update().
self& polybori::BooleMonomial::popFirst | ( | ) | [inline] |
BooleMonomial::var_type polybori::BooleMonomial::firstVariable | ( | ) | const |
Get first variable in monomial.
References firstIndex(), polybori::BoolePolynomial::isConstant(), polybori::CErrorEnums::out_of_bounds, PBORI_TRACE_FUNC, PBORI_UNLIKELY, and ring().
idx_type polybori::BooleMonomial::firstIndex | ( | ) | const [inline] |
Get first index in monomial
Referenced by firstVariable(), and polybori::groebner::LLReductor::isCompatible().
const ring_type& polybori::BooleMonomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
Referenced by compare(), firstVariable(), polybori::groebner::fix_point_iterate(), polybori::BooleExponent::multiples(), polybori::groebner::random_set_using_generator(), polybori::groebner::FGLMStrategy::setupMultiplicationTables(), and polybori::groebner::MinimalLeadingTerms::update().
dd_type& polybori::BooleMonomial::internalDiagram | ( | ) | [inline, protected] |
friend class CDDOperations [friend] |
friend class COrderingBase [friend] |
friend class CTermGeneratorBase [friend] |
friend class CTermGeneratorBase__ [friend] |