BooleMonomial Class Reference

This class is just a wrapper for using variables from cudd's decicion diagram. More...

#include <BooleMonomial.h>

List of all members.

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).
selfchangeAssign (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.
selfLCMAssign (const self &)
 Compute theleast common multiple and assign.
self LCM (const self &) const
 Compute the greatest common divisor.
selfGCDAssign (const self &)
 Compute the greatest common divisor and assign.
self GCD (const self &) const
 Compute the greatest common divisor.
const dd_typediagram () const
 Read-only access to internal decision diagramm structure.
set_type set () const
 Get corresponding subset of of the powerset over all variables.
selfpopFirst ()
 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

selfoperator*= (const self &)
selfoperator/= (const self &)
selfoperator*= (const var_type &)
selfoperator/= (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_typeinternalDiagram ()
 Access to internal decision diagramm structure.
 BooleMonomial (const set_type &rhs)
 Construct from decision diagram.

Friends

class CDDOperations
class COrderBase
class CTermGeneratorBase

Detailed Description

This class is just a wrapper for using variables from cudd's decicion diagram.

Note:
BooleMonomial is actually a specialization of BoolePolynomial with a special constructor.

Member Typedef Documentation

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.

Type for index maps.

Type of Boolean polynomials.

Type for Boolean polynomial rings (without ordering).

Generic access to current type.

Type of sets of Boolean variables.

Type of Boolean variables.

Access to iterator over variables.


Constructor & Destructor Documentation

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.

BooleMonomial::BooleMonomial ( const exp_type rhs,
const ring_type ring 
) [inline]

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().


Member Function Documentation

const_iterator BooleMonomial::begin (  )  const [inline]
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.

Todo:
optimal, if stored, else much too complicated, as it will probably use cache lookups

References BoolePolynomial::firstBegin(), BoolePolynomial::firstEnd(), and BoolePolynomial::nNodes().

Referenced by LCMDeg(), and size().

const dd_type& BooleMonomial::diagram (  )  const [inline]
set_type BooleMonomial::divisors (  )  const [inline]

Divisors of the monomial.

References BoolePolynomial::lmDivisors().

const_iterator BooleMonomial::end (  )  const [inline]
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

Compute the greatest common divisor.

References PBORI_TRACE_FUNC.

Referenced by GCD().

BooleMonomial & BooleMonomial::GCDAssign ( const self rhs  ) 
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]
bool_type BooleMonomial::isOne (  )  const [inline]
BooleMonomial BooleMonomial::LCM ( const self rhs  )  const

Compute the greatest common divisor.

References PBORI_TRACE_FUNC.

Referenced by LCM().

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]
bool_type BooleMonomial::operator!= ( const self rhs  )  const [inline]
BooleMonomial & BooleMonomial::operator*= ( const var_type rhs  ) 
BooleMonomial & BooleMonomial::operator*= ( const self rhs  ) 
BooleMonomial & BooleMonomial::operator/= ( const var_type rhs  ) 
BooleMonomial & BooleMonomial::operator/= ( const self rhs  ) 
bool_type BooleMonomial::operator== ( constant_type  rhs  )  const [inline]
bool_type BooleMonomial::operator== ( const self rhs  )  const [inline]
self& BooleMonomial::popFirst (  )  [inline]
BooleMonomial::bool_type BooleMonomial::reducibleBy ( const var_type rhs  )  const
bool_type BooleMonomial::reducibleBy ( const self rhs  )  const [inline]

Test for reducibility.

References BoolePolynomial::reducibleBy().

Referenced by operator*=().

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]

Start iteration over variables.

References begin(), and ring().

variable_iterator BooleMonomial::variableEnd (  )  const [inline]

Finish iteration over variables.

References end(), and ring().


Friends And Related Function Documentation

friend class CDDOperations [friend]
friend class COrderBase [friend]
friend class CTermGeneratorBase [friend]

The documentation for this class was generated from the following files:
Generated on Wed May 5 21:35:35 2010 for PolyBoRi by  doxygen 1.6.3