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::deg_type deg_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.
deg_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.
deg_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

typedef CTypes::bool_type BooleMonomial::bool_type
typedef CTypes::comp_type BooleMonomial::comp_type

Access to iterator over indices.

Type of Boolean constants.

typedef CTypes::dd_type BooleMonomial::dd_type
typedef CTypes::deg_type BooleMonomial::deg_type
typedef dd_type::easy_equality_property BooleMonomial::easy_equality_property

The property whether the equality check is easy is inherited from dd_type.

Type of exponent vector.

typedef CTypes::hash_type BooleMonomial::hash_type
typedef std::map<self, idx_type, symmetric_composition< std::less<poly_type::navigator>, navigates<poly_type> > > BooleMonomial::idx_map_type

Type for index maps.

typedef CTypes::idx_type BooleMonomial::idx_type
typedef CTypes::integer_type BooleMonomial::integer_type
typedef CTypes::ostream_type BooleMonomial::ostream_type

Type of Boolean polynomials.

Type for Boolean polynomial rings (without ordering).

Generic access to current type.

Type of sets of Boolean variables.

typedef CTypes::size_type BooleMonomial::size_type

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

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

Removes the first variables from monomial.

References BoolePolynomial::diagram(), BoolePolynomial::isConstant(), and BoolePolynomial::navigation().

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(), GroebnerStrategy::treatNormalPairs(), 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 polybori::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 23 Dec 2009 for PolyBoRi by  doxygen 1.6.1