#include <BoolePolynomial.h>
Public Types | |
typedef BoolePolynomial | self |
Generic access to current type. | |
typedef dd_type::first_iterator | first_iterator |
Iterator type for iterating over indices of the leading term. | |
typedef dd_type::navigator | navigator |
Iterator-like type for navigating through diagram structure. | |
typedef BooleMonomial | monom_type |
typedef BooleVariable | var_type |
Fix type for treatment of monomials. | |
typedef BooleExponent | exp_type |
Fix type for treatment of exponent vectors. | |
typedef BooleConstant | constant_type |
Type for wrapping integer and bool values. | |
typedef BoolePolyRing | ring_type |
Type for Boolean polynomial rings (without ordering). | |
typedef CTypes::comp_type | comp_type |
Type for result of polynomial comparisons. | |
typedef binary_composition < std::plus< size_type > , project_ith < 1 >, integral_constant < size_type, 1 > > | increment_type |
Incrementation functional type. | |
typedef binary_composition < std::minus< size_type > , project_ith < 1 >, integral_constant < size_type, 1 > > | decrement_type |
Decrementation functional type. | |
typedef COrderedIter < navigator, exp_type > | ordered_exp_iterator |
Iterator type for iterating over all exponents in ordering order. | |
typedef COrderedIter < navigator, monom_type > | ordered_iterator |
Iterator type for iterating over all monomials in ordering order. | |
typedef lex_iterator | const_iterator |
Iterator type for iterating over all monomials. | |
typedef CExpIter< navigator, exp_type > | exp_iterator |
Iterator type for iterating all exponent vectors. | |
typedef CGenericIter< LexOrder, navigator, deg_type > | deg_iterator |
Iterator type for iterating all monomials (dereferencing to degree). | |
typedef std::vector< monom_type > | termlist_type |
Type for lists of terms. | |
typedef dd_type::easy_equality_property | easy_equality_property |
The property whether the equality check is easy is inherited from dd_type. | |
typedef BooleSet | set_type |
Type for sets of Boolean variables. | |
typedef std::map< self, idx_type, symmetric_composition < std::less< navigator > , navigates< self > > > | idx_map_type |
Type for index maps. | |
typedef std::map< self, std::vector< self > , symmetric_composition < std::less< navigator > , navigates< self > > > | poly_vec_map_type |
Adopt global type definitions | |
typedef BooleSet | dd_type |
typedef CTypes::ostream_type | ostream_type |
Type for out-stream. | |
Generic iterators for various orderings | |
typedef CGenericIter< LexOrder, navigator, monom_type > | lex_iterator |
typedef CGenericIter < DegLexOrder, navigator, monom_type > | dlex_iterator |
typedef CGenericIter < DegRevLexAscOrder, navigator, monom_type > | dp_asc_iterator |
typedef CGenericIter < BlockDegLexOrder, navigator, monom_type > | block_dlex_iterator |
typedef CGenericIter < BlockDegRevLexAscOrder, navigator, monom_type > | block_dp_asc_iterator |
typedef CGenericIter< LexOrder, navigator, exp_type > | lex_exp_iterator |
typedef CGenericIter < DegLexOrder, navigator, exp_type > | dlex_exp_iterator |
typedef CGenericIter < DegRevLexAscOrder, navigator, exp_type > | dp_asc_exp_iterator |
typedef CGenericIter < BlockDegLexOrder, navigator, exp_type > | block_dlex_exp_iterator |
typedef CGenericIter < BlockDegRevLexAscOrder, navigator, exp_type > | block_dp_asc_exp_iterator |
Public Member Functions | |
BoolePolynomial (const ring_type &ring) | |
Default constructor. | |
BoolePolynomial (constant_type isOne, const ring_type &ring) | |
Construct polynomial in given ring from a constant value 0 or 1. | |
BoolePolynomial (const dd_type &rhs) | |
Construct polynomial from decision diagram. | |
BoolePolynomial (const exp_type &, const ring_type &) | |
Construct polynomial from a subset of the powerset over all variables. | |
BoolePolynomial (const navigator &rhs, const ring_type &ring) | |
Construct polynomial from navigator. | |
~BoolePolynomial () | |
Destructor. | |
self & | operator= (constant_type rhs) |
bool_type | isZero () const |
Check whether polynomial is constant zero. | |
bool_type | isOne () const |
Check whether polynomial is constant one. | |
bool_type | isConstant () const |
Check whether polynomial is zero or one. | |
bool_type | hasConstantPart () const |
Check whether polynomial has term one. | |
bool_type | firstReducibleBy (const self &) const |
Tests whether polynomial can be reduced by right-hand side. | |
monom_type | lead () const |
Get leading term. | |
monom_type | lexLead () const |
Get leading term w.r.t. lexicographical order. | |
monom_type | boundedLead (deg_type bound) const |
Get leading term (using upper bound of the polynomial degree). | |
exp_type | leadExp () const |
Get leading term. | |
exp_type | boundedLeadExp (deg_type bound) const |
set_type | leadDivisors () const |
Get all divisors of the leading term. | |
hash_type | hash () const |
Get unique hash value (may change from run to run). | |
hash_type | stableHash () const |
Get hash value, which is reproducible. | |
hash_type | leadStableHash () const |
Hash value of the leading term. | |
deg_type | deg () const |
Maximal degree of the polynomial. | |
deg_type | leadDeg () const |
Degree of the leading term. | |
deg_type | lexLeadDeg () const |
Degree of the leading term w.r.t. lexicographical ordering. | |
deg_type | totalDeg () const |
Total maximal degree of the polynomial. | |
deg_type | leadTotalDeg () const |
Total degree of the leading term. | |
self | gradedPart (deg_type deg) const |
Get part of given degree. | |
size_type | nNodes () const |
Number of nodes in the decision diagram. | |
size_type | nUsedVariables () const |
Number of variables of the polynomial. | |
monom_type | usedVariables () const |
Set of variables of the polynomial. | |
exp_type | usedVariablesExp () const |
Exponent vector of all of variables of the polynomial. | |
size_type | length () const |
Returns number of terms. | |
ostream_type & | print (ostream_type &) const |
Print current polynomial to output stream. | |
const_iterator | begin () const |
Start of iteration over monomials. | |
const_iterator | end () const |
Finish of iteration over monomials. | |
exp_iterator | expBegin () const |
Start of iteration over exponent vectors. | |
exp_iterator | expEnd () const |
Finish of iteration over exponent vectors. | |
first_iterator | firstBegin () const |
Start of first term. | |
first_iterator | firstEnd () const |
Finish of first term. | |
monom_type | firstTerm () const |
Get of first lexicographic term. | |
deg_iterator | degBegin () const |
Start of degrees. | |
deg_iterator | degEnd () const |
Finish of degrees. | |
ordered_iterator | orderedBegin () const |
Start of ordering respecting iterator. | |
ordered_iterator | orderedEnd () const |
Finish of ordering respecting iterator. | |
ordered_exp_iterator | orderedExpBegin () const |
Start of ordering respecting exponent iterator. | |
ordered_exp_iterator | orderedExpEnd () const |
Finish of ordering respecting exponent iterator. | |
navigator | navigation () const |
Navigate through structure. | |
navigator | endOfNavigation () const |
End of navigation marker. | |
dd_type | copyDiagram () |
gives a copy of the diagram | |
operator set_type () const | |
Casting operator to Boolean set. | |
size_type | eliminationLength () const |
size_type | eliminationLengthWithDegBound (deg_type garantied_deg_bound) const |
void | fetchTerms (termlist_type &) const |
Get list of all terms. | |
termlist_type | terms () const |
Return of all terms. | |
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. | |
bool_type | isSingleton () const |
Test, whether we have one term only. | |
bool_type | isSingletonOrPair () const |
Test, whether we have one or two terms only. | |
bool_type | isPair () const |
Test, whether we have two terms only. | |
const ring_type & | ring () const |
Access ring, where this belongs to. | |
comp_type | compare (const self &) const |
Compare with right-hand side and return comparision code. | |
bool_type | inSingleBlock () const |
Check whether all variables are in one variable block. | |
Arithmetical operations | |
const self & | operator- () const |
self & | operator+= (const self &) |
self & | operator+= (constant_type rhs) |
template<class RHSType> | |
self & | operator-= (const RHSType &rhs) |
self & | operator*= (const monom_type &) |
self & | operator*= (const exp_type &) |
self & | operator*= (const self &) |
self & | operator*= (constant_type rhs) |
self & | operator/= (const var_type &) |
self & | operator/= (const monom_type &) |
self & | operator/= (const exp_type &) |
self & | operator/= (const self &rhs) |
self & | operator/= (constant_type rhs) |
self & | operator%= (const var_type &) |
self & | operator%= (const monom_type &) |
self & | operator%= (const self &rhs) |
self & | operator%= (constant_type rhs) |
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 |
Compile-time access to generic iterators | |
lex_iterator | genericBegin (lex_tag) const |
lex_iterator | genericEnd (lex_tag) const |
dlex_iterator | genericBegin (dlex_tag) const |
dlex_iterator | genericEnd (dlex_tag) const |
dp_asc_iterator | genericBegin (dp_asc_tag) const |
dp_asc_iterator | genericEnd (dp_asc_tag) const |
block_dlex_iterator | genericBegin (block_dlex_tag) const |
block_dlex_iterator | genericEnd (block_dlex_tag) const |
block_dp_asc_iterator | genericBegin (block_dp_asc_tag) const |
block_dp_asc_iterator | genericEnd (block_dp_asc_tag) const |
lex_exp_iterator | genericExpBegin (lex_tag) const |
lex_exp_iterator | genericExpEnd (lex_tag) const |
dlex_exp_iterator | genericExpBegin (dlex_tag) const |
dlex_exp_iterator | genericExpEnd (dlex_tag) const |
dp_asc_exp_iterator | genericExpBegin (dp_asc_tag) const |
dp_asc_exp_iterator | genericExpEnd (dp_asc_tag) const |
block_dlex_exp_iterator | genericExpBegin (block_dlex_tag) const |
block_dlex_exp_iterator | genericExpEnd (block_dlex_tag) const |
block_dp_asc_exp_iterator | genericExpBegin (block_dp_asc_tag) const |
block_dp_asc_exp_iterator | genericExpEnd (block_dp_asc_tag) const |
Protected Member Functions | |
dd_type & | internalDiagram () |
Access to internal decision diagramm structure. | |
self | leadFirst () const |
Generate a polynomial, whose first term is the leading term. | |
set_type | firstDivisors () const |
Get all divisors of the first term. | |
Friends | |
class | BooleMonomial |
Let BooleMonomial access protected and private members. |
Generic access to current type.
Iterator type for iterating over indices of the leading term.
Iterator-like type for navigating through diagram structure.
Fix type for treatment of monomials.
Fix type for treatment of exponent vectors.
Type for wrapping integer and bool values.
Type for Boolean polynomial rings (without ordering).
typedef binary_composition< std::plus<size_type>, project_ith<1>, integral_constant<size_type, 1> > polybori::BoolePolynomial::increment_type |
Incrementation functional type.
typedef binary_composition< std::minus<size_type>, project_ith<1>, integral_constant<size_type, 1> > polybori::BoolePolynomial::decrement_type |
Decrementation functional type.
Iterator type for iterating over all exponents in ordering order.
Iterator type for iterating over all monomials in ordering order.
typedef CGenericIter<DegRevLexAscOrder, navigator, monom_type> polybori::BoolePolynomial::dp_asc_iterator |
typedef CGenericIter<BlockDegLexOrder, navigator, monom_type> polybori::BoolePolynomial::block_dlex_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, monom_type> polybori::BoolePolynomial::block_dp_asc_iterator |
typedef CGenericIter<DegRevLexAscOrder, navigator, exp_type> polybori::BoolePolynomial::dp_asc_exp_iterator |
typedef CGenericIter<BlockDegLexOrder, navigator, exp_type> polybori::BoolePolynomial::block_dlex_exp_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, exp_type> polybori::BoolePolynomial::block_dp_asc_exp_iterator |
Iterator type for iterating over all monomials.
Iterator type for iterating all exponent vectors.
Iterator type for iterating all monomials (dereferencing to degree).
typedef std::vector<monom_type> polybori::BoolePolynomial::termlist_type |
Type for lists of terms.
The property whether the equality check is easy is inherited from dd_type.
Type for sets of Boolean variables.
typedef std::map<self, idx_type, symmetric_composition< std::less<navigator>, navigates<self> > > polybori::BoolePolynomial::idx_map_type |
Type for index maps.
typedef std::map<self, std::vector<self>, symmetric_composition< std::less<navigator>, navigates<self> > > polybori::BoolePolynomial::poly_vec_map_type |
polybori::BoolePolynomial::BoolePolynomial | ( | const ring_type & | ring | ) | [inline] |
Default constructor.
Construct polynomial from a constant value 0 or 1 Construct zero polynomial
polybori::BoolePolynomial::BoolePolynomial | ( | constant_type | isOne, | |
const ring_type & | ring | |||
) | [inline] |
Construct polynomial in given ring
from a constant value 0 or 1.
polybori::BoolePolynomial::BoolePolynomial | ( | const dd_type & | rhs | ) | [inline] |
Construct polynomial from decision diagram.
Construct polynomial from a subset of the powerset over all variables.
Construct polynomial from exponent vector
References polybori::BooleSet::change(), PBORI_TRACE_FUNC, polybori::BooleExponent::rbegin(), and polybori::BooleExponent::rend().
polybori::BoolePolynomial::BoolePolynomial | ( | const navigator & | rhs, | |
const ring_type & | ring | |||
) | [inline] |
Construct polynomial from navigator.
References polybori::CCuddNavigator::isValid(), and PBORI_ASSERT.
polybori::BoolePolynomial::~BoolePolynomial | ( | ) | [inline] |
Destructor.
self& polybori::BoolePolynomial::operator= | ( | constant_type | rhs | ) | [inline] |
const self& polybori::BoolePolynomial::operator- | ( | ) | const [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator+= | ( | const self & | rhs | ) |
References PBORI_TRACE_FUNC.
self& polybori::BoolePolynomial::operator+= | ( | constant_type | rhs | ) | [inline] |
self& polybori::BoolePolynomial::operator-= | ( | const RHSType & | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const monom_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const exp_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const self & | rhs | ) |
References polybori::dd_multiply_recursively(), navigation(), PBORI_TRACE_FUNC, and ring().
self& polybori::BoolePolynomial::operator*= | ( | constant_type | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const var_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const monom_type & | rhs | ) |
References polybori::BooleSet::divide(), and PBORI_TRACE_FUNC.
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const exp_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const self & | rhs | ) |
References operator/=(), PBORI_TRACE_FUNC, and PBORI_UNLIKELY.
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | constant_type | rhs | ) |
References PBORI_TRACE_FUNC, and PBORI_UNLIKELY.
BoolePolynomial & polybori::BoolePolynomial::operator%= | ( | const var_type & | rhs | ) |
References PBORI_TRACE_FUNC.
BoolePolynomial & polybori::BoolePolynomial::operator%= | ( | const monom_type & | rhs | ) |
self& polybori::BoolePolynomial::operator%= | ( | constant_type | rhs | ) | [inline] |
bool_type polybori::BoolePolynomial::operator== | ( | constant_type | rhs | ) | const [inline] |
bool_type polybori::BoolePolynomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
bool_type polybori::BoolePolynomial::isZero | ( | ) | const [inline] |
Check whether polynomial is constant zero.
Referenced by polybori::groebner::SlimgbReduction< variant >::addPolynomial(), polybori::groebner::cancel_monomial_in_tail(), polybori::groebner::cheap_reductions(), compare(), polybori::groebner::NextSpoly::compute(), polybori::groebner::do_is_rewriteable(), eliminationLength(), firstReducibleBy(), polybori::groebner::fix_point_iterate(), polybori::BooleMonomial::GCDAssign(), polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::LexBucket::increaseTailStart(), polybori::groebner::LexBucket::isZero(), polybori::BooleMonomial::LCMDeg(), leadDeg(), polybori::groebner::LexBucket::leadExp(), polybori::groebner::LexBucket::LexBucket(), lexLeadDeg(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::GroebnerStrategy::noroStep(), polybori::groebner::LexBucket::operator+=(), polybori::BooleMonomial::operator/=(), print(), polybori::groebner::red_tail(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::red_tail_short(), polybori::groebner::SlimgbReduction< variant >::reduce(), and polybori::groebner::zeros().
bool_type polybori::BoolePolynomial::isOne | ( | ) | const [inline] |
Check whether polynomial is constant one.
Referenced by polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), polybori::groebner::do_is_rewriteable(), polybori::BooleMonomial::GCDAssign(), polybori::BooleMonomial::LCMDeg(), polybori::groebner::LexBucket::LexBucket(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::GroebnerStrategy::noroStep(), polybori::groebner::LexBucket::operator+=(), print(), polybori::groebner::ReductionTerms::related(), polybori::groebner::LiteralFactorization::trivial(), polybori::groebner::LexBucket::value(), and polybori::groebner::zeros().
bool_type polybori::BoolePolynomial::isConstant | ( | ) | const [inline] |
Check whether polynomial is zero or one.
Referenced by deg(), polybori::BooleMonomial::firstVariable(), inSingleBlock(), polybori::LexOrder::leadExp(), polybori::groebner::LexBucket::LexBucket(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), polybori::groebner::translate_indices(), polybori::groebner::LexBucket::updateTailStart(), and polybori::groebner::LexBucket::value().
bool_type polybori::BoolePolynomial::hasConstantPart | ( | ) | const [inline] |
Check whether polynomial has term one.
Referenced by polybori::groebner::MonomialPlusOneTerms::isCompatible(), polybori::groebner::minimal_elements_internal2(), polybori::groebner::minimal_elements_internal3(), and polybori::groebner::zeros().
BoolePolynomial::bool_type polybori::BoolePolynomial::firstReducibleBy | ( | const self & | rhs | ) | const [inline] |
Tests whether polynomial can be reduced by right-hand side.
References firstBegin(), firstEnd(), and isZero().
Referenced by polybori::BooleMonomial::reducibleBy().
BoolePolynomial::monom_type polybori::BoolePolynomial::lead | ( | ) | const |
Get leading term.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::cancel_monomial_in_tail(), compare(), polybori::groebner::NextSpoly::compute(), polybori::groebner::ReductionStrategy::headNormalForm(), leadDeg(), polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::nf3_short(), polybori::groebner::LMLessCompare::operator()(), polybori::groebner::PolyEntry::recomputeInformation(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::red_tail_short(), polybori::groebner::SlimgbReduction< variant >::reduce(), polybori::groebner::reduce_by_binom(), polybori::groebner::reduce_by_binom_in_tail(), polybori::groebner::reduce_complete(), polybori::groebner::ReductionStrategy::select1(), polybori::spoly(), and polybori::groebner::sum_size().
BoolePolynomial::monom_type polybori::BoolePolynomial::lexLead | ( | ) | const |
Get leading term w.r.t. lexicographical order.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::ReductionStrategy::select1().
BoolePolynomial::monom_type polybori::BoolePolynomial::boundedLead | ( | deg_type | bound | ) | const |
Get leading term (using upper bound of the polynomial degree).
lead
for all other orderings (lp, block_*) References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::nf3_degree_order().
BoolePolynomial::exp_type polybori::BoolePolynomial::leadExp | ( | ) | const |
Get leading term.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::GroebnerStrategy::addAsYouWish(), polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), polybori::groebner::LexBucket::leadExp(), polybori::groebner::LiteralFactorization::LiteralFactorization(), and polybori::groebner::LiteralFactorization::occursAsLeadOfFactor().
BoolePolynomial::exp_type polybori::BoolePolynomial::boundedLeadExp | ( | deg_type | bound | ) | const |
Get leading term (using upper bound of the polynomial degree)
boundedLead
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
set_type polybori::BoolePolynomial::leadDivisors | ( | ) | const [inline] |
Get all divisors of the leading term.
Referenced by polybori::groebner::ReductionStrategy::select_short().
hash_type polybori::BoolePolynomial::hash | ( | ) | const [inline] |
Get unique hash value (may change from run to run).
hash_type polybori::BoolePolynomial::stableHash | ( | ) | const [inline] |
Get hash value, which is reproducible.
BoolePolynomial::hash_type polybori::BoolePolynomial::leadStableHash | ( | ) | const |
Hash value of the leading term.
References leadFirst(), PBORI_TRACE_FUNC, and polybori::stable_first_hash_range().
BoolePolynomial::deg_type polybori::BoolePolynomial::deg | ( | ) | const |
Maximal degree of the polynomial.
References polybori::dd_cached_degree(), degBegin(), degEnd(), isConstant(), navigation(), PBORI_TRACE_FUNC, and ring().
Referenced by eliminationLength(), eliminationLengthWithDegBound(), polybori::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::groebner::nf3_degree_order(), polybori::groebner::PolyEntry::recomputeInformation(), and totalDeg().
BoolePolynomial::deg_type polybori::BoolePolynomial::leadDeg | ( | ) | const |
Degree of the leading term.
References isZero(), lead(), leadFirst(), PBORI_TRACE_FUNC, and PBORI_UNLIKELY.
Referenced by polybori::groebner::common_literal_factors_deg(), eliminationLength(), eliminationLengthWithDegBound(), leadTotalDeg(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::nf3_degree_order(), polybori::groebner::LiteralFactorization::occursAsLeadOfFactor(), polybori::groebner::PolyEntry::recomputeInformation(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
BoolePolynomial::deg_type polybori::BoolePolynomial::lexLeadDeg | ( | ) | const |
Degree of the leading term w.r.t. lexicographical ordering.
References firstBegin(), firstEnd(), isZero(), PBORI_TRACE_FUNC, and PBORI_UNLIKELY.
Referenced by polybori::LexOrder::leadExp().
BoolePolynomial::deg_type polybori::BoolePolynomial::totalDeg | ( | ) | const |
BoolePolynomial::deg_type polybori::BoolePolynomial::leadTotalDeg | ( | ) | const |
BoolePolynomial polybori::BoolePolynomial::gradedPart | ( | deg_type | deg | ) | const |
Get part of given degree.
References polybori::dd_graded_part(), navigation(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::nf3_degree_order().
BoolePolynomial::size_type polybori::BoolePolynomial::nNodes | ( | ) | const |
Number of nodes in the decision diagram.
References polybori::CCuddDDFacade< RingType, DiagramType >::nNodes(), and PBORI_TRACE_FUNC.
BoolePolynomial::size_type polybori::BoolePolynomial::nUsedVariables | ( | ) | const |
Number of variables of the polynomial.
References PBORI_TRACE_FUNC, polybori::BooleMonomial::size(), and usedVariables().
Referenced by polybori::groebner::GroebnerStrategy::treatVariablePairs().
BoolePolynomial::monom_type polybori::BoolePolynomial::usedVariables | ( | ) | const |
Set of variables of the polynomial.
References diagram(), PBORI_TRACE_FUNC, and ring().
Referenced by inSingleBlock(), nUsedVariables(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
BoolePolynomial::exp_type polybori::BoolePolynomial::usedVariablesExp | ( | ) | const |
Exponent vector of all of variables of the polynomial.
References PBORI_TRACE_FUNC, and polybori::BooleSet::usedVariablesExp().
Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), polybori::groebner::CacheManager::insert(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::CacheManager::lookup(), polybori::groebner::PolyEntryBase::PolyEntryBase(), and polybori::groebner::PolyEntry::recomputeInformation().
BoolePolynomial::size_type polybori::BoolePolynomial::length | ( | ) | const |
Returns number of terms.
References polybori::BooleSet::length(), and PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), fetchTerms(), polybori::groebner::PolyEntry::recomputeInformation(), polybori::groebner::reduce_by_binom(), and polybori::groebner::reduce_by_binom_in_tail().
BoolePolynomial::ostream_type & polybori::BoolePolynomial::print | ( | ostream_type & | os | ) | const |
Print current polynomial to output stream.
References polybori::dd_print_terms(), isOne(), isZero(), orderedExpBegin(), orderedExpEnd(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::operator<<().
BoolePolynomial::const_iterator polybori::BoolePolynomial::begin | ( | ) | const |
Start of iteration over monomials.
References navigation(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::bounded_restricted_term< NaviType, DescendingProperty >::begin(), polybori::groebner::LexHelper::begin(), fetchTerms(), polybori::BooleMonomial::GCDAssign(), and polybori::groebner::reduce_complete().
BoolePolynomial::const_iterator polybori::BoolePolynomial::end | ( | ) | const |
Finish of iteration over monomials.
References PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::LexHelper::end(), fetchTerms(), polybori::BooleMonomial::GCDAssign(), and polybori::groebner::reduce_complete().
BoolePolynomial::exp_iterator polybori::BoolePolynomial::expBegin | ( | ) | const |
Start of iteration over exponent vectors.
References navigation(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::linalg_step_modified(), polybori::groebner::FGLMStrategy::main(), and polybori::groebner::p2code().
BoolePolynomial::exp_iterator polybori::BoolePolynomial::expEnd | ( | ) | const |
Finish of iteration over exponent vectors.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::linalg_step_modified(), and polybori::groebner::p2code().
BoolePolynomial::first_iterator polybori::BoolePolynomial::firstBegin | ( | ) | const |
Start of first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstBegin(), and PBORI_TRACE_FUNC.
Referenced by firstReducibleBy(), polybori::LexOrder::leadExp(), and lexLeadDeg().
BoolePolynomial::first_iterator polybori::BoolePolynomial::firstEnd | ( | ) | const |
Finish of first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstEnd(), and PBORI_TRACE_FUNC.
Referenced by firstReducibleBy(), polybori::LexOrder::leadExp(), and lexLeadDeg().
BoolePolynomial::monom_type polybori::BoolePolynomial::firstTerm | ( | ) | const |
BoolePolynomial::deg_iterator polybori::BoolePolynomial::degBegin | ( | ) | const |
Start of degrees.
References navigation(), PBORI_TRACE_FUNC, and ring().
Referenced by deg(), and eliminationLength().
BoolePolynomial::deg_iterator polybori::BoolePolynomial::degEnd | ( | ) | const |
Finish of degrees.
References PBORI_TRACE_FUNC, and ring().
Referenced by deg(), and eliminationLength().
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedBegin | ( | ) | const |
Start of ordering respecting iterator.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::DegOrderHelper::begin(), polybori::groebner::BlockOrderHelper::begin(), polybori::groebner::red_tail_general(), polybori::groebner::reduce_by_binom(), and polybori::groebner::FGLMStrategy::setupMultiplicationTables().
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedEnd | ( | ) | const |
Finish of ordering respecting iterator.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::DegOrderHelper::end(), polybori::groebner::BlockOrderHelper::end(), polybori::groebner::red_tail_general(), and polybori::groebner::FGLMStrategy::setupMultiplicationTables().
BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpBegin | ( | ) | const |
Start of ordering respecting exponent iterator.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by print().
BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpEnd | ( | ) | const |
Finish of ordering respecting exponent iterator.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by print().
BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericBegin | ( | lex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericBegin | ( | dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | dp_asc_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | block_dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
block_dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | block_dp_asc_tag | ) | const |
block_dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | block_dp_asc_tag | ) | const |
BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | lex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | dp_asc_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dp_asc_tag | ) | const |
block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dp_asc_tag | ) | const |
navigator polybori::BoolePolynomial::navigation | ( | ) | const [inline] |
Navigate through structure.
Referenced by begin(), deg(), degBegin(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), expBegin(), genericBegin(), genericExpBegin(), gradedPart(), polybori::groebner::LLReductor::isCompatible(), polybori::LexOrder::lead(), polybori::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::CBlockOrderingFacade< polybori::BlockDegRevLexAscOrder, polybori::block_tag >::lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadIteratorBegin(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), polybori::groebner::multiply(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), operator*=(), operator/=(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::translate_indices(), polybori::groebner::LexBucket::updateTailStart(), and polybori::groebner::without_prior_part().
navigator polybori::BoolePolynomial::endOfNavigation | ( | ) | const [inline] |
End of navigation marker.
dd_type polybori::BoolePolynomial::copyDiagram | ( | ) | [inline] |
gives a copy of the diagram
polybori::BoolePolynomial::operator set_type | ( | ) | const [inline] |
Casting operator to Boolean set.
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLength | ( | ) | const |
References deg(), degBegin(), degEnd(), isZero(), leadDeg(), length(), and ring().
Referenced by polybori::groebner::GroebnerStrategy::addAsYouWish(), and eliminationLengthWithDegBound().
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLengthWithDegBound | ( | deg_type | garantied_deg_bound | ) | const |
References deg(), eliminationLength(), leadDeg(), length(), PBORI_ASSERT, and ring().
Referenced by polybori::groebner::PolyEntryBase::PolyEntryBase(), and polybori::groebner::PolyEntry::recomputeInformation().
void polybori::BoolePolynomial::fetchTerms | ( | termlist_type & | theOutputList | ) | const |
BoolePolynomial::termlist_type polybori::BoolePolynomial::terms | ( | ) | const |
const dd_type& polybori::BoolePolynomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
Referenced by polybori::groebner::add_up_lex_sorted_exponents(), polybori::groebner::add_up_lex_sorted_monomials(), polybori::groebner::cheap_reductions(), polybori::groebner::do_plug_1(), polybori::groebner::interpolate_smallest_lex(), polybori::groebner::linalg_step_modified(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::BooleMonomial::multiples(), polybori::groebner::multiply_with_literal_factors(), polybori::groebner::GroebnerStrategy::noroStep(), polybori::groebner::plug_1_top(), polybori::groebner::random_set_using_generator(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::reduce_complete(), polybori::groebner::FGLMStrategy::testMultiplicationTables(), polybori::groebner::translate_indices(), usedVariables(), and polybori::groebner::zeros().
set_type polybori::BoolePolynomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
Referenced by polybori::groebner::CountCriterion::operator()().
bool_type polybori::BoolePolynomial::isSingleton | ( | ) | const [inline] |
bool_type polybori::BoolePolynomial::isSingletonOrPair | ( | ) | const [inline] |
bool_type polybori::BoolePolynomial::isPair | ( | ) | const [inline] |
Test, whether we have two terms only.
References polybori::dd_is_pair().
Referenced by polybori::groebner::MonomialPlusOneTerms::isCompatible().
const ring_type& polybori::BoolePolynomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
Referenced by polybori::groebner::add_up_exponents(), polybori::groebner::GroebnerStrategy::addAsYouWish(), polybori::groebner::GroebnerStrategy::addGeneratorDelayed(), polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), begin(), boundedLead(), boundedLeadExp(), polybori::groebner::cheap_reductions(), deg(), degBegin(), degEnd(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), eliminationLength(), eliminationLengthWithDegBound(), end(), fetchTerms(), polybori::groebner::fix_point_iterate(), polybori::groebner::full_implication_gb(), polybori::groebner::gauss_on_polys(), genericBegin(), genericEnd(), genericExpBegin(), genericExpEnd(), gradedPart(), polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::CacheManager::insert(), inSingleBlock(), polybori::LexOrder::lead(), polybori::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::CBlockOrderingFacade< polybori::BlockDegRevLexAscOrder, polybori::block_tag >::lead(), lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), leadExp(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadExpIteratorEnd(), leadFirst(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadIteratorBegin(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadIteratorEnd(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::CacheManager::lookup(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::mult_fast_sim(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), polybori::groebner::multiply(), polybori::groebner::nf3_lexbuckets(), operator%=(), polybori::groebner::TimesVariableSubstitution::operator()(), polybori::groebner::TimesConstantImplication::operator()(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), polybori::groebner::CountCriterion::operator()(), operator*=(), operator/=(), orderedBegin(), orderedEnd(), orderedExpBegin(), orderedExpEnd(), print(), polybori::groebner::PolyEntry::recomputeInformation(), polybori::groebner::red_tail(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::red_tail_short(), polybori::groebner::reduce_by_monom(), polybori::groebner::ReductionTerms::related(), polybori::groebner::ReductionStrategy::select1(), polybori::groebner::FGLMStrategy::testMultiplicationTables(), polybori::groebner::translate_indices(), polybori::groebner::GroebnerStrategy::treatVariablePairs(), polybori::groebner::LexBucket::updateTailStart(), usedVariables(), polybori::groebner::without_prior_part(), and polybori::groebner::zeros().
BoolePolynomial::comp_type polybori::BoolePolynomial::compare | ( | const self & | rhs | ) | const |
Compare with right-hand side and return comparision code.
References isZero(), lead(), and PBORI_TRACE_FUNC.
BoolePolynomial::bool_type polybori::BoolePolynomial::inSingleBlock | ( | ) | const |
Check whether all variables are in one variable block.
References polybori::BooleMonomial::begin(), polybori::BooleMonomial::end(), isConstant(), polybori::BoolePolyRing::ordering(), ring(), and usedVariables().
Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
dd_type& polybori::BoolePolynomial::internalDiagram | ( | ) | [inline, protected] |
Access to internal decision diagramm structure.
Referenced by polybori::BooleMonomial::operator*=().
BoolePolynomial polybori::BoolePolynomial::leadFirst | ( | ) | const [protected] |
Generate a polynomial, whose first term is the leading term.
References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by leadDeg(), and leadStableHash().
BoolePolynomial::set_type polybori::BoolePolynomial::firstDivisors | ( | ) | const [protected] |
Get all divisors of the first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstDivisors(), and PBORI_TRACE_FUNC.
friend class BooleMonomial [friend] |
Let BooleMonomial access protected and private members.