PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | Friends
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 ()
 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)
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
 Get first index in monomial.
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

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 for integer numbers.

Reimplemented from polybori::CAuxTypes.

Type for out-stream.

Reimplemented from polybori::CAuxTypes.

Type of Boolean polynomials.

Type for Boolean polynomial rings (without ordering)

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, and diagram().

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

BooleMonomial::comp_type polybori::BooleMonomial::compare ( const self rhs) const
deg_type polybori::BooleMonomial::deg ( ) const [inline]
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 PBORI_TRACE_FUNC, firstIndex(), 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.

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

bool_type polybori::BooleMonomial::isConstant ( ) const [inline]
bool_type polybori::BooleMonomial::isOne ( ) const [inline]
BooleMonomial polybori::BooleMonomial::LCM ( const self rhs) const

Compute the least common multiple.

References PBORI_TRACE_FUNC.

Referenced by polybori::LCM().

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

Compute the least common multiple and assign.

References PBORI_TRACE_FUNC.

BooleMonomial::deg_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 PBORI_TRACE_FUNC, polybori::BoolePolynomial::diagram(), and diagram().

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

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

Casting operator.

bool_type polybori::BooleMonomial::operator!= ( const self rhs) const [inline]
bool_type polybori::BooleMonomial::operator!= ( constant_type  rhs) const [inline]
BooleMonomial & polybori::BooleMonomial::operator*= ( const self rhs)
BooleMonomial & polybori::BooleMonomial::operator*= ( const var_type rhs)
BooleMonomial & polybori::BooleMonomial::operator/= ( const self rhs)
BooleMonomial & polybori::BooleMonomial::operator/= ( const var_type rhs)
bool_type polybori::BooleMonomial::operator== ( const self rhs) const [inline]
bool_type polybori::BooleMonomial::operator== ( constant_type  rhs) const [inline]
self& polybori::BooleMonomial::popFirst ( ) [inline]

Removes the first variables from monomial.

bool_type polybori::BooleMonomial::reducibleBy ( const self rhs) const [inline]
BooleMonomial::bool_type polybori::BooleMonomial::reducibleBy ( const var_type rhs) const
const ring_type& polybori::BooleMonomial::ring ( ) const [inline]

Access ring, where this belongs to.

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

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

Get corresponding subset of of the powerset over all variables.

Referenced by polybori::BooleSet::add(), and polybori::BooleSet::owns().

size_type polybori::BooleMonomial::size ( ) const [inline]
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]
variable_iterator polybori::BooleMonomial::variableEnd ( ) const [inline]

Finish iteration over variables.

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


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: