BooleExponent Class Reference

This class is just a wrapper for using variables for storing indices as interim data structure for BooleMonomial. More...

#include <BooleExponent.h>

List of all members.

Public Types

typedef std::vector< idx_typedata_type
 Define the underlying data structure.
typedef data_type::value_type value_type
 Generic access to actual data.
typedef BooleExponent self
 Generic access to current type.
typedef BoolePolynomial poly_type
 Type of Boolean polynomials.
typedef BooleVariable var_type
 Type of Boolean variables.
typedef BooleMonomial monom_type
 Type of Boolean variables.
typedef BooleSet set_type
 Type of sets of Boolean variables.
typedef generate_index_map
< self >::type 
idx_map_type
 Type for index maps.
typedef invalid_tag easy_equality_property
 This type has no easy equality check.
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
Generic access to iterator types

typedef data_type::iterator iterator
typedef data_type::const_iterator const_iterator
typedef data_type::reverse_iterator reverse_iterator
typedef
data_type::const_reverse_iterator 
const_reverse_iterator

Public Member Functions

 BooleExponent ()
 Default Constructor.
 BooleExponent (const self &)
 Copy constructor.
 BooleExponent (bool)
selfget (const monom_type &)
 Construct from Boolean monomial.
 ~BooleExponent ()
 Destructor.
const_iterator begin () const
 Start iteration over indices (constant access).
const_iterator end () const
 Finish iteration over indices (constant access).
const_reverse_iterator rbegin () const
 Start reverse iteration over indices (constant access).
const_reverse_iterator rend () const
 Finish reverse iteration over indices (constant access).
size_type size () const
 Degree of the corresponding monomial.
void reserve (size_type nsize)
 Prepare memory for exponents.
void resize (size_type nsize)
 Drop compoents from the nsize-th element on.
size_type deg () const
 Degree of the corresponding monomial.
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 for the exponent.
hash_type hash () const
 For the exponent we only have one type of hashes.
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.
selfinsert (idx_type)
 Insert variable with index idx in exponent vector.
selfpush_back (idx_type idx)
 Insert variable with index idx in exponent vector (trying end first).
selfremove (idx_type)
 Remove variable with index idx in exponent vector.
self insertConst (idx_type) const
 Insert variable with index idx in exponent vector.
self removeConst (idx_type) const
 Remove variable with index idx in exponent vector.
self divide (const self &) const
 Corresponds to division of monomials.
self divide (const idx_type &rhs) const
self divide (const var_type &rhs) const
self divide (const monom_type &) const
self multiply (const self &) const
 Corresponds to multiplication of monomials.
self multiply (const idx_type &rhs) const
self multiply (const var_type &rhs) const
self multiply (const monom_type &) const
self multiplyFirst (const set_type &) const
selfoperator= (const self &rhs)
 Assignment operation.
selfoperator= (const monom_type &rhs)
bool_type reducibleBy (const self &rhs) const
 Test for reducibility.
bool_type reducibleBy (const monom_type &rhs) const
bool_type reducibleBy (const idx_type &rhs) const
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.
self LCM (const self &) const
 Compute the greatest common divisor.
self GCD (const self &) const
 Compute the greatest common divisor and assign.
selfpopFirst ()
 Removes the first index from exponent.
ostream_typeprint (ostream_type &) const
 Print current polynomial to output stream.
Logical operations

bool_type operator== (const self &rhs) const
bool_type operator!= (const self &rhs) const

Protected Member Functions

iterator internalBegin ()
 Start iteration over indices (constant access).
iterator internalEnd ()
 Finish iteration over indices (constant access).
reverse_iterator rInternalBegin ()
 Start reverse iteration over indices (constant access).
reverse_iterator rInternalEnd ()
 Finish reverse iteration over indices (constant access).

Protected Attributes

data_type m_data
 The actual exponent indices.

Detailed Description

This class is just a wrapper for using variables for storing indices as interim data structure for BooleMonomial.


Member Typedef Documentation

typedef data_type::const_iterator BooleExponent::const_iterator
typedef data_type::const_reverse_iterator BooleExponent::const_reverse_iterator
typedef std::vector<idx_type> BooleExponent::data_type

