polybori::BooleMonomial Class Reference

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

#include <BooleMonomial.h>

Inheritance diagram for polybori::BooleMonomial:

polybori::CAuxTypes

List of all members.

Public Types

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 poly_type::dd_type dd_type
typedef poly_type::integer_type integer_type
 Type for integer numbers.
typedef poly_type::ostream_type ostream_type
 Type for out-stream.

Public Member Functions

 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).
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 the least common multiple and assign.
self LCM (const self &) const
 Compute the least common multiple.
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
const ring_typering () 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 COrderingBase
class CTermGeneratorBase
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

Type of Boolean polynomials.

Type for integer numbers.

Reimplemented from polybori::CAuxTypes.

Type for out-stream.

Reimplemented from polybori::CAuxTypes.

Type of Boolean variables.

Type of Boolean constants.

Type of sets of Boolean variables.

Type of exponent vector.

Type for Boolean polynomial rings (without ordering).

Access to iterator over indices.

Access to iterator over variables.

Type for index maps.

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


Constructor & Destructor Documentation

polybori::BooleMonomial::BooleMonomial ( const self rhs  )  [inline]

Copy constructor.

polybori::BooleMonomial::BooleMonomial ( const var_type rhs  ) 

Construct from Boolean variable.

References PBORI_TRACE_FUNC.

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

Construct from exponent vector.

polybori::BooleMonomial::BooleMonomial ( const ring_type ring  )  [inline]

Construct from given ring.

polybori::BooleMonomial::~BooleMonomial (  )  [inline]

Destructor.

polybori::BooleMonomial::BooleMonomial ( const set_type rhs  )  [inline, protected]

Construct from decision diagram.

References PBORI_ASSERT.


Member Function Documentation

polybori::BooleMonomial::operator const BoolePolynomial & (  )  const [inline]

Casting operator.

BooleMonomial::exp_type polybori::BooleMonomial::exp (  )  const

const_iterator polybori::BooleMonomial::begin (  )  const [inline]

const_iterator polybori::BooleMonomial::end (  )  const [inline]

variable_iterator polybori::BooleMonomial::variableBegin (  )  const [inline]

variable_iterator polybori::BooleMonomial::variableEnd (  )  const [inline]

Finish iteration over variables.

Referenced by polybori::groebner::FGLMStrategy::analyzeGB().

deg_type polybori::BooleMonomial::deg (  )  const [inline]

size_type polybori::BooleMonomial::size (  )  const [inline]

set_type polybori::BooleMonomial::divisors (  )  const [inline]

BooleMonomial::set_type polybori::BooleMonomial::multiples ( const self monom  )  const

multiples of the monomial wrt. given monomial

References diagram(), polybori::BoolePolynomial::diagram(), and PBORI_TRACE_FUNC.

Referenced by polybori::BoolePolynomial::operator%=().

hash_type polybori::BooleMonomial::stableHash (  )  const [inline]

Hash value of the monomial.

References polybori::stable_first_hash_range().

hash_type polybori::BooleMonomial::hash (  )  const [inline]

Get unique hash value (valid only per runtime).

Referenced by polybori::groebner::MonomialHasher::operator()().

BooleMonomial polybori::BooleMonomial::change ( idx_type  idx  )  const

Substitute variable with index idx by its complement.

References diagram(), and PBORI_TRACE_FUNC.

Referenced by GCDAssign(), and polybori::BoolePolynomial::operator%=().

BooleMonomial & polybori::BooleMonomial::operator*= ( const self rhs  ) 

BooleMonomial & polybori::BooleMonomial::operator/= ( const self rhs  ) 

BooleMonomial & polybori::BooleMonomial::operator*= ( const var_type rhs  ) 

BooleMonomial & polybori::BooleMonomial::operator/= ( const var_type rhs  ) 

bool_type polybori::BooleMonomial::operator== ( const self rhs  )  const [inline]

bool_type polybori::BooleMonomial::operator!= ( const self rhs  )  const [inline]

bool_type polybori::BooleMonomial::operator== ( constant_type  rhs  )  const [inline]

bool_type polybori::BooleMonomial::operator!= ( constant_type  rhs  )  const [inline]

bool_type polybori::BooleMonomial::isOne (  )  const [inline]

bool_type polybori::BooleMonomial::isConstant (  )  const [inline]

bool_type polybori::BooleMonomial::reducibleBy ( const self rhs  )  const [inline]

BooleMonomial::bool_type polybori::BooleMonomial::reducibleBy ( const var_type rhs  )  const

BooleMonomial::comp_type polybori::BooleMonomial::compare ( const self rhs  )  const

Compare with rhs monomial and return comparision code.

References polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

Referenced by polybori::operator<(), polybori::operator<=(), polybori::operator>(), and polybori::operator>=().

BooleMonomial::deg_type polybori::BooleMonomial::LCMDeg ( const self rhs  )  const

BooleMonomial & polybori::BooleMonomial::LCMAssign ( const self rhs  ) 

Compute the least common multiple and assign.

References PBORI_TRACE_FUNC.

BooleMonomial polybori::BooleMonomial::LCM ( const self rhs  )  const

Compute the least common multiple.

References PBORI_TRACE_FUNC.

Referenced by polybori::LCM(), and polybori::groebner::CountCriterion::operator()().

BooleMonomial & polybori::BooleMonomial::GCDAssign ( const self rhs  ) 

BooleMonomial polybori::BooleMonomial::GCD ( const self rhs  )  const

const dd_type& polybori::BooleMonomial::diagram (  )  const [inline]

set_type polybori::BooleMonomial::set (  )  const [inline]

self& polybori::BooleMonomial::popFirst (  )  [inline]

Removes the first variables from monomial.

References PBORI_ASSERT.

BooleMonomial::var_type polybori::BooleMonomial::firstVariable (  )  const

idx_type polybori::BooleMonomial::firstIndex (  )  const [inline]

Get first index in monomial

Note:
return out-of-range integer for polynomial one

Referenced by firstVariable(), and polybori::groebner::LLReductor::isCompatible().

const ring_type& polybori::BooleMonomial::ring (  )  const [inline]

dd_type& polybori::BooleMonomial::internalDiagram (  )  [inline, protected]

Access to internal decision diagramm structure.

Referenced by operator*=(), and operator/=().


Friends And Related Function Documentation

friend class CDDOperations [friend]

friend class COrderingBase [friend]

friend class CTermGeneratorBase [friend]

friend class CTermGeneratorBase__ [friend]


The documentation for this class was generated from the following files:

Generated on Wed Jan 30 16:39:52 2013 for PolyBoRi by  doxygen 1.5.6