PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
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

Public Types

typedef BoolePolynomial poly_type
 Type of Boolean polynomials. More...
 
typedef poly_type::var_type var_type
 Type of Boolean variables. More...
 
typedef poly_type::constant_type constant_type
 Type of Boolean constants. More...
 
typedef poly_type::set_type set_type
 Type of sets of Boolean variables. More...
 
typedef poly_type::exp_type exp_type
 Type of exponent vector. More...
 
typedef poly_type::ring_type ring_type
 Type for Boolean polynomial rings (without ordering) More...
 
typedef poly_type::first_iterator const_iterator
 Access to iterator over indices. More...
 
typedef CVariableIter
< const_iterator, var_type
variable_iterator
 Access to iterator over variables. More...
 
typedef std::map< self,
idx_type,
symmetric_composition
< std::less
< poly_type::navigator >
, navigates< poly_type > > > 
idx_map_type
 Type for index maps. More...
 
typedef
dd_type::easy_equality_property 
easy_equality_property
 The property whether the equality check is easy is inherited from dd_type. More...
 
Adopt global type definitions
typedef poly_type::dd_type dd_type
 
typedef poly_type::integer_type integer_type
 
typedef poly_type::ostream_type ostream_type
 
- Public Types inherited from polybori::CAuxTypes
typedef bool bool_type
 Type for standard true/false statements. More...
 
typedef std::size_t size_type
 Type for lengths, dimensions, etc. More...
 
typedef int deg_type
 Type for polynomial degrees (ranges from -1 to maxint) More...
 
typedef int integer_type
 Type for integer numbers. More...
 
typedef int idx_type
 Type for indices. More...
 
typedef std::size_t hash_type
 Type for hashing. More...
 
typedef unsigned int errornum_type
 Type used to store error codes. More...
 
typedef short int comp_type
 Type for comparisons. More...
 
typedef int ordercode_type
 Type for ordering codes. More...
 
typedef const char * errortext_type
 Type used to verbose error information. More...
 
typedef std::ostream ostream_type
 Type for out-stream. More...
 
typedef const char * vartext_type
 Type for setting/getting names of variables. More...
 
typedef unsigned long large_size_type
 large size_type (necessary?) More...
 
typedef std::size_t refcount_type
 Type for counting references. More...
 

Public Member Functions

 BooleMonomial (const self &rhs)
 Copy constructor. More...
 
 BooleMonomial (const var_type &rhs)
 Construct from Boolean variable. More...
 
 BooleMonomial (const exp_type &rhs, const ring_type &ring)
 Construct from exponent vector. More...
 
 BooleMonomial (const ring_type &ring)
 Construct from given ring. More...
 
 ~BooleMonomial ()
 Destructor. More...
 
 operator const BoolePolynomial & () const
 Casting operator. More...
 
exp_type exp () const
 Get exponent vector. More...
 
const_iterator begin () const
 Start iteration over indices. More...
 
const_iterator end () const
 Finish iteration over indices. More...
 
variable_iterator variableBegin () const
 Start iteration over variables. More...
 
variable_iterator variableEnd () const
 Finish iteration over variables. More...
 
deg_type deg () const
 Degree of the monomial. More...
 
size_type size () const
 Size of the exponents. More...
 
set_type divisors () const
 Divisors of the monomial. More...
 
set_type multiples (const self &) const
 multiples of the monomial wrt. given monomial More...
 
hash_type stableHash () const
 Hash value of the monomial. More...
 
hash_type hash () const
 Get unique hash value (valid only per runtime) More...
 
self change (idx_type) const
 Substitute variable with index idx by its complement. More...
 
bool_type reducibleBy (const self &rhs) const
 Test for reducibility. More...
 
bool_type reducibleBy (const var_type &rhs) const
 
comp_type compare (const self &) const
 Compare with rhs monomial and return comparision code. More...
 
deg_type LCMDeg (const self &) const
 Degree of the least common multiple. More...
 
selfLCMAssign (const self &)
 Compute the least common multiple and assign. More...
 
self LCM (const self &) const
 Compute the least common multiple. More...
 
selfGCDAssign (const self &)
 Compute the greatest common divisor and assign. More...
 
self GCD (const self &) const
 Compute the greatest common divisor. More...
 
const dd_typediagram () const
 Read-only access to internal decision diagramm structure. More...
 
set_type set () const
 Get corresponding subset of of the powerset over all variables. More...
 
selfpopFirst ()
 Removes the first variables from monomial. More...
 
var_type firstVariable () const
 Get first variable in monomial. More...
 
idx_type firstIndex () const
 
const ring_typering () const
 Access ring, where this belongs to. More...
 
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. More...
 
 BooleMonomial (const set_type &rhs)
 Construct from decision diagram. More...
 

Friends

template<class , class >
class CDDOperations
 
class COrderingBase
 
template<class >
class CTermGeneratorBase
 
template<class , class >
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)

Type of sets of Boolean variables.

Type of Boolean variables.

Access to iterator over variables.

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)
inlineprotected

Construct from decision diagram.

References PBORI_ASSERT.

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

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

Note
return out-of-range integer for polynomial one

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

BooleMonomial::var_type polybori::BooleMonomial::firstVariable ( ) const
BooleMonomial polybori::BooleMonomial::GCD ( const self rhs) const
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 ( )
inlineprotected

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(), and polybori::groebner::CountCriterion::operator()().

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

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.

References PBORI_ASSERT.

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
set_type polybori::BooleMonomial::set ( ) const
inline
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

Start iteration over variables.

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

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

Finish iteration over variables.

Friends And Related Function Documentation

template<class , class >
friend class CDDOperations
friend
friend class COrderingBase
friend
template<class >
friend class CTermGeneratorBase
friend
template<class , class >
friend class CTermGeneratorBase__
friend

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