Define the underlying data structure.

This type has no easy equality check.

Type for index maps.

typedef data_type::iterator BooleExponent::iterator

Type of Boolean variables.

Type of Boolean polynomials.

typedef data_type::reverse_iterator BooleExponent::reverse_iterator

Generic access to current type.

Type of sets of Boolean variables.

typedef data_type::value_type BooleExponent::value_type

Generic access to actual data.

Type of Boolean variables.


Constructor & Destructor Documentation

BooleExponent::BooleExponent (  ) 

Default Constructor.

References PBORI_TRACE_FUNC.

BooleExponent::BooleExponent ( const self rhs  ) 

Copy constructor.

References PBORI_TRACE_FUNC.

BooleExponent::BooleExponent ( bool   )  [explicit]

References PBORI_TRACE_FUNC.

BooleExponent::~BooleExponent (  ) 

Destructor.

References PBORI_TRACE_FUNC.


Member Function Documentation

const_iterator BooleExponent::begin (  )  const [inline]
BooleExponent BooleExponent::change ( idx_type  idx  )  const

Substitute variable with index idx by its complement.

References begin(), end(), and PBORI_TRACE_FUNC.

BooleExponent & BooleExponent::changeAssign ( idx_type  idx  ) 

Substitute variable with index idx by its complement and assign.

References begin(), end(), insert(), and PBORI_TRACE_FUNC.

BooleExponent::comp_type BooleExponent::compare ( const self rhs  )  const

Compare with rhs monomial and return comparision code.

References BooleEnv::ordering(), and PBORI_TRACE_FUNC.

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

size_type BooleExponent::deg (  )  const [inline]

Degree of the corresponding monomial.

References size().

BooleExponent BooleExponent::divide ( const monom_type rhs  )  const
self BooleExponent::divide ( const var_type rhs  )  const [inline]

References divide(), and BooleVariable::index().

Referenced by divide().

self BooleExponent::divide ( const idx_type rhs  )  const [inline]

References reducibleBy(), and removeConst().

BooleExponent BooleExponent::divide ( const self rhs  )  const

Corresponds to division of monomials.

References polybori::exp_divide(), and PBORI_TRACE_FUNC.

Referenced by operator-().

BooleExponent::set_type BooleExponent::divisors (  )  const
const_iterator BooleExponent::end (  )  const [inline]
BooleExponent BooleExponent::GCD ( const self rhs  )  const

Compute the greatest common divisor and assign.

Compute the greatest common divisor

References begin(), end(), PBORI_TRACE_FUNC, and size().

Referenced by GCD().

BooleExponent & BooleExponent::get ( const monom_type rhs  ) 

Construct from Boolean monomial.

References BooleMonomial::begin(), BooleMonomial::end(), m_data, PBORI_TRACE_FUNC, and BooleMonomial::size().

Referenced by BooleMonomial::exp().

hash_type BooleExponent::hash (  )  const [inline]

For the exponent we only have one type of hashes.

References stableHash().

BooleExponent & BooleExponent::insert ( idx_type  idx  ) 

Insert variable with index idx in exponent vector.

References end(), internalBegin(), internalEnd(), m_data, and PBORI_TRACE_FUNC.

Referenced by changeAssign().

BooleExponent BooleExponent::insertConst ( idx_type  idx  )  const

Insert variable with index idx in exponent vector.

References begin(), end(), PBORI_TRACE_FUNC, and size().

Referenced by multiply().

iterator BooleExponent::internalBegin (  )  [inline, protected]

Start iteration over indices (constant access).

References m_data.

Referenced by insert(), operator=(), push_back(), and remove().

iterator BooleExponent::internalEnd (  )  [inline, protected]

Finish iteration over indices (constant access).

References m_data.

Referenced by insert(), push_back(), and remove().

BooleExponent BooleExponent::LCM ( const self rhs  )  const

Compute the greatest common divisor.

Compute theleast common multiple and assign self& LCMAssign(const self&);

References multiply(), and PBORI_TRACE_FUNC.

Referenced by LCM(), and LCMDeg().

BooleExponent::size_type BooleExponent::LCMDeg ( const self rhs  )  const

