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] |