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. | |
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 dd_type::pretty_out_type | pretty_out_type |
Type for output of pretty print. | |
typedef dd_type::filename_type | filename_type |
Type for naming file for pretty print. | |
typedef BooleMonomial | monom_type |
Fix type for treatment of monomials. | |
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 BooleRing | ring_type |
Type for Boolean polynomial rings (without ordering). | |
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 CTypes::manager_type | manager_type |
typedef CTypes::manager_reference | manager_reference |
typedef CTypes::manager_ptr | manager_ptr |
typedef CTypes::dd_type | dd_type |
typedef CTypes::size_type | size_type |
typedef CTypes::deg_type | deg_type |
typedef CTypes::idx_type | idx_type |
typedef CTypes::bool_type | bool_type |
typedef CTypes::ostream_type | ostream_type |
typedef CTypes::hash_type | hash_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 Member Functions | |
BoolePolynomial () | |
Default constructor. | |
BoolePolynomial (constant_type) | |
Construct polynomial from a constant value 0 or 1. | |
BoolePolynomial (constant_type isOne, const ring_type &ring) | |
Construct polynomial from a constant value 0 or 1. | |
BoolePolynomial (const dd_type &rhs) | |
Construct polynomial from decision diagram. | |
BoolePolynomial (const set_type &rhs) | |
Construct polynomial from a subset of the powerset over all variables. | |
BoolePolynomial (const exp_type &, const ring_type &) | |
Construct polynomial from exponent vector. | |
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 | reducibleBy (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 (size_type bound) const |
Get leading term (using upper bound). | |
exp_type | leadExp () const |
Get leading term. | |
exp_type | boundedLeadExp (size_type bound) const |
Get leading term (using upper bound). | |
set_type | lmDivisors () 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 | lmStableHash () const |
Hash value of the leading term. | |
deg_type | deg () const |
Maximal degree of the polynomial. | |
deg_type | lmDeg () const |
Degree of the leading term. | |
deg_type | lexLmDeg () const |
Degree of the leading term w.r.t. lexicographical ordering. | |
deg_type | totalDeg () const |
Total maximal degree of the polynomial. | |
deg_type | lmTotalDeg () 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. | |
void | prettyPrint () const |
Pretty print to stdout. | |
void | prettyPrint (filename_type filename) const |
Pretty print to filename. | |
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. | |
ring_type | ring () const |
Access ring, where this belongs to. | |
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 monom_type &) |
self & | operator/= (const exp_type &) |
self & | operator/= (const self &rhs) |
self & | operator/= (constant_type rhs) |
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. |
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 |
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.
Type for naming file for pretty print.
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 output of pretty print.
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.
polybori::BoolePolynomial::BoolePolynomial | ( | ) |
Default constructor.
References PBORI_TRACE_FUNC.
polybori::BoolePolynomial::BoolePolynomial | ( | constant_type | isOne | ) | [explicit] |
Construct polynomial from a constant value 0 or 1.
References PBORI_TRACE_FUNC.
polybori::BoolePolynomial::BoolePolynomial | ( | constant_type | isOne, | |
const ring_type & | ring | |||
) | [inline] |
Construct polynomial from a constant value 0 or 1.
polybori::BoolePolynomial::BoolePolynomial | ( | const dd_type & | rhs | ) | [inline] |
Construct polynomial from decision diagram.
polybori::BoolePolynomial::BoolePolynomial | ( | const set_type & | rhs | ) | [inline] |
Construct polynomial from a subset of the powerset over all variables.
Construct polynomial from exponent vector.
References polybori::CDDInterface< CuddLikeZDD >::changeAssign(), 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().
polybori::BoolePolynomial::~BoolePolynomial | ( | ) | [inline] |
Destructor.
BoolePolynomial::const_iterator polybori::BoolePolynomial::begin | ( | ) | const |
Start of iteration over monomials.
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::LexHelper::begin(), fetchTerms(), polybori::BooleMonomial::GCDAssign(), and polybori::groebner::GroebnerStrategy::treat_m_p_1_case().
BoolePolynomial::monom_type polybori::BoolePolynomial::boundedLead | ( | size_type | bound | ) | const |
Get leading term (using upper bound).
References isZero(), polybori::BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by polybori::groebner::nf3_degree_order(), and polybori::groebner::PolynomialSugar::PolynomialSugar().
BoolePolynomial::exp_type polybori::BoolePolynomial::boundedLeadExp | ( | size_type | bound | ) | const |
Get leading term (using upper bound).
References isZero(), polybori::BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
dd_type polybori::BoolePolynomial::copyDiagram | ( | ) | [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(), polybori::CDDInterface< CuddLikeZDD >::manager(), navigation(), and PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::groebner::nf3_degree_order(), polybori::groebner::PolynomialSugar::PolynomialSugar(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), and totalDeg().
BoolePolynomial::deg_iterator polybori::BoolePolynomial::degBegin | ( | ) | const |
Start of degrees.
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
Referenced by deg(), and eliminationLength().
BoolePolynomial::deg_iterator polybori::BoolePolynomial::degEnd | ( | ) | const |
const dd_type& polybori::BoolePolynomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
Referenced by polybori::BooleExponent::divisors(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), polybori::groebner::GroebnerStrategy::GroebnerStrategy(), polybori::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::BlockDegRevLexAscOrder::lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::LexOrder::leadExpIteratorBegin(), polybori::DegRevLexAscOrder::leadExpIteratorBegin(), polybori::DegLexOrder::leadExpIteratorBegin(), polybori::BlockDegRevLexAscOrder::leadExpIteratorBegin(), polybori::LexOrder::leadIteratorBegin(), polybori::DegRevLexAscOrder::leadIteratorBegin(), polybori::DegLexOrder::leadIteratorBegin(), polybori::BlockDegRevLexAscOrder::leadIteratorBegin(), polybori::groebner::ll_red_nf_generic(), polybori::BooleMonomial::multiples(), polybori::BooleExponent::multiples(), operator*=(), operator/=(), polybori::groebner::plug_1_top(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), and usedVariables().
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLength | ( | ) | const |
References deg(), degBegin(), degEnd(), isZero(), length(), lmDeg(), and polybori::BooleEnv::ordering().
Referenced by eliminationLengthWithDegBound().
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLengthWithDegBound | ( | deg_type | garantied_deg_bound | ) | const |
References deg(), eliminationLength(), length(), lmDeg(), and polybori::BooleEnv::ordering().
BoolePolynomial::const_iterator polybori::BoolePolynomial::end | ( | ) | const |
Finish of iteration over monomials.
References PBORI_TRACE_FUNC.
Referenced by polybori::groebner::LexHelper::end(), fetchTerms(), polybori::BooleMonomial::GCDAssign(), and polybori::groebner::GroebnerStrategy::treat_m_p_1_case().
navigator polybori::BoolePolynomial::endOfNavigation | ( | ) | const [inline] |
End of navigation marker.
BoolePolynomial::exp_iterator polybori::BoolePolynomial::expBegin | ( | ) | const |
Start of iteration over exponent vectors.
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::exp_iterator polybori::BoolePolynomial::expEnd | ( | ) | const |
Finish of iteration over exponent vectors.
References PBORI_TRACE_FUNC.
void polybori::BoolePolynomial::fetchTerms | ( | termlist_type & | theOutputList | ) | const |
Get list of all terms.
References begin(), end(), length(), and PBORI_TRACE_FUNC.
Referenced by terms().
BoolePolynomial::first_iterator polybori::BoolePolynomial::firstBegin | ( | ) | const |
Start of first term.
References polybori::CDDInterface< CuddLikeZDD >::firstBegin(), and PBORI_TRACE_FUNC.
Referenced by firstDivisors(), polybori::LexOrder::lead(), polybori::LexOrder::leadExp(), lexLmDeg(), and reducibleBy().
BoolePolynomial::set_type polybori::BoolePolynomial::firstDivisors | ( | ) | const [protected] |
Get all divisors of the first term.
References polybori::CDDInterface< CuddLikeZDD >::emptiness(), firstBegin(), polybori::CDDInterface< CuddLikeZDD >::firstDivisors(), firstEnd(), lmDeg(), PBORI_TRACE_FUNC, and polybori::reversed_inter_copy().
BoolePolynomial::first_iterator polybori::BoolePolynomial::firstEnd | ( | ) | const |
Finish of first term.
References polybori::CDDInterface< CuddLikeZDD >::firstEnd(), and PBORI_TRACE_FUNC.
Referenced by firstDivisors(), polybori::LexOrder::lead(), polybori::LexOrder::leadExp(), lexLmDeg(), and reducibleBy().
BoolePolynomial::monom_type polybori::BoolePolynomial::firstTerm | ( | ) | const |
Get of first lexicographic term.
References PBORI_TRACE_FUNC.
BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericBegin | ( | dlex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | dp_asc_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericBegin | ( | block_dlex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericBegin | ( | block_dp_asc_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericBegin | ( | lex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | lex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | dlex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | dp_asc_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dlex_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin | ( | block_dp_asc_tag | ) | const |
References polybori::CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial polybori::BoolePolynomial::gradedPart | ( | deg_type | deg | ) | const |
Get part of given degree.
References polybori::dd_graded_part(), polybori::CDDInterface< CuddLikeZDD >::manager(), navigation(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::nf3_degree_order().
bool_type polybori::BoolePolynomial::hasConstantPart | ( | ) | const [inline] |
Check whether polynomial has term one.
hash_type polybori::BoolePolynomial::hash | ( | ) | const [inline] |
Get unique hash value (may change from run to run).
dd_type& polybori::BoolePolynomial::internalDiagram | ( | ) | [inline, protected] |
Access to internal decision diagramm structure.
Referenced by polybori::BooleMonomial::changeAssign(), polybori::BooleMonomial::operator*=(), and polybori::BooleMonomial::operator/=().
bool_type polybori::BoolePolynomial::isConstant | ( | ) | const [inline] |
Check whether polynomial is zero or one.
Referenced by deg(), polybori::groebner::LexBucket::LexBucket(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::LexBucket::updateTailStart(), and polybori::groebner::LexBucket::value().
bool_type polybori::BoolePolynomial::isOne | ( | ) | const [inline] |
Check whether polynomial is constant one.
Referenced by polybori::groebner::do_is_rewriteable(), polybori::BooleMonomial::GCDAssign(), polybori::BooleMonomial::LCMDeg(), polybori::LexOrder::leadExp(), polybori::groebner::LexBucket::LexBucket(), polybori::groebner::LexBucket::operator+=(), print(), polybori::groebner::LiteralFactorization::trivial(), and polybori::groebner::LexBucket::value().
bool_type polybori::BoolePolynomial::isPair | ( | ) | const [inline] |
Test, whether we have two terms only.
References polybori::dd_is_pair().
bool_type polybori::BoolePolynomial::isSingleton | ( | ) | const [inline] |
Test, whether we have one term only.
References polybori::dd_is_singleton().
bool_type polybori::BoolePolynomial::isSingletonOrPair | ( | ) | const [inline] |
Test, whether we have one or two terms only.
References polybori::dd_is_singleton_or_pair().
bool_type polybori::BoolePolynomial::isZero | ( | ) | const [inline] |
Check whether polynomial is constant zero.
Referenced by polybori::groebner::SlimgbReduction< variant >::addPolynomial(), boundedLead(), boundedLeadExp(), polybori::groebner::do_is_rewriteable(), eliminationLength(), polybori::BooleMonomial::GCDAssign(), polybori::groebner::LexBucket::increaseTailStart(), polybori::groebner::LexBucket::isZero(), polybori::BooleMonomial::LCMDeg(), lead(), polybori::LexOrder::leadExp(), polybori::groebner::LexBucket::leadExp(), leadExp(), polybori::groebner::LexBucket::LexBucket(), lexLead(), lexLmDeg(), polybori::groebner::LiteralFactorization::LiteralFactorization(), lmDeg(), polybori::groebner::GroebnerStrategy::nf(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::LexBucket::operator+=(), polybori::BooleMonomial::operator/=(), polybori::groebner::PolynomialSugar::PolynomialSugar(), print(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::SlimgbReduction< variant >::reduce(), and reducibleBy().
BoolePolynomial::monom_type polybori::BoolePolynomial::lead | ( | ) | const |
Get leading term.
References isZero(), polybori::BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by lmDeg(), polybori::groebner::GroebnerStrategy::nf(), polybori::groebner::nf3_db(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::LMLessCompare::operator()(), polybori::groebner::PolynomialSugar::PolynomialSugar(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::SlimgbReduction< variant >::reduce(), polybori::spoly(), and polybori::groebner::sum_size().
BoolePolynomial::exp_type polybori::BoolePolynomial::leadExp | ( | ) | const |
Get leading term.
References isZero(), polybori::BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by polybori::groebner::PolynomialSugar::add(), polybori::groebner::LexBucket::leadExp(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::LiteralFactorization::occursAsLeadOfFactor(), and polybori::groebner::PolynomialSugar::PolynomialSugar().
BoolePolynomial polybori::BoolePolynomial::leadFirst | ( | ) | const [protected] |
Generate a polynomial, whose first term is the leading term.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by lmDeg(), and lmStableHash().
BoolePolynomial::size_type polybori::BoolePolynomial::length | ( | ) | const |
Returns number of terms.
References polybori::CDDInterface< CuddLikeZDD >::length(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::PolynomialSugar::add(), eliminationLength(), eliminationLengthWithDegBound(), fetchTerms(), polybori::groebner::PolynomialSugar::PolynomialSugar(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), and polybori::groebner::GroebnerStrategy::treat_m_p_1_case().
BoolePolynomial::monom_type polybori::BoolePolynomial::lexLead | ( | ) | const |
Get leading term w.r.t. lexicographical order.
References isZero(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial::deg_type polybori::BoolePolynomial::lexLmDeg | ( | ) | const |
Degree of the leading term w.r.t. lexicographical ordering.
References firstBegin(), firstEnd(), isZero(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by polybori::LexOrder::lead(), and polybori::LexOrder::leadExp().
BoolePolynomial::deg_type polybori::BoolePolynomial::lmDeg | ( | ) | const |
Degree of the leading term.
References isZero(), lead(), leadFirst(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), firstDivisors(), polybori::groebner::LiteralFactorization::LiteralFactorization(), lmTotalDeg(), polybori::groebner::nf3_db(), polybori::groebner::nf3_degree_order(), and polybori::groebner::LiteralFactorization::occursAsLeadOfFactor().
set_type polybori::BoolePolynomial::lmDivisors | ( | ) | const [inline] |
Get all divisors of the leading term.
References polybori::CDDInterface< CuddLikeZDD >::firstDivisors().
BoolePolynomial::hash_type polybori::BoolePolynomial::lmStableHash | ( | ) | const |
Hash value of the leading term.
References leadFirst(), PBORI_TRACE_FUNC, and polybori::stable_first_hash_range().
BoolePolynomial::deg_type polybori::BoolePolynomial::lmTotalDeg | ( | ) | const |
Total degree of the leading term.
References lmDeg(), and PBORI_TRACE_FUNC.
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::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::BlockDegRevLexAscOrder::lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), polybori::LexOrder::leadExpIteratorBegin(), polybori::DegRevLexAscOrder::leadExpIteratorBegin(), polybori::DegLexOrder::leadExpIteratorBegin(), polybori::BlockDegRevLexAscOrder::leadExpIteratorBegin(), polybori::LexOrder::leadIteratorBegin(), polybori::DegRevLexAscOrder::leadIteratorBegin(), polybori::DegLexOrder::leadIteratorBegin(), polybori::BlockDegRevLexAscOrder::leadIteratorBegin(), polybori::groebner::ll_red_nf_generic(), operator*=(), operator/=(), and polybori::groebner::LexBucket::updateTailStart().
BoolePolynomial::size_type polybori::BoolePolynomial::nNodes | ( | ) | const |
Number of nodes in the decision diagram.
References polybori::CDDInterface< CuddLikeZDD >::nNodes(), and PBORI_TRACE_FUNC.
BoolePolynomial::size_type polybori::BoolePolynomial::nUsedVariables | ( | ) | const |
Number of variables of the polynomial.
References polybori::CDDInterface< CuddLikeZDD >::nSupport(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::GroebnerStrategy::treatVariablePairs().
polybori::BoolePolynomial::operator set_type | ( | ) | const [inline] |
Casting operator to Boolean set.
bool_type polybori::BoolePolynomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
self& polybori::BoolePolynomial::operator%= | ( | constant_type | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator%= | ( | const monom_type & | rhs | ) |
self& polybori::BoolePolynomial::operator*= | ( | constant_type | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const self & | rhs | ) |
References polybori::dd_multiply_recursively(), diagram(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const monom_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator*= | ( | const exp_type & | rhs | ) |
self& polybori::BoolePolynomial::operator+= | ( | constant_type | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator+= | ( | const self & | rhs | ) |
References PBORI_TRACE_FUNC.
const self& polybori::BoolePolynomial::operator- | ( | ) | const [inline] |
self& polybori::BoolePolynomial::operator-= | ( | const RHSType & | rhs | ) | [inline] |
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const exp_type & | rhs | ) |
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const monom_type & | rhs | ) |
References polybori::dd_divide_recursively(), polybori::BooleMonomial::diagram(), diagram(), polybori::CDDInterface< CuddLikeZDD >::navigation(), navigation(), and PBORI_TRACE_FUNC.
Referenced by operator/=().
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | const self & | rhs | ) |
References operator/=(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial & polybori::BoolePolynomial::operator/= | ( | constant_type | rhs | ) |
References PBORI_TRACE_FUNC, and UNLIKELY.
self& polybori::BoolePolynomial::operator= | ( | constant_type | rhs | ) | [inline] |
bool_type polybori::BoolePolynomial::operator== | ( | constant_type | rhs | ) | const [inline] |
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedBegin | ( | ) | const |
Start of ordering respecting iterator.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::BlockOrderHelper::begin(), polybori::groebner::DegOrderHelper::begin(), and polybori::groebner::red_tail_general().
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedEnd | ( | ) | const |
Finish of ordering respecting iterator.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::BlockOrderHelper::end(), polybori::groebner::DegOrderHelper::end(), and polybori::groebner::red_tail_general().
BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpBegin | ( | ) | const |
Start of ordering respecting exponent iterator.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by print().
BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpEnd | ( | ) | const |
Finish of ordering respecting exponent iterator.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by print().
void polybori::BoolePolynomial::prettyPrint | ( | filename_type | filename | ) | const |
Pretty print to filename.
References polybori::CErrorEnums::io_error, PBORI_TRACE_FUNC, and polybori::CDDInterface< CuddLikeZDD >::prettyPrint().
void polybori::BoolePolynomial::prettyPrint | ( | ) | const |
Pretty print to stdout.
References PBORI_TRACE_FUNC, and polybori::CDDInterface< CuddLikeZDD >::prettyPrint().
BoolePolynomial::ostream_type & polybori::BoolePolynomial::print | ( | ostream_type & | os | ) | const |
Print current polynomial to output stream.
References polybori::dd_print_terms(), isOne(), isZero(), polybori::CDDInterface< CuddLikeZDD >::managerCore(), orderedExpBegin(), orderedExpEnd(), and PBORI_TRACE_FUNC.
Referenced by polybori::operator<<().
BoolePolynomial::bool_type polybori::BoolePolynomial::reducibleBy | ( | const self & | rhs | ) | const [inline] |
Tests whether polynomial can be reduced by right-hand side.
References firstBegin(), firstEnd(), isZero(), and PBORI_TRACE_FUNC.
Referenced by polybori::BooleMonomial::reducibleBy().
ring_type polybori::BoolePolynomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
Referenced by polybori::groebner::do_is_rewriteable(), polybori::LexOrder::lead(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::red_tail_general(), and polybori::groebner::red_tail_generic().
set_type polybori::BoolePolynomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
hash_type polybori::BoolePolynomial::stableHash | ( | ) | const [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(), and PBORI_TRACE_FUNC.
BoolePolynomial::exp_type polybori::BoolePolynomial::usedVariablesExp | ( | ) | const |
Exponent vector of all of variables of the polynomial.
References PBORI_TRACE_FUNC, and polybori::CDDInterface< CuddLikeZDD >::usedIndices().
Referenced by polybori::groebner::CacheManager::insert(), polybori::groebner::LiteralFactorization::LiteralFactorization(), and polybori::groebner::CacheManager::lookup().
friend class BooleMonomial [friend] |
Let BooleMonomial access protected and private members.