This class is just a wrapper for using variables from cudd's decicion diagram.
More...
#include <BooleMonomial.h>
Public Types | |
| typedef BooleMonomial | self |
| Generic access to current type. | |
| typedef BoolePolynomial | poly_type |
| Type of Boolean polynomials. | |
| typedef poly_type::var_type | var_type |
| Type of Boolean variables. | |
| typedef poly_type::constant_type | constant_type |
| Type of Boolean constants. | |
| typedef poly_type::set_type | set_type |
| Type of sets of Boolean variables. | |
| typedef poly_type::exp_type | exp_type |
| Type of exponent vector. | |
| typedef poly_type::ring_type | ring_type |
| Type for Boolean polynomial rings (without ordering). | |
| typedef poly_type::first_iterator | const_iterator |
| Access to iterator over indices. | |
| typedef CVariableIter < const_iterator, var_type > | variable_iterator |
| Access to iterator over variables. | |
| typedef std::map< self, idx_type, symmetric_composition < std::less < poly_type::navigator > , navigates< poly_type > > > | idx_map_type |
| Type for index maps. | |
| typedef dd_type::easy_equality_property | easy_equality_property |
| The property whether the equality check is easy is inherited from dd_type. | |
Adopt global type definitions | |
| typedef CTypes::dd_type | dd_type |
| typedef CTypes::size_type | size_type |
| typedef CTypes::idx_type | idx_type |
| typedef CTypes::hash_type | hash_type |
| typedef CTypes::bool_type | bool_type |
| typedef CTypes::comp_type | comp_type |
| typedef CTypes::integer_type | integer_type |
| typedef CTypes::ostream_type | ostream_type |
Public Member Functions | |
| BooleMonomial () | |
| Default Constructor (Constructs monomial one of the active ring). | |
| BooleMonomial (const self &rhs) | |
| Copy constructor. | |
| BooleMonomial (const var_type &rhs) | |
| Construct from Boolean variable. | |
| BooleMonomial (const exp_type &rhs, const ring_type &ring) | |
| Construct from exponent vector. | |
| BooleMonomial (const ring_type &ring) | |
| Construct from given ring. | |
| ~BooleMonomial () | |
| Destructor. | |
| operator const BoolePolynomial & () const | |
| Casting operator. | |
| exp_type | exp () const |
| Get exponent vector. | |
| const_iterator | begin () const |
| Start iteration over indices. | |
| const_iterator | end () const |
| Finish iteration over indices. | |
| variable_iterator | variableBegin () const |
| Start iteration over variables. | |
| variable_iterator | variableEnd () const |
| Finish iteration over variables. | |
| size_type | deg () const |
| Degree of the monomial. | |
| size_type | size () const |
| Size of the exponents. | |
| set_type | divisors () const |
| Divisors of the monomial. | |
| set_type | multiples (const self &) const |
| multiples of the monomial wrt. given monomial | |
| hash_type | stableHash () const |
| Hash value of the monomial. | |
| hash_type | hash () const |
| Get unique hash value (valid only per runtime). | |
| self & | changeAssign (idx_type) |
| Substitute variable with index idx by its complement and assign. | |
| self | change (idx_type) const |
| Substitute variable with index idx by its complement. | |
| bool_type | reducibleBy (const self &rhs) const |
| Test for reducibility. | |
| bool_type | reducibleBy (const var_type &rhs) const |
| comp_type | compare (const self &) const |
| Compare with rhs monomial and return comparision code. | |
| size_type | LCMDeg (const self &) const |
| Degree of the least common multiple. | |
| self & | LCMAssign (const self &) |
| Compute theleast common multiple and assign. | |
| self | LCM (const self &) const |
| Compute the greatest common divisor. | |
| self & | GCDAssign (const self &) |
| Compute the greatest common divisor and assign. | |
| self | GCD (const self &) const |
| Compute the greatest common divisor. | |
| 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. | |
| self & | popFirst () |
| Removes the first variables from monomial. | |
| var_type | firstVariable () const |
| Get first variable in monomial. | |
| idx_type | firstIndex () const |
| Get first index in monomial. | |
| ring_type | ring () const |
| Access ring, where this belongs to. | |
Arithmetical operations | |
| self & | operator*= (const self &) |
| self & | operator/= (const self &) |
| self & | operator*= (const var_type &) |
| self & | operator/= (const var_type &) |
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 |
| bool_type | isOne () const |
| bool_type | isConstant () const |
Protected Member Functions | |
| dd_type & | internalDiagram () |
| Access to internal decision diagramm structure. | |
| BooleMonomial (const set_type &rhs) | |
| Construct from decision diagram. | |
Friends | |
| class | CDDOperations |
| class | COrderBase |
| class | CTermGeneratorBase |
This class is just a wrapper for using variables from cudd's decicion diagram.
BooleMonomial is actually a specialization of BoolePolynomial with a special constructor. Access to iterator over indices.
Type of Boolean constants.
The property whether the equality check is easy is inherited from dd_type.
Type of exponent vector.
| typedef std::map<self, idx_type, symmetric_composition< std::less<poly_type::navigator>, navigates<poly_type> > > BooleMonomial::idx_map_type |
Type for index maps.
Type of Boolean polynomials.
Type for Boolean polynomial rings (without ordering).
| typedef BooleMonomial BooleMonomial::self |
Generic access to current type.
Type of sets of Boolean variables.
Type of Boolean variables.
Access to iterator over variables.
| BooleMonomial::BooleMonomial | ( | ) | [inline] |
Default Constructor (Constructs monomial one of the active ring).
| BooleMonomial::BooleMonomial | ( | const self & | rhs | ) | [inline] |
Copy constructor.
| BooleMonomial::BooleMonomial | ( | const var_type & | rhs | ) |
Construct from Boolean variable.
References PBORI_TRACE_FUNC.
Construct from exponent vector.
| BooleMonomial::BooleMonomial | ( | const ring_type & | ring | ) | [inline] |
Construct from given ring.
| BooleMonomial::~BooleMonomial | ( | ) | [inline] |
Destructor.
| BooleMonomial::BooleMonomial | ( | const set_type & | rhs | ) | [inline, protected] |
Construct from decision diagram.
Construct from decision diagram
References BoolePolynomial::isZero().
| const_iterator BooleMonomial::begin | ( | ) | const [inline] |
Start iteration over indices.
References BoolePolynomial::firstBegin().
Referenced by BlockDegRevLexAscOrder::compare(), polybori::BlockDegLexOrder::compare(), firstIndex(), GCDAssign(), BooleExponent::get(), LCMDeg(), BooleExponent::operator=(), BooleExponent::reducibleBy(), and variableBegin().
| BooleMonomial BooleMonomial::change | ( | idx_type | idx | ) | const |
Substitute variable with index idx by its complement.
References PBORI_TRACE_FUNC.
| BooleMonomial & BooleMonomial::changeAssign | ( | idx_type | idx | ) |
Substitute variable with index idx by its complement and assign.
References CDDInterface< CuddLikeZDD >::changeAssign(), BoolePolynomial::internalDiagram(), and PBORI_TRACE_FUNC.
Referenced by GCDAssign(), and operator*=().
| BooleMonomial::comp_type BooleMonomial::compare | ( | const self & | rhs | ) | const |
Compare with rhs monomial and return comparision code.
References BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by operator<(), operator<=(), operator>(), and operator>=().
| size_type BooleMonomial::deg | ( | ) | const [inline] |
Degree of the monomial.
References BoolePolynomial::firstBegin(), BoolePolynomial::firstEnd(), and BoolePolynomial::nNodes().
| const dd_type& BooleMonomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
References BoolePolynomial::diagram().
Referenced by BooleSet::add(), BooleSet::divisorsOf(), BooleSet::hasTermOfVariables(), multiples(), BoolePolynomial::operator%=(), BoolePolynomial::operator*=(), BoolePolynomial::operator/=(), and BooleSet::owns().
| set_type BooleMonomial::divisors | ( | ) | const [inline] |
Divisors of the monomial.
References BoolePolynomial::lmDivisors().
| const_iterator BooleMonomial::end | ( | ) | const [inline] |
Finish iteration over indices.
References BoolePolynomial::firstEnd().
Referenced by BlockDegRevLexAscOrder::compare(), polybori::BlockDegLexOrder::compare(), GCDAssign(), BooleExponent::get(), LCMDeg(), BooleExponent::operator=(), BooleExponent::reducibleBy(), and variableEnd().
| BooleMonomial::exp_type BooleMonomial::exp | ( | ) | const |
Get exponent vector.
References BooleExponent::get(), and PBORI_TRACE_FUNC.
| idx_type BooleMonomial::firstIndex | ( | ) | const [inline] |
Get first index in monomial.
References begin(), and BoolePolynomial::isConstant().
Referenced by firstVariable().
| BooleMonomial::var_type BooleMonomial::firstVariable | ( | ) | const |
Get first variable in monomial.
References firstIndex(), PBORI_TRACE_FUNC, and ring().
| BooleMonomial BooleMonomial::GCD | ( | const self & | rhs | ) | const |
| BooleMonomial & BooleMonomial::GCDAssign | ( | const self & | rhs | ) |
Compute the greatest common divisor and assign.
References BoolePolynomial::begin(), begin(), changeAssign(), BoolePolynomial::end(), end(), BoolePolynomial::isOne(), BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
| hash_type BooleMonomial::hash | ( | ) | const [inline] |
Get unique hash value (valid only per runtime).
References BoolePolynomial::hash().
| dd_type& BooleMonomial::internalDiagram | ( | ) | [inline, protected] |
Access to internal decision diagramm structure.
References BoolePolynomial::internalDiagram().
| bool_type BooleMonomial::isConstant | ( | ) | const [inline] |
References BoolePolynomial::isConstant().
| bool_type BooleMonomial::isOne | ( | ) | const [inline] |
References BoolePolynomial::isOne().
| BooleMonomial BooleMonomial::LCM | ( | const self & | rhs | ) | const |
| BooleMonomial & BooleMonomial::LCMAssign | ( | const self & | rhs | ) |
Compute theleast common multiple and assign.
References PBORI_TRACE_FUNC.
| BooleMonomial::size_type BooleMonomial::LCMDeg | ( | const self & | rhs | ) | const |
Degree of the least common multiple.
References begin(), deg(), end(), BoolePolynomial::isOne(), BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
| BooleMonomial::set_type BooleMonomial::multiples | ( | const self & | monom | ) | const |
multiples of the monomial wrt. given monomial
References diagram(), BoolePolynomial::diagram(), and PBORI_TRACE_FUNC.
| BooleMonomial::operator const BoolePolynomial & | ( | ) | const [inline] |
Casting operator.
| bool_type BooleMonomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
| BooleMonomial & BooleMonomial::operator*= | ( | const var_type & | rhs | ) |
References changeAssign(), BooleVariable::index(), PBORI_TRACE_FUNC, and reducibleBy().
| BooleMonomial & BooleMonomial::operator*= | ( | const self & | rhs | ) |
| BooleMonomial & BooleMonomial::operator/= | ( | const var_type & | rhs | ) |
| BooleMonomial & BooleMonomial::operator/= | ( | const self & | rhs | ) |
References BoolePolynomial::isZero(), CErrorEnums::monomial_zero, PBORI_TRACE_FUNC, and UNLIKELY.
| bool_type BooleMonomial::operator== | ( | constant_type | rhs | ) | const [inline] |
| self& BooleMonomial::popFirst | ( | ) | [inline] |
Removes the first variables from monomial.
References BoolePolynomial::diagram(), BoolePolynomial::isConstant(), CDDInterface< CuddLikeZDD >::manager(), and BoolePolynomial::navigation().
| BooleMonomial::bool_type BooleMonomial::reducibleBy | ( | const var_type & | rhs | ) | const |
References PBORI_TRACE_FUNC, and BoolePolynomial::reducibleBy().
| ring_type BooleMonomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
References BoolePolynomial::ring().
Referenced by firstVariable(), variableBegin(), and variableEnd().
| set_type BooleMonomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
References BoolePolynomial::set().
Referenced by BoolePolyRing::activate().
| size_type BooleMonomial::size | ( | ) | const [inline] |
Size of the exponents.
References deg().
Referenced by BooleExponent::get(), and BooleExponent::operator=().
| hash_type BooleMonomial::stableHash | ( | ) | const [inline] |
Hash value of the monomial.
References BoolePolynomial::navigation(), and stable_first_hash_range().
| variable_iterator BooleMonomial::variableBegin | ( | ) | const [inline] |
| variable_iterator BooleMonomial::variableEnd | ( | ) | const [inline] |
friend class CDDOperations [friend] |
friend class COrderBase [friend] |
friend class CTermGeneratorBase [friend] |
1.6.3