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, size_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::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. | |
size_type | deg () const |
Maximal degree of the polynomial. | |
size_type | lmDeg () const |
Degree of the leading term. | |
size_type | lexLmDeg () const |
Degree of the leading term w.r.t. lexicographical ordering. | |
size_type | totalDeg () const |
Total maximal degree of the polynomial. | |
size_type | lmTotalDeg () const |
Total degree of the leading term. | |
self | gradedPart (size_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 (const char *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 (size_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.
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::size_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(), length(), lmDeg(), and BooleEnv::ordering().
Referenced by eliminationLengthWithDegBound().
BoolePolynomial::size_type BoolePolynomial::eliminationLengthWithDegBound | ( | BoolePolynomial::size_type | garantied_deg_bound | ) | const |
References deg(), eliminationLength(), length(), lmDeg(), 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.
Referenced by polybori::generic_iteration< DegRevLexAscOrder, Iterator >::incrementIterator(), polybori::generic_iteration< DegLexOrder, Iterator >::incrementIterator(), polybori::generic_iteration< DegRevLexAscOrder, Iterator >::leadIterator(), and polybori::generic_iteration< DegLexOrder, Iterator >::leadIterator().
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(), lexLmDeg(), 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(), lmDeg(), PBORI_TRACE_FUNC, reversed_inter_copy(), and terms().
Referenced by lmDivisors().
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(), lexLmDeg(), 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 | ( | size_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 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!=(), 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(), LexOrder::leadExp(), leadExp(), lexLead(), operator!=(), 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::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 lmDeg(), lmDivisors(), and lmStableHash().
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::size_type BoolePolynomial::lexLmDeg | ( | ) | const |
Degree of the leading term w.r.t. lexicographical ordering.
References firstBegin(), firstEnd(), and PBORI_TRACE_FUNC.
Referenced by LexOrder::lead(), and LexOrder::leadExp().
BoolePolynomial::size_type BoolePolynomial::lmDeg | ( | ) | const |
Degree of the leading term.
References lead(), leadFirst(), and PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), firstDivisors(), and lmTotalDeg().
set_type BoolePolynomial::lmDivisors | ( | ) | const [inline] |
Get all divisors of the leading term.
References firstDivisors(), and leadFirst().
Referenced by BooleMonomial::divisors().
BoolePolynomial::hash_type BoolePolynomial::lmStableHash | ( | ) | const |
Hash value of the leading term.
References leadFirst(), PBORI_TRACE_FUNC, and stable_first_hash_range().
BoolePolynomial::size_type BoolePolynomial::lmTotalDeg | ( | ) | const |
Total degree of the leading term.
References lmDeg(), and PBORI_TRACE_FUNC.
navigator BoolePolynomial::navigation | ( | ) | const [inline] |
Navigate through structure.
References CDDInterface< CuddLikeZDD >::navigation().
Referenced by begin(), deg(), degBegin(), expBegin(), genericBegin(), genericExpBegin(), gradedPart(), polybori::generic_iteration< DegRevLexAscOrder, Iterator >::incrementIterator(), polybori::generic_iteration< DegLexOrder, Iterator >::incrementIterator(), isPair(), isSingleton(), isSingletonOrPair(), DegRevLexAscOrder::lead(), DegLexOrder::lead(), BlockDegRevLexAscOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), LexOrder::leadExpIteratorBegin(), DegRevLexAscOrder::leadExpIteratorBegin(), DegLexOrder::leadExpIteratorBegin(), BlockDegRevLexAscOrder::leadExpIteratorBegin(), polybori::generic_iteration< DegRevLexAscOrder, Iterator >::leadIterator(), polybori::generic_iteration< DegLexOrder, Iterator >::leadIterator(), polybori::generic_iteration< LexOrder, Iterator >::leadIterator(), 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 | ( | const char * | filename | ) | const |
Pretty print to filename.
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 polybori::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().
BoolePolynomial::termlist_type BoolePolynomial::terms | ( | ) | const |
BoolePolynomial::size_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.