polybori::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

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

Default Constructor (Constructs monomial one of the active ring).

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.

Construct from decision diagram


Member Function Documentation

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

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

Substitute variable with index idx by its complement.

References PBORI_TRACE_FUNC.

BooleMonomial & polybori::BooleMonomial::changeAssign ( idx_type  idx  ) 

Substitute variable with index idx by its complement and assign.

References polybori::CDDInterface< CuddLikeZDD >::changeAssign(), polybori::BoolePolynomial::internalDiagram(), and PBORI_TRACE_FUNC.

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

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

Compare with rhs monomial and return comparision code.

References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.

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

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

Degree of the monomial.

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

Referenced by LCMDeg(), polybori::groebner::parallel_reduce(), polybori::groebner::reduce_by_monom(), and polybori::groebner::sum_size().

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

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

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

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

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

Get first index in monomial.

Referenced by firstVariable().

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

Get first variable in monomial.

References firstIndex(), PBORI_TRACE_FUNC, and ring().

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

Compute the greatest common divisor.

References PBORI_TRACE_FUNC.

Referenced by polybori::GCD(), polybori::groebner::reduce_by_binom(), and polybori::groebner::reduce_complete().

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

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

Get unique hash value (valid only per runtime).

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

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

Access to internal decision diagramm structure.

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

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

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

Compute the greatest common divisor.

References PBORI_TRACE_FUNC.

Referenced by polybori::LCM().

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

Compute theleast common multiple and assign.

References PBORI_TRACE_FUNC.

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

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.

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

Casting operator.

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

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

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

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

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

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

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

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

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

Removes the first variables from monomial.

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

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

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

Access ring, where this belongs to.

Referenced by firstVariable(), and polybori::groebner::GroebnerStrategy::treatNormalPairs().

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

Get corresponding subset of of the powerset over all variables.

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

Size of the exponents.

Referenced by polybori::BooleExponent::get(), and polybori::BooleExponent::operator=().

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

Hash value of the monomial.

References polybori::stable_first_hash_range().

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

Start iteration over variables.

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

Finish iteration over variables.


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 Mon Jul 13 21:10:52 2009 for PolyBoRi by  doxygen 1.5.9