PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
polybori::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>

Inheritance diagram for polybori::BooleExponent:
polybori::CAuxTypes

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 poly_type::ring_type ring_type
 Type of Boolean variables.
typedef poly_type::var_type var_type
 Type of Boolean variables.
typedef poly_type::monom_type monom_type
 Type of Boolean variables.
typedef poly_type::set_type 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.
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.
selfget (const monom_type &)
 Construct from Boolean monomial.
 BooleExponent (const monom_type &rhs)
 ~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.
deg_type deg () const
 Degree of the corresponding monomial.
set_type divisors (const ring_type &) const
 Divisors of the monomial.
set_type multiples (const self &, const ring_type &) const
 multiples of the monomial wrt. given monomial (both given as exponents)
set_type multiples (const monom_type &) 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)
 Insert a given index, if it is not there, remove otherwise; assign the result.
self change (idx_type) const
 Insert a given index, if it is not there, remove otherwise; return the result.
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 divideByIndex (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
deg_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 polybori::BooleExponent::const_iterator
typedef data_type::const_reverse_iterator polybori::BooleExponent::const_reverse_iterator

Define the underlying data structure.

This type has no easy equality check.

Type for index maps.

typedef data_type::iterator polybori::BooleExponent::iterator

Type of Boolean variables.

Type of Boolean polynomials.

typedef data_type::reverse_iterator polybori::BooleExponent::reverse_iterator

Type of Boolean variables.

Generic access to current type.

Type of sets of Boolean variables.

typedef data_type::value_type polybori::BooleExponent::value_type

Generic access to actual data.

Type of Boolean variables.


Constructor & Destructor Documentation

Default Constructor.

References PBORI_TRACE_FUNC.

Copy constructor.

References PBORI_TRACE_FUNC.

Destructor.

References PBORI_TRACE_FUNC.


Member Function Documentation

Insert a given index, if it is not there, remove otherwise; return the result.

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

Insert a given index, if it is not there, remove otherwise; assign the result.

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

Corresponds to division of monomials.

References polybori::exp_divide(), and PBORI_TRACE_FUNC.

Referenced by polybori::operator-().

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

Compute the greatest common divisor and assign.

Compute the greatest common divisor

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

Referenced by polybori::GCD(), and polybori::groebner::ReductionStrategy::llReduce().

For the exponent we only have one type of hashes.

Insert variable with index idx in exponent vector.

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

Start iteration over indices (constant access)

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

Finish iteration over indices (constant access)

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

Compute the greatest common divisor.

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

References multiply(), and PBORI_TRACE_FUNC.

Referenced by polybori::LCM(), LCMDeg(), and polybori::groebner::CountCriterion::operator()().

Degree of the least common multiple.

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

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

BooleExponent::set_type polybori::BooleExponent::multiples ( const self multipliers,
const ring_type ring 
) const

multiples of the monomial wrt. given monomial (both given as exponents)

References polybori::cudd_generate_multiples(), m_data, and PBORI_TRACE_FUNC.

multiples of the monomial wrt. given monomial

References polybori::cudd_generate_multiples(), m_data, PBORI_TRACE_FUNC, and polybori::BooleMonomial::ring().

Corresponds to multiplication of monomials.

References polybori::exp_multiply(), and PBORI_TRACE_FUNC.

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

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

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

Referenced by multiply().

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

Assignment operation.

References m_data.

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

Removes the first index from exponent.

Print current polynomial to output stream.

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

Referenced by polybori::operator<<().

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

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

Referenced by polybori::groebner::minimal_elements_internal3(), and polybori::groebner::random_set_using_generator().

Start reverse iteration over indices (constant access)

Referenced by polybori::BoolePolynomial::BoolePolynomial().

Test for reducibility.

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

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

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

Remove variable with index idx in exponent vector.

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

Remove variable with index idx in exponent vector.

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

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

Finish reverse iteration over indices (constant access)

Referenced by polybori::BoolePolynomial::BoolePolynomial().

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

Drop compoents from the nsize-th element on.

Referenced by operator=().

Start reverse iteration over indices (constant access)

Finish reverse iteration over indices (constant access)

Hash value for the exponent.

References polybori::stable_term_hash().


Member Data Documentation

The actual exponent indices.

Referenced by BooleExponent(), divisors(), get(), insert(), multiples(), operator=(), push_back(), and remove().


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