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 | 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> BoolePolynomial::block_dlex_exp_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, exp_type> BoolePolynomial::block_dp_asc_exp_iterator |
typedef CGenericIter<BlockDegRevLexAscOrder, navigator, monom_type> BoolePolynomial::block_dp_asc_iterator |
typedef CTypes::bool_type BoolePolynomial::bool_type |
Iterator type for iterating over all monomials.
Type for wrapping integer and bool values.
typedef CTypes::dd_type BoolePolynomial::dd_type |
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).
typedef CTypes::deg_type BoolePolynomial::deg_type |
typedef dd_type::easy_equality_property BoolePolynomial::easy_equality_property |
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.
typedef dd_type::filename_type BoolePolynomial::filename_type |
Type for naming file for pretty print.
typedef dd_type::first_iterator BoolePolynomial::first_iterator |
Iterator type for iterating over indices of the leading term.
typedef CTypes::hash_type BoolePolynomial::hash_type |
typedef std::map<self, idx_type, symmetric_composition< std::less<navigator>, navigates<self> > > BoolePolynomial::idx_map_type |
Type for index maps.
typedef CTypes::idx_type BoolePolynomial::idx_type |
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 |
typedef CTypes::manager_reference BoolePolynomial::manager_reference |
typedef CTypes::manager_type BoolePolynomial::manager_type |
Fix type for treatment of monomials
typedef dd_type::navigator BoolePolynomial::navigator |
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 CTypes::ostream_type BoolePolynomial::ostream_type |
typedef std::map<self, std::vector<self>, symmetric_composition< std::less<navigator>, navigates<self> > > BoolePolynomial::poly_vec_map_type |
typedef dd_type::pretty_out_type BoolePolynomial::pretty_out_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 CTypes::size_type BoolePolynomial::size_type |
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 PBORI_TRACE_FUNC, BooleExponent::rbegin(), and BooleExponent::rend().
Construct polynomial from navigator.
BoolePolynomial::~BoolePolynomial | ( | ) | [inline] |
Destructor.
BoolePolynomial::const_iterator BoolePolynomial::begin | ( | ) | const |
Start of iteration over monomials.
References 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 polybori::dd_cached_degree(), degBegin(), degEnd(), isConstant(), 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 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(), BlockDegLexOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), LexOrder::leadExpIteratorBegin(), DegRevLexAscOrder::leadExpIteratorBegin(), DegLexOrder::leadExpIteratorBegin(), BlockDegRevLexAscOrder::leadExpIteratorBegin(), BlockDegLexOrder::leadExpIteratorBegin(), LexOrder::leadIteratorBegin(), DegRevLexAscOrder::leadIteratorBegin(), DegLexOrder::leadIteratorBegin(), BlockDegRevLexAscOrder::leadIteratorBegin(), BlockDegLexOrder::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 | ( | deg_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.
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 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 firstBegin(), firstEnd(), lmDeg(), PBORI_TRACE_FUNC, reversed_inter_copy(), and terms().
Referenced by lmDivisors().
BoolePolynomial::first_iterator BoolePolynomial::firstEnd | ( | ) | const |
Finish of first term.
References 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 navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_iterator BoolePolynomial::genericBegin | ( | block_dlex_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_iterator BoolePolynomial::genericBegin | ( | dp_asc_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_iterator BoolePolynomial::genericBegin | ( | dlex_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::lex_iterator BoolePolynomial::genericBegin | ( | lex_tag | ) | const |
References 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 navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::block_dlex_exp_iterator BoolePolynomial::genericExpBegin | ( | block_dlex_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dp_asc_exp_iterator BoolePolynomial::genericExpBegin | ( | dp_asc_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::dlex_exp_iterator BoolePolynomial::genericExpBegin | ( | dlex_tag | ) | const |
References navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial::lex_exp_iterator BoolePolynomial::genericExpBegin | ( | lex_tag | ) | const |
References 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 polybori::dd_graded_part(), navigation(), and PBORI_TRACE_FUNC.
bool_type BoolePolynomial::hasConstantPart | ( | ) | const [inline] |
Check whether polynomial has term one.
hash_type BoolePolynomial::hash | ( | ) | const [inline] |
Get unique hash value (may change from run to run).
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.
Referenced by deg(), BooleMonomial::firstIndex(), BooleMonomial::isConstant(), and BooleMonomial::popFirst().
bool_type BoolePolynomial::isOne | ( | ) | const [inline] |
Check whether polynomial is constant one.
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.
Referenced by BooleMonomial::BooleMonomial(), boundedLead(), boundedLeadExp(), eliminationLength(), BooleMonomial::GCDAssign(), BooleMonomial::LCMDeg(), lead(), LexOrder::leadExp(), leadExp(), lexLead(), lexLmDeg(), lmDeg(), 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 PBORI_TRACE_FUNC.
Referenced by eliminationLength(), eliminationLengthWithDegBound(), and fetchTerms().
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::lexLmDeg | ( | ) | 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().
BoolePolynomial::deg_type BoolePolynomial::lmDeg | ( | ) | const |
Degree of the leading term.
References isZero(), lead(), leadFirst(), PBORI_TRACE_FUNC, and UNLIKELY.
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 polybori::stable_first_hash_range().
BoolePolynomial::deg_type BoolePolynomial::lmTotalDeg | ( | ) | const |
Total degree of the leading term.
References lmDeg(), and PBORI_TRACE_FUNC.
navigator BoolePolynomial::navigation | ( | ) | const [inline] |
Navigate through structure.
Referenced by begin(), deg(), degBegin(), expBegin(), genericBegin(), genericExpBegin(), gradedPart(), isPair(), isSingleton(), isSingletonOrPair(), DegRevLexAscOrder::lead(), DegLexOrder::lead(), BlockDegRevLexAscOrder::lead(), BlockDegLexOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), LexOrder::leadExpIteratorBegin(), DegRevLexAscOrder::leadExpIteratorBegin(), DegLexOrder::leadExpIteratorBegin(), BlockDegRevLexAscOrder::leadExpIteratorBegin(), BlockDegLexOrder::leadExpIteratorBegin(), LexOrder::leadIteratorBegin(), DegRevLexAscOrder::leadIteratorBegin(), DegLexOrder::leadIteratorBegin(), BlockDegRevLexAscOrder::leadIteratorBegin(), BlockDegLexOrder::leadIteratorBegin(), operator*=(), operator/=(), BooleMonomial::popFirst(), and BooleMonomial::stableHash().
BoolePolynomial::size_type BoolePolynomial::nNodes | ( | ) | const |
Number of nodes in the decision diagram.
References PBORI_TRACE_FUNC.
Referenced by BooleMonomial::deg().
BoolePolynomial::size_type BoolePolynomial::nUsedVariables | ( | ) | const |
Number of variables of the polynomial.
References 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 | ) |
References BooleMonomial::diagram(), and PBORI_TRACE_FUNC.
self& BoolePolynomial::operator*= | ( | constant_type | rhs | ) | [inline] |
References ring(), and BooleRing::zero().
BoolePolynomial & BoolePolynomial::operator*= | ( | const self & | rhs | ) |
References polybori::dd_multiply_recursively(), diagram(), navigation(), and PBORI_TRACE_FUNC.
BoolePolynomial & BoolePolynomial::operator*= | ( | const exp_type & | rhs | ) |
BoolePolynomial & BoolePolynomial::operator*= | ( | const monom_type & | rhs | ) |
References polybori::dd_multiply_recursively(), BooleMonomial::diagram(), diagram(), navigation(), and PBORI_TRACE_FUNC.
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 polybori::dd_divide_recursively(), BooleMonomial::diagram(), diagram(), 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 PBORI_TRACE_FUNC.
void BoolePolynomial::prettyPrint | ( | ) | const |
Pretty print to stdout.
References PBORI_TRACE_FUNC.
BoolePolynomial::ostream_type & BoolePolynomial::print | ( | ostream_type & | os | ) | const |
Print current polynomial to output stream.
References polybori::dd_print_terms(), isOne(), isZero(), 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.
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.
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.
friend class BooleMonomial [friend] |
Let BooleMonomial access protected and private members.