Degree of the least common multiple.

References LCM(), PBORI_TRACE_FUNC, and size().

BooleExponent::set_type BooleExponent::multiples ( const self multipliers  )  const
BooleExponent BooleExponent::multiply ( const monom_type rhs  )  const
self BooleExponent::multiply ( const var_type rhs  )  const [inline]

References BooleVariable::index(), and multiply().

Referenced by multiply().

self BooleExponent::multiply ( const idx_type rhs  )  const [inline]

References insertConst().

BooleExponent BooleExponent::multiply ( const self rhs  )  const

Corresponds to multiplication of monomials.

References polybori::exp_multiply(), and PBORI_TRACE_FUNC.

Referenced by LCM(), and operator+().

BooleExponent BooleExponent::multiplyFirst ( const set_type rhs  )  const
bool_type BooleExponent::operator!= ( const self rhs  )  const [inline]

References m_data.

self& BooleExponent::operator= ( const monom_type rhs  )  [inline]
self& BooleExponent::operator= ( const self rhs  )  [inline]

Assignment operation.

References m_data.

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

References m_data.

self& BooleExponent::popFirst (  )  [inline]

Removes the first index from exponent.

References m_data.

BooleExponent::ostream_type & BooleExponent::print ( ostream_type os  )  const

Print current polynomial to output stream.

References begin(), end(), and PBORI_TRACE_FUNC.

Referenced by operator<<().

BooleExponent & BooleExponent::push_back ( idx_type  idx  ) 

Insert variable with index idx in exponent vector (trying end first).

References internalBegin(), internalEnd(), m_data, and PBORI_TRACE_FUNC.

const_reverse_iterator BooleExponent::rbegin (  )  const [inline]

Start reverse iteration over indices (constant access).

References m_data.

Referenced by BoolePolynomial::BoolePolynomial().

bool_type BooleExponent::reducibleBy ( const var_type rhs  )  const [inline]
BooleExponent::bool_type BooleExponent::reducibleBy ( const idx_type rhs  )  const

References begin(), end(), and PBORI_TRACE_FUNC.

BooleExponent::bool_type BooleExponent::reducibleBy ( const monom_type rhs  )  const
BooleExponent::bool_type BooleExponent::reducibleBy ( const self rhs  )  const

Test for reducibility.

References begin(), end(), and PBORI_TRACE_FUNC.

Referenced by divide(), and reducibleBy().

BooleExponent & BooleExponent::remove ( idx_type  idx  ) 

Remove variable with index idx in exponent vector.

References end(), internalBegin(), internalEnd(), m_data, and PBORI_TRACE_FUNC.

BooleExponent BooleExponent::removeConst ( idx_type  idx  )  const

Remove variable with index idx in exponent vector.

References begin(), end(), PBORI_TRACE_FUNC, and size().

Referenced by divide().

const_reverse_iterator BooleExponent::rend (  )  const [inline]

Finish reverse iteration over indices (constant access).

References m_data.

Referenced by BoolePolynomial::BoolePolynomial().

void BooleExponent::reserve ( size_type  nsize  )  [inline]

Prepare memory for exponents.

References m_data.

Referenced by LexOrder::leadExp(), DegRevLexAscOrder::leadExp(), and DegLexOrder::leadExp().

void BooleExponent::resize ( size_type  nsize  )  [inline]

Drop compoents from the nsize-th element on.

References m_data.

reverse_iterator BooleExponent::rInternalBegin (  )  [inline, protected]

Start reverse iteration over indices (constant access).

References m_data.

reverse_iterator BooleExponent::rInternalEnd (  )  [inline, protected]

Finish reverse iteration over indices (constant access).

References m_data.

size_type BooleExponent::size (  )  const [inline]

Degree of the corresponding monomial.

References m_data.

Referenced by deg(), GCD(), insertConst(), LCMDeg(), and removeConst().

hash_type BooleExponent::stableHash (  )  const [inline]

Hash value for the exponent.

References begin(), end(), and stable_term_hash().

Referenced by hash().


Member Data Documentation


The documentation for this class was generated from the following files:
Generated on Wed May 5 21:35:34 2010 for PolyBoRi by  doxygen 1.6.3