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 |
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 | 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. | |
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> BoolePolynomial::block_dlex_exp_iterator |
typedef CGenericIter<BlockDegLexOrder, navigator, monom_type> BoolePolynomial::block_dlex_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, exp_type> BoolePolynomial::block_dp_asc_exp_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, monom_type> 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> > BoolePolynomial::decrement_type |
Decrementation functional type.
Iterator type for iterating all monomials (dereferencing to degree).
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> > > BoolePolynomial::idx_map_type |
Type for index maps.
typedef binary_composition< std::plus<size_type>, project_ith<1>, integral_constant<size_type, 1> > BoolePolynomial::increment_type |
Incrementation functional type.
typedef CTypes::manager_ptr BoolePolynomial::manager_ptr |
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> > > BoolePolynomial::poly_vec_map_type |
Type for output of pretty print.
typedef BooleRing BoolePolynomial::ring_type |
Type for Boolean polynomial rings (without ordering).
typedef BoolePolynomial BoolePolynomial::self |
Generic access to current type.
typedef BooleSet BoolePolynomial::set_type |
Type for sets of Boolean variables.
typedef std::vector<monom_type> BoolePolynomial::termlist_type |
Type for lists of terms.
Fix type for treatment of monomials.
BEGIN_NAMESPACE_PBORI BoolePolynomial::BoolePolynomial | ( | ) |
Default constructor.
References PBORI_TRACE_FUNC.
BoolePolynomial::BoolePolynomial | ( | constant_type | isOne | ) | [explicit] |
Construct polynomial from a constant value 0 or 1.
References PBORI_TRACE_FUNC.
BoolePolynomial::BoolePolynomial | ( | constant_type | isOne, | |
const ring_type & | ring | |||
) | [inline] |
Construct polynomial from a constant value 0 or 1.
BoolePolynomial::BoolePolynomial | ( | const dd_type & | rhs | ) | [inline] |
Construct polynomial from decision diagram.
BoolePolynomial::BoolePolynomial | ( | const set_type & | rhs | ) | [inline] |
Construct polynomial from a subset of the powerset over all variables.
Construct polynomial from exponent vector.
References CDDInterface< CuddLikeZDD >::changeAssign(), PBORI_TRACE_FUNC, BooleExponent::rbegin(), and BooleExponent::rend().
Construct polynomial from navigator.
References CCuddNavigator::isValid().
BoolePolynomial::~BoolePolynomial | ( | ) | [inline] |
Destructor.
BoolePolynomial::const_iterator BoolePolynomial::begin | ( | ) | const |
Start of iteration over monomials.
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
Referenced by fetchTerms(), and BooleMonomial::GCDAssign().
BoolePolynomial::monom_type BoolePolynomial::boundedLead | ( | size_type | bound | ) | const |
Get leading term (using upper bound).
References isZero(), BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial::exp_type BoolePolynomial::boundedLeadExp | ( | size_type | bound | ) | const |
Get leading term (using upper bound).
References isZero(), BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial::deg_type BoolePolynomial::deg | ( | ) | const |
Maximal degree of the polynomial.
References dd_cached_degree(), degBegin(), degEnd(), isConstant(), CDDInterface< CuddLikeZDD >::manager(), navigation(), and PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), and totalDeg().
BoolePolynomial::deg_iterator BoolePolynomial::degBegin | ( | ) | const |
Start of degrees.
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
Referenced by deg(), and eliminationLength().
BoolePolynomial::deg_iterator BoolePolynomial::degEnd | ( | ) | const |
const dd_type& BoolePolynomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
Referenced by copyDiagram(), BooleMonomial::diagram(), BooleExponent::divisors(), DegRevLexAscOrder::lead(), DegLexOrder::lead(), BlockDegRevLexAscOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), LexOrder::leadExpIteratorBegin(), DegRevLexAscOrder::leadExpIteratorBegin(), DegLexOrder::leadExpIteratorBegin(), BlockDegRevLexAscOrder::leadExpIteratorBegin(), LexOrder::leadIteratorBegin(), DegRevLexAscOrder::leadIteratorBegin(), DegLexOrder::leadIteratorBegin(), BlockDegRevLexAscOrder::leadIteratorBegin(), BooleMonomial::multiples(), BooleExponent::multiples(), operator*=(), operator/=(), BooleMonomial::popFirst(), and usedVariables().
BoolePolynomial::size_type BoolePolynomial::eliminationLength | ( | ) | const |
References deg(), degBegin(), degEnd(), isZero(), leadDeg(), length(), and BooleEnv::ordering().
Referenced by eliminationLengthWithDegBound().
BoolePolynomial::size_type BoolePolynomial::eliminationLengthWithDegBound | ( | deg_type | garantied_deg_bound | ) | const |
References deg(), eliminationLength(), leadDeg(), length(), and BooleEnv::ordering().
BoolePolynomial::const_iterator BoolePolynomial::end | ( | ) | const |
Finish of iteration over monomials.
References PBORI_TRACE_FUNC.
Referenced by fetchTerms(), and BooleMonomial::GCDAssign().
navigator BoolePolynomial::endOfNavigation | ( | ) | const [inline] |
End of navigation marker.
BoolePolynomial::exp_iterator BoolePolynomial::expBegin | ( | ) | const |
Start of iteration over exponent vectors.
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::exp_iterator BoolePolynomial::expEnd | ( | ) | const |
Finish of iteration over exponent vectors.
References PBORI_TRACE_FUNC.
void 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 BoolePolynomial::firstBegin | ( | ) | const |
Start of first term.
References CDDInterface< CuddLikeZDD >::firstBegin(), and PBORI_TRACE_FUNC.
Referenced by BooleMonomial::begin(), BooleMonomial::deg(), firstDivisors(), BooleVariable::index(), LexOrder::lead(), LexOrder::leadExp(), lexLeadDeg(), and reducibleBy().
BoolePolynomial::set_type BoolePolynomial::firstDivisors | ( | ) | const [protected] |
Get all divisors of the first term.
References CDDInterface< CuddLikeZDD >::emptiness(), firstBegin(), CDDInterface< CuddLikeZDD >::firstDivisors(), firstEnd(), leadDeg(), PBORI_TRACE_FUNC, reversed_inter_copy(), and terms().
Referenced by leadDivisors().
BoolePolynomial::first_iterator BoolePolynomial::firstEnd | ( | ) | const |
Finish of first term.
References CDDInterface< CuddLikeZDD >::firstEnd(), and PBORI_TRACE_FUNC.
Referenced by BooleMonomial::deg(), BooleMonomial::end(), firstDivisors(), LexOrder::lead(), LexOrder::leadExp(), lexLeadDeg(), and reducibleBy().
BoolePolynomial::monom_type BoolePolynomial::firstTerm | ( | ) | const |
Get of first lexicographic term.
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_iterator BoolePolynomial::genericBegin | ( | block_dp_asc_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_iterator BoolePolynomial::genericBegin | ( | block_dlex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_iterator BoolePolynomial::genericBegin | ( | dp_asc_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_iterator BoolePolynomial::genericBegin | ( | dlex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::lex_iterator BoolePolynomial::genericBegin | ( | lex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_iterator BoolePolynomial::genericEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_iterator BoolePolynomial::genericEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_iterator BoolePolynomial::genericEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dlex_iterator BoolePolynomial::genericEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::lex_iterator BoolePolynomial::genericEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_exp_iterator BoolePolynomial::genericExpBegin | ( | block_dp_asc_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_exp_iterator BoolePolynomial::genericExpBegin | ( | block_dlex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_exp_iterator BoolePolynomial::genericExpBegin | ( | dp_asc_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_exp_iterator BoolePolynomial::genericExpBegin | ( | dlex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::lex_exp_iterator BoolePolynomial::genericExpBegin | ( | lex_tag | ) | const |
References CDDInterface< CuddLikeZDD >::managerCore(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dp_asc_exp_iterator BoolePolynomial::genericExpEnd | ( | block_dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_exp_iterator BoolePolynomial::genericExpEnd | ( | block_dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_exp_iterator BoolePolynomial::genericExpEnd | ( | dp_asc_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::dlex_exp_iterator BoolePolynomial::genericExpEnd | ( | dlex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial::lex_exp_iterator BoolePolynomial::genericExpEnd | ( | lex_tag | ) | const |
References PBORI_TRACE_FUNC.
BoolePolynomial BoolePolynomial::gradedPart | ( | deg_type | deg | ) | const |
Get part of given degree.
References dd_graded_part(), CDDInterface< CuddLikeZDD >::manager(), navigation(), and PBORI_TRACE_FUNC.
bool_type BoolePolynomial::hasConstantPart | ( | ) | const [inline] |
Check whether polynomial has term one.
References CDDInterface< CuddLikeZDD >::ownsOne().
hash_type BoolePolynomial::hash | ( | ) | const [inline] |
Get unique hash value (may change from run to run).
References CDDInterface< CuddLikeZDD >::hash().
Referenced by BooleVariable::hash(), and BooleMonomial::hash().
dd_type& BoolePolynomial::internalDiagram | ( | ) | [inline, protected] |
Access to internal decision diagramm structure.
Referenced by BooleMonomial::changeAssign(), BooleMonomial::internalDiagram(), BooleMonomial::operator*=(), and BooleMonomial::operator/=().
bool_type BoolePolynomial::isConstant | ( | ) | const [inline] |
Check whether polynomial is zero or one.
References CDDInterface< CuddLikeZDD >::isConstant().
Referenced by deg(), BooleMonomial::firstIndex(), BooleMonomial::isConstant(), and BooleMonomial::popFirst().
bool_type BoolePolynomial::isOne | ( | ) | const [inline] |
Check whether polynomial is constant one.
References CDDInterface< CuddLikeZDD >::blankness().
Referenced by BooleMonomial::GCDAssign(), BooleMonomial::isOne(), BooleMonomial::LCMDeg(), LexOrder::leadExp(), operator==(), and print().
bool_type BoolePolynomial::isPair | ( | ) | const [inline] |
Test, whether we have two terms only.
References dd_is_pair(), and navigation().
bool_type BoolePolynomial::isSingleton | ( | ) | const [inline] |
Test, whether we have one term only.
References dd_is_singleton(), and navigation().
bool_type BoolePolynomial::isSingletonOrPair | ( | ) | const [inline] |
Test, whether we have one or two terms only.
References dd_is_singleton_or_pair(), and navigation().
bool_type BoolePolynomial::isZero | ( | ) | const [inline] |
Check whether polynomial is constant zero.
References CDDInterface< CuddLikeZDD >::emptiness().
Referenced by BooleMonomial::BooleMonomial(), boundedLead(), boundedLeadExp(), eliminationLength(), BooleMonomial::GCDAssign(), BooleMonomial::LCMDeg(), lead(), leadDeg(), LexOrder::leadExp(), leadExp(), lexLead(), lexLeadDeg(), BooleMonomial::operator/=(), operator==(), print(), and reducibleBy().
BoolePolynomial::monom_type BoolePolynomial::lead | ( | ) | const |
Get leading term.
References isZero(), BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial::deg_type BoolePolynomial::leadDeg | ( | ) | const |
Degree of the leading term.
References isZero(), lead(), leadFirst(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), firstDivisors(), and leadTotalDeg().
set_type BoolePolynomial::leadDivisors | ( | ) | const [inline] |
Get all divisors of the leading term.
References firstDivisors(), and leadFirst().
Referenced by BooleMonomial::divisors().
BoolePolynomial::exp_type BoolePolynomial::leadExp | ( | ) | const |
Get leading term.
References isZero(), BooleEnv::ordering(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial BoolePolynomial::leadFirst | ( | ) | const [protected] |
Generate a polynomial, whose first term is the leading term.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by leadDeg(), leadDivisors(), and leadStableHash().
BoolePolynomial::hash_type BoolePolynomial::leadStableHash | ( | ) | const |
Hash value of the leading term.
References leadFirst(), PBORI_TRACE_FUNC, and stable_first_hash_range().
BoolePolynomial::deg_type BoolePolynomial::leadTotalDeg | ( | ) | const |
Total degree of the leading term.
References leadDeg(), and PBORI_TRACE_FUNC.
BoolePolynomial::size_type BoolePolynomial::length | ( | ) | const |
Returns number of terms.
References CDDInterface< CuddLikeZDD >::length(), and PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), fetchTerms(), and ShorterEliminationLengthModified::operator()().
BoolePolynomial::monom_type BoolePolynomial::lexLead | ( | ) | const |
Get leading term w.r.t. lexicographical order.
References isZero(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial::deg_type BoolePolynomial::lexLeadDeg | ( | ) | const |
Degree of the leading term w.r.t. lexicographical ordering.
References firstBegin(), firstEnd(), isZero(), PBORI_TRACE_FUNC, and UNLIKELY.
Referenced by LexOrder::lead(), and LexOrder::leadExp().
navigator BoolePolynomial::navigation | ( | ) | const [inline] |
Navigate through structure.
References CDDInterface< CuddLikeZDD >::navigation().
Referenced by begin(), deg(), degBegin(), expBegin(), genericBegin(), genericExpBegin(), gradedPart(), isPair(), isSingleton(), isSingletonOrPair(), DegRevLexAscOrder::lead(), DegLexOrder::lead(), BlockDegRevLexAscOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), LexOrder::leadExpIteratorBegin(), DegRevLexAscOrder::leadExpIteratorBegin(), DegLexOrder::leadExpIteratorBegin(), BlockDegRevLexAscOrder::leadExpIteratorBegin(), LexOrder::leadIteratorBegin(), DegRevLexAscOrder::leadIteratorBegin(), DegLexOrder::leadIteratorBegin(), BlockDegRevLexAscOrder::leadIteratorBegin(), operator*=(), operator/=(), BooleMonomial::popFirst(), and BooleMonomial::stableHash().
BoolePolynomial::size_type BoolePolynomial::nNodes | ( | ) | const |
Number of nodes in the decision diagram.
References CDDInterface< CuddLikeZDD >::nNodes(), and PBORI_TRACE_FUNC.
Referenced by BooleMonomial::deg().
BoolePolynomial::size_type BoolePolynomial::nUsedVariables | ( | ) | const |
Number of variables of the polynomial.
References CDDInterface< CuddLikeZDD >::nSupport(), and PBORI_TRACE_FUNC.
BoolePolynomial::operator set_type | ( | ) | const [inline] |
Casting operator to Boolean set.
bool_type BoolePolynomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
self& BoolePolynomial::operator%= | ( | constant_type | rhs | ) | [inline] |
BoolePolynomial & BoolePolynomial::operator%= | ( | const monom_type & | rhs | ) |
self& BoolePolynomial::operator*= | ( | constant_type | rhs | ) | [inline] |
References ring(), and BooleRing::zero().
BoolePolynomial & BoolePolynomial::operator*= | ( | const self & | rhs | ) |
References dd_multiply_recursively(), diagram(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial & BoolePolynomial::operator*= | ( | const exp_type & | rhs | ) |
BoolePolynomial & BoolePolynomial::operator*= | ( | const monom_type & | rhs | ) |
self& BoolePolynomial::operator+= | ( | constant_type | rhs | ) | [inline] |
References BooleRing::one(), and ring().
BoolePolynomial & BoolePolynomial::operator+= | ( | const self & | rhs | ) |
References PBORI_TRACE_FUNC.
Referenced by operator-=().
const self& BoolePolynomial::operator- | ( | ) | const [inline] |
self& BoolePolynomial::operator-= | ( | const RHSType & | rhs | ) | [inline] |
References operator+=().
BoolePolynomial & BoolePolynomial::operator/= | ( | constant_type | rhs | ) |
References PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial & BoolePolynomial::operator/= | ( | const self & | rhs | ) |
References operator/=(), PBORI_TRACE_FUNC, and UNLIKELY.
BoolePolynomial & BoolePolynomial::operator/= | ( | const exp_type & | rhs | ) |
BoolePolynomial & BoolePolynomial::operator/= | ( | const monom_type & | rhs | ) |
References dd_divide_recursively(), BooleMonomial::diagram(), diagram(), CDDInterface< CuddLikeZDD >::navigation(), navigation(), and PBORI_TRACE_FUNC.
Referenced by operator/=().
self& BoolePolynomial::operator= | ( | constant_type | rhs | ) | [inline] |
bool_type BoolePolynomial::operator== | ( | constant_type | rhs | ) | const [inline] |
BoolePolynomial::ordered_iterator BoolePolynomial::orderedBegin | ( | ) | const |
Start of ordering respecting iterator.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
BoolePolynomial::ordered_iterator BoolePolynomial::orderedEnd | ( | ) | const |
Finish of ordering respecting iterator.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
BoolePolynomial::ordered_exp_iterator BoolePolynomial::orderedExpBegin | ( | ) | const |
Start of ordering respecting exponent iterator.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by print().
BoolePolynomial::ordered_exp_iterator BoolePolynomial::orderedExpEnd | ( | ) | const |
Finish of ordering respecting exponent iterator.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by print().
void BoolePolynomial::prettyPrint | ( | filename_type | filename | ) | const |
Pretty print to filename.
References CErrorEnums::io_error, PBORI_TRACE_FUNC, and CDDInterface< CuddLikeZDD >::prettyPrint().
void BoolePolynomial::prettyPrint | ( | ) | const |
Pretty print to stdout.
References PBORI_TRACE_FUNC, and CDDInterface< CuddLikeZDD >::prettyPrint().
BoolePolynomial::ostream_type & BoolePolynomial::print | ( | ostream_type & | os | ) | const |
Print current polynomial to output stream.
References dd_print_terms(), isOne(), isZero(), CDDInterface< CuddLikeZDD >::managerCore(), orderedExpBegin(), orderedExpEnd(), and PBORI_TRACE_FUNC.
Referenced by operator<<().
BoolePolynomial::bool_type 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 BooleMonomial::reducibleBy().
ring_type BoolePolynomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
References CDDInterface< CuddLikeZDD >::manager().
Referenced by LexOrder::lead(), operator*=(), operator+=(), BooleVariable::ring(), and BooleMonomial::ring().
set_type BoolePolynomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
Referenced by BooleVariable::set(), and BooleMonomial::set().
hash_type BoolePolynomial::stableHash | ( | ) | const [inline] |
Get hash value, which is reproducible.
References CDDInterface< CuddLikeZDD >::stableHash().
Referenced by BooleVariable::stableHash().
BoolePolynomial::termlist_type BoolePolynomial::terms | ( | ) | const |
BoolePolynomial::deg_type BoolePolynomial::totalDeg | ( | ) | const |
Total maximal degree of the polynomial.
References deg(), and PBORI_TRACE_FUNC.
BoolePolynomial::monom_type BoolePolynomial::usedVariables | ( | ) | const |
Set of variables of the polynomial.
References diagram(), and PBORI_TRACE_FUNC.
BoolePolynomial::exp_type BoolePolynomial::usedVariablesExp | ( | ) | const |
Exponent vector of all of variables of the polynomial.
References PBORI_TRACE_FUNC, and CDDInterface< CuddLikeZDD >::usedIndices().
friend class BooleMonomial [friend] |
Let BooleMonomial access protected and private members.