|
PolyBoRi
|
This class wraps the underlying decicion diagram type and defines the necessary operations. More...
#include <BoolePolynomial.h>
Public Types | |
| typedef BoolePolynomial | self |
| Generic access to current type. More... | |
| typedef dd_type::first_iterator | first_iterator |
| Iterator type for iterating over indices of the leading term. More... | |
| typedef dd_type::navigator | navigator |
| Iterator-like type for navigating through diagram structure. More... | |
| typedef BooleMonomial | monom_type |
| Fix type for treatment of monomials. More... | |
| typedef BooleVariable | var_type |
| Fix type for treatment of monomials. More... | |
| typedef BooleExponent | exp_type |
| Fix type for treatment of exponent vectors. More... | |
| typedef BooleConstant | constant_type |
| Type for wrapping integer and bool values. More... | |
| typedef BoolePolyRing | ring_type |
| Type for Boolean polynomial rings (without ordering) More... | |
| typedef CTypes::comp_type | comp_type |
| Type for result of polynomial comparisons. More... | |
| typedef binary_composition< std::plus< size_type >, project_ith< 1 >, integral_constant< size_type, 1 > > | increment_type |
| Incrementation functional type. More... | |
| typedef binary_composition< std::minus< size_type >, project_ith< 1 >, integral_constant< size_type, 1 > > | decrement_type |
| Decrementation functional type. More... | |
| typedef COrderedIter< navigator, exp_type > | ordered_exp_iterator |
| Iterator type for iterating over all exponents in ordering order. More... | |
| typedef COrderedIter< navigator, monom_type > | ordered_iterator |
| Iterator type for iterating over all monomials in ordering order. More... | |
| typedef lex_iterator | const_iterator |
| Iterator type for iterating over all monomials. More... | |
| typedef CExpIter< navigator, exp_type > | exp_iterator |
| Iterator type for iterating all exponent vectors. More... | |
| typedef CGenericIter< LexOrder, navigator, deg_type > | deg_iterator |
| Iterator type for iterating all monomials (dereferencing to degree) More... | |
| typedef std::vector< monom_type > | termlist_type |
| Type for lists of terms. More... | |
| typedef dd_type::easy_equality_property | easy_equality_property |
| The property whether the equality check is easy is inherited from dd_type. More... | |
| typedef BooleSet | set_type |
| Type for sets of Boolean variables. More... | |
| typedef std::map< self, idx_type, symmetric_composition< std::less< navigator >, navigates< self > > > | idx_map_type |
| Type for index maps. More... | |
| 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 |
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 Types inherited from polybori::CAuxTypes | |
| typedef bool | bool_type |
| Type for standard true/false statements. More... | |
| typedef std::size_t | size_type |
| Type for lengths, dimensions, etc. More... | |
| typedef int | deg_type |
| Type for polynomial degrees (ranges from -1 to maxint) More... | |
| typedef int | integer_type |
| Type for integer numbers. More... | |
| typedef int | idx_type |
| Type for indices. More... | |
| typedef std::size_t | hash_type |
| Type for hashing. More... | |
| typedef unsigned int | errornum_type |
| Type used to store error codes. More... | |
| typedef short int | comp_type |
| Type for comparisons. More... | |
| typedef int | ordercode_type |
| Type for ordering codes. More... | |
| typedef const char * | errortext_type |
| Type used to verbose error information. More... | |
| typedef std::ostream | ostream_type |
| Type for out-stream. More... | |
| typedef const char * | vartext_type |
| Type for setting/getting names of variables. More... | |
| typedef unsigned long | large_size_type |
| large size_type (necessary?) More... | |
| typedef std::size_t | refcount_type |
| Type for counting references. More... | |
Public Member Functions | |
| BoolePolynomial (const ring_type &ring) | |
| Default constructor. More... | |
| BoolePolynomial (constant_type isOne, const ring_type &ring) | |
Construct polynomial in given ring from a constant value 0 or 1. More... | |
| BoolePolynomial (const dd_type &rhs) | |
| Construct polynomial from decision diagram. More... | |
| BoolePolynomial (const exp_type &, const ring_type &) | |
| Construct polynomial from a subset of the powerset over all variables. More... | |
| BoolePolynomial (const navigator &rhs, const ring_type &ring) | |
| Construct polynomial from navigator. More... | |
| ~BoolePolynomial () | |
| Destructor. More... | |
| self & | operator= (constant_type rhs) |
| bool_type | isZero () const |
| Check whether polynomial is constant zero. More... | |
| bool_type | isOne () const |
| Check whether polynomial is constant one. More... | |
| bool_type | isConstant () const |
| Check whether polynomial is zero or one. More... | |
| bool_type | hasConstantPart () const |
| Check whether polynomial has term one. More... | |
| bool_type | firstReducibleBy (const self &) const |
| Tests whether polynomial can be reduced by right-hand side. More... | |
| monom_type | lead () const |
| Get leading term. More... | |
| monom_type | lexLead () const |
| Get leading term w.r.t. lexicographical order. More... | |
| monom_type | boundedLead (deg_type bound) const |
| Get leading term (using upper bound of the polynomial degree) More... | |
| exp_type | leadExp () const |
| Get leading term. More... | |
| exp_type | boundedLeadExp (deg_type bound) const |
| set_type | leadDivisors () const |
| Get all divisors of the leading term. More... | |
| hash_type | hash () const |
| Get unique hash value (may change from run to run) More... | |
| hash_type | stableHash () const |
| Get hash value, which is reproducible. More... | |
| hash_type | leadStableHash () const |
| Hash value of the leading term. More... | |
| deg_type | deg () const |
| Maximal degree of the polynomial. More... | |
| deg_type | leadDeg () const |
| Degree of the leading term. More... | |
| deg_type | lexLeadDeg () const |
| Degree of the leading term w.r.t. lexicographical ordering. More... | |
| deg_type | totalDeg () const |
| Total maximal degree of the polynomial. More... | |
| deg_type | leadTotalDeg () const |
| Total degree of the leading term. More... | |
| self | gradedPart (deg_type deg) const |
| Get part of given degree. More... | |
| size_type | nNodes () const |
| Number of nodes in the decision diagram. More... | |
| size_type | nUsedVariables () const |
| Number of variables of the polynomial. More... | |
| monom_type | usedVariables () const |
| Set of variables of the polynomial. More... | |
| exp_type | usedVariablesExp () const |
| Exponent vector of all of variables of the polynomial. More... | |
| size_type | length () const |
| Returns number of terms. More... | |
| ostream_type & | print (ostream_type &) const |
| Print current polynomial to output stream. More... | |
| const_iterator | begin () const |
| Start of iteration over monomials. More... | |
| const_iterator | end () const |
| Finish of iteration over monomials. More... | |
| exp_iterator | expBegin () const |
| Start of iteration over exponent vectors. More... | |
| exp_iterator | expEnd () const |
| Finish of iteration over exponent vectors. More... | |
| first_iterator | firstBegin () const |
| Start of first term. More... | |
| first_iterator | firstEnd () const |
| Finish of first term. More... | |
| monom_type | firstTerm () const |
| Get of first lexicographic term. More... | |
| deg_iterator | degBegin () const |
| Start of degrees. More... | |
| deg_iterator | degEnd () const |
| Finish of degrees. More... | |
| ordered_iterator | orderedBegin () const |
| Start of ordering respecting iterator. More... | |
| ordered_iterator | orderedEnd () const |
| Finish of ordering respecting iterator. More... | |
| ordered_exp_iterator | orderedExpBegin () const |
| Start of ordering respecting exponent iterator. More... | |
| ordered_exp_iterator | orderedExpEnd () const |
| Finish of ordering respecting exponent iterator. More... | |
| navigator | navigation () const |
| Navigate through structure. More... | |
| navigator | endOfNavigation () const |
| End of navigation marker. More... | |
| dd_type | copyDiagram () |
| gives a copy of the diagram More... | |
| operator set_type () const | |
| Casting operator to Boolean set. More... | |
| size_type | eliminationLength () const |
| size_type | eliminationLengthWithDegBound (deg_type garantied_deg_bound) const |
| void | fetchTerms (termlist_type &) const |
| Get list of all terms. More... | |
| termlist_type | terms () const |
| Return of all terms. More... | |
| const dd_type & | diagram () const |
| Read-only access to internal decision diagramm structure. More... | |
| set_type | set () const |
| Get corresponding subset of of the powerset over all variables. More... | |
| bool_type | isSingleton () const |
| Test, whether we have one term only. More... | |
| bool_type | isSingletonOrPair () const |
| Test, whether we have one or two terms only. More... | |
| bool_type | isPair () const |
| Test, whether we have two terms only. More... | |
| const ring_type & | ring () const |
| Access ring, where this belongs to. More... | |
| comp_type | compare (const self &) const |
| Compare with right-hand side and return comparision code. More... | |
| bool_type | inSingleBlock () const |
| Check whether all variables are in one variable block. More... | |
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. More... | |
| self | leadFirst () const |
| Generate a polynomial, whose first term is the leading term. More... | |
| set_type | firstDivisors () const |
| Get all divisors of the first term. More... | |
Friends | |
| class | BooleMonomial |
| Let BooleMonomial access protected and private members. More... | |
This class wraps the underlying decicion diagram type and defines the necessary operations.
| typedef CGenericIter<BlockDegLexOrder, navigator, exp_type> polybori::BoolePolynomial::block_dlex_exp_iterator |
| typedef CGenericIter<BlockDegLexOrder, navigator, monom_type> polybori::BoolePolynomial::block_dlex_iterator |
| typedef CGenericIter<BlockDegRevLexAscOrder, navigator, exp_type> polybori::BoolePolynomial::block_dp_asc_exp_iterator |
| typedef CGenericIter<BlockDegRevLexAscOrder, navigator, monom_type> polybori::BoolePolynomial::block_dp_asc_iterator |
Type for result of polynomial comparisons.
Iterator type for iterating over all monomials.
Type for wrapping integer and bool values.
| 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 all monomials (dereferencing to degree)
| typedef CGenericIter<DegRevLexAscOrder, navigator, exp_type> polybori::BoolePolynomial::dp_asc_exp_iterator |
| typedef CGenericIter<DegRevLexAscOrder, navigator, monom_type> polybori::BoolePolynomial::dp_asc_iterator |
The property whether the equality check is easy is inherited from dd_type.
Iterator type for iterating all exponent vectors.
Fix type for treatment of exponent vectors.
Iterator type for iterating over indices of the leading term.
| typedef std::map<self, idx_type, symmetric_composition< std::less<navigator>, navigates<self> > > polybori::BoolePolynomial::idx_map_type |
Type for index maps.
| typedef binary_composition< std::plus<size_type>, project_ith<1>, integral_constant<size_type, 1> > polybori::BoolePolynomial::increment_type |
Incrementation functional type.
Fix type for treatment of monomials.
Iterator-like type for navigating through diagram structure.
Iterator type for iterating over all exponents in ordering order.
Iterator type for iterating over all monomials in ordering order.
| typedef std::map<self, std::vector<self>, symmetric_composition< std::less<navigator>, navigates<self> > > polybori::BoolePolynomial::poly_vec_map_type |
Type for Boolean polynomial rings (without ordering)
Generic access to current type.
Type for sets of Boolean variables.
| typedef std::vector<monom_type> polybori::BoolePolynomial::termlist_type |
Type for lists of terms.
Fix type for treatment of monomials.
|
inline |
Default constructor.
Construct polynomial from a constant value 0 or 1 Construct zero polynomial
|
inline |
Construct polynomial in given ring from a constant value 0 or 1.
|
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().
Construct polynomial from navigator.
References polybori::CCuddNavigator::isValid(), and PBORI_ASSERT.
|
inline |
Destructor.
| BoolePolynomial::const_iterator polybori::BoolePolynomial::begin | ( | ) | const |
Start of iteration over monomials.
References navigation(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::LexHelper::begin(), fetchTerms(), polybori::BooleMonomial::GCDAssign(), and polybori::groebner::reduce_complete().
| 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::COrderingBase::lead(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::nf3_degree_order().
| BoolePolynomial::exp_type polybori::BoolePolynomial::boundedLeadExp | ( | deg_type | bound | ) | const |
Get leading term (using upper bound of the polynomial degree)
boundedLead References polybori::COrderingBase::leadExp(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::comp_type polybori::BoolePolynomial::compare | ( | const self & | rhs | ) | const |
Compare with right-hand side and return comparision code.
References polybori::BooleMonomial::compare(), isZero(), lead(), and PBORI_TRACE_FUNC.
|
inline |
gives a copy of the diagram
| 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(), and totalDeg().
| 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().
|
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::map_every_x_to_x_plus_one(), polybori::BooleMonomial::multiples(), polybori::groebner::multiply_with_literal_factors(), 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().
| 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().
| 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().
|
inline |
End of navigation marker.
| BoolePolynomial::exp_iterator polybori::BoolePolynomial::expBegin | ( | ) | const |
Start of iteration over exponent vectors.
References navigation(), and PBORI_TRACE_FUNC.
Referenced by 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::p2code().
| void polybori::BoolePolynomial::fetchTerms | ( | termlist_type & | theOutputList | ) | const |
| BoolePolynomial::first_iterator polybori::BoolePolynomial::firstBegin | ( | ) | const |
Start of first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstBegin(), and PBORI_TRACE_FUNC.
Referenced by polybori::LexOrder::leadExp(), and lexLeadDeg().
|
protected |
Get all divisors of the first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstDivisors(), and PBORI_TRACE_FUNC.
| BoolePolynomial::first_iterator polybori::BoolePolynomial::firstEnd | ( | ) | const |
Finish of first term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstEnd(), and PBORI_TRACE_FUNC.
Referenced by polybori::LexOrder::leadExp(), and lexLeadDeg().
|
inline |
Tests whether polynomial can be reduced by right-hand side.
Referenced by polybori::BooleMonomial::reducibleBy().
| BoolePolynomial::monom_type polybori::BoolePolynomial::firstTerm | ( | ) | const |
Get of first lexicographic term.
References polybori::LexOrder::lead(), and PBORI_TRACE_FUNC.
| BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericBegin | ( | lex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericBegin | ( | dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | dp_asc_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericBegin | ( | block_dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | block_dp_asc_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::genericEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | lex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | dlex_tag | ) | const |
References navigation(), 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::block_dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dlex_tag | ) | const |
References navigation(), PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dp_asc_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::genericExpEnd | ( | dlex_tag | ) | const |
References 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_dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC, and ring().
| 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().
|
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().
|
inline |
Get unique hash value (may change from run to run)
| 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::COrderingBase::lieInSameBlock(), polybori::BoolePolyRing::ordering(), ring(), and usedVariables().
Referenced by polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
|
inlineprotected |
Access to internal decision diagramm structure.
Referenced by polybori::BooleMonomial::operator*=().
|
inline |
Check whether polynomial is zero or one.
Referenced by deg(), polybori::BooleMonomial::firstVariable(), inSingleBlock(), polybori::LexOrder::leadExp(), polybori::groebner::LexBucket::LexBucket(), polybori::groebner::translate_indices(), and polybori::groebner::LexBucket::value().
|
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(), print(), polybori::groebner::ReductionTerms::related(), polybori::groebner::LiteralFactorization::trivial(), polybori::groebner::LexBucket::value(), and polybori::groebner::zeros().
|
inline |
Test, whether we have two terms only.
References polybori::dd_is_pair().
Referenced by polybori::groebner::MonomialPlusOneTerms::isCompatible().
|
inline |
Test, whether we have one term only.
References polybori::dd_is_singleton().
|
inline |
Test, whether we have one or two terms only.
References polybori::dd_is_singleton_or_pair().
|
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(), polybori::BooleMonomial::GCDAssign(), polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::LexBucket::increaseTailStart(), polybori::BooleMonomial::LCMDeg(), leadDeg(), polybori::groebner::LexBucket::LexBucket(), lexLeadDeg(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_no_deg_growth(), 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().
| BoolePolynomial::monom_type polybori::BoolePolynomial::lead | ( | ) | const |
Get leading term.
References polybori::COrderingBase::lead(), 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::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::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(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().
|
inline |
Get all divisors of the leading term.
References polybori::CCuddDDFacade< RingType, DiagramType >::firstDivisors().
Referenced by polybori::groebner::ReductionStrategy::select_short().
| BoolePolynomial::exp_type polybori::BoolePolynomial::leadExp | ( | ) | const |
Get leading term.
References polybori::COrderingBase::leadExp(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::PolynomialSugar::add(), polybori::groebner::GroebnerStrategy::addAsYouWish(), polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), polybori::groebner::LiteralFactorization::LiteralFactorization(), and polybori::groebner::LiteralFactorization::occursAsLeadOfFactor().
|
protected |
Generate a polynomial, whose first term is the leading term.
References polybori::COrderingBase::leadFirst(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by leadDeg(), and leadStableHash().
| 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::leadTotalDeg | ( | ) | const |
Total degree of the leading term.
References leadDeg(), and PBORI_TRACE_FUNC.
| BoolePolynomial::size_type polybori::BoolePolynomial::length | ( | ) | const |
Returns number of terms.
References polybori::BooleSet::length(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::PolynomialSugar::add(), eliminationLength(), eliminationLengthWithDegBound(), fetchTerms(), polybori::groebner::reduce_by_binom(), and polybori::groebner::reduce_by_binom_in_tail().
| BoolePolynomial::monom_type polybori::BoolePolynomial::lexLead | ( | ) | const |
Get leading term w.r.t. lexicographical order.
References polybori::LexOrder::lead(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::ReductionStrategy::select1().
| 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().
|
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< BlockDegRevLexAscOrder, block_dp_asc_tag >::lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadIteratorBegin(), polybori::groebner::multiply(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), operator*=(), operator/=(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::translate_indices(), and polybori::groebner::without_prior_part().
| 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().
|
inline |
Casting operator to Boolean set.
|
inline |
| BoolePolynomial & polybori::BoolePolynomial::operator%= | ( | const var_type & | rhs | ) |
References PBORI_TRACE_FUNC.
| BoolePolynomial & polybori::BoolePolynomial::operator%= | ( | const monom_type & | 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().
|
inline |
| BoolePolynomial & polybori::BoolePolynomial::operator+= | ( | const self & | rhs | ) |
References PBORI_TRACE_FUNC.
|
inline |
|
inline |
|
inline |
| BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const var_type & | rhs | ) |
References PBORI_TRACE_FUNC.
Referenced by operator/=().
| 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.
|
inline |
|
inline |
| BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedBegin | ( | ) | const |
Start of ordering respecting iterator.
References polybori::COrderingBase::leadIteratorBegin(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::BlockOrderHelper::begin(), polybori::groebner::DegOrderHelper::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::COrderingBase::leadIteratorEnd(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by polybori::groebner::BlockOrderHelper::end(), polybori::groebner::DegOrderHelper::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::COrderingBase::leadExpIteratorBegin(), 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::COrderingBase::leadExpIteratorEnd(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().
Referenced by print().
| 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<<().
|
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::full_implication_gb(), 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< BlockDegRevLexAscOrder, block_dp_asc_tag >::lead(), lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), leadExp(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadExpIteratorEnd(), leadFirst(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadIteratorBegin(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_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::multiply(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), polybori::groebner::nf3_lexbuckets(), operator%=(), polybori::groebner::TimesConstantImplication::operator()(), polybori::groebner::TimesVariableSubstitution::operator()(), polybori::groebner::CountCriterion::operator()(), operator*=(), operator/=(), orderedBegin(), orderedEnd(), orderedExpBegin(), orderedExpEnd(), print(), 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().
|
inline |
Get corresponding subset of of the powerset over all variables.
Referenced by polybori::groebner::CountCriterion::operator()(), and usedVariables().
|
inline |
Get hash value, which is reproducible.
| BoolePolynomial::termlist_type polybori::BoolePolynomial::terms | ( | ) | const |
Return of all terms.
References fetchTerms(), and PBORI_TRACE_FUNC.
| BoolePolynomial::deg_type polybori::BoolePolynomial::totalDeg | ( | ) | const |
Total maximal degree of the polynomial.
References deg(), and PBORI_TRACE_FUNC.
| BoolePolynomial::monom_type polybori::BoolePolynomial::usedVariables | ( | ) | const |
Set of variables of the polynomial.
References diagram(), PBORI_TRACE_FUNC, ring(), and set().
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(), and polybori::groebner::PolyEntryBase::PolyEntryBase().
|
friend |
Let BooleMonomial access protected and private members.
1.8.9.1