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.

typedef dd_type::easy_equality_property polybori::BooleMonomial::easy_equality_property

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

Type of exponent vector.

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

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

Default Constructor (Constructs monomial one of the active ring)

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

Copy constructor.

Construct from Boolean variable.

References PBORI_TRACE_FUNC.

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

Construct from exponent vector.

Construct from given ring.

Destructor.

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

Construct from decision diagram.

Construct from decision diagram


Member Function Documentation

Substitute variable with index idx by its complement.

References diagram(), and PBORI_TRACE_FUNC.

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

Compare with rhs monomial and return comparision code.

References PBORI_TRACE_FUNC, and ring().

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

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

Get first index in monomial.

Referenced by firstVariable().

Get first variable in monomial.

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

Compute the greatest common divisor.

References PBORI_TRACE_FUNC.

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

Get unique hash value (valid only per runtime)

Access to internal decision diagramm structure.

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

Compute the least common multiple.

References PBORI_TRACE_FUNC.

Referenced by polybori::LCM().

Compute the least common multiple and assign.

References PBORI_TRACE_FUNC.

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]

Removes the first variables from monomial.

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

Access ring, where this belongs to.

Referenced by compare(), and firstVariable().

Get corresponding subset of of the powerset over all variables.

Hash value of the monomial.

References polybori::stable_first_hash_range().

Start iteration over variables.

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

Finish iteration over variables.


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: