PolyBoRi
|
This class is just a wrapper for using variables for storing indices as interim data structure for BooleMonomial. More...
#include <BooleExponent.h>
Public Types | |
typedef std::vector< idx_type > | data_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::deg_type | deg_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) | |
self & | get (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) | |
deg_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. | |
self & | changeAssign (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. | |
self & | insert (idx_type) |
Insert variable with index idx in exponent vector. | |
self & | push_back (idx_type idx) |
Insert variable with index idx in exponent vector (trying end first) | |
self & | remove (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 |
self & | operator= (const self &rhs) |
Assignment operation. | |
self & | operator= (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. | |
self & | popFirst () |
Removes the first index from exponent. | |
ostream_type & | print (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. |
This class is just a wrapper for using variables for storing indices as interim data structure for BooleMonomial.
typedef data_type::const_iterator polybori::BooleExponent::const_iterator |
typedef data_type::const_reverse_iterator polybori::BooleExponent::const_reverse_iterator |
typedef std::vector<idx_type> polybori::BooleExponent::data_type |
Define the underlying data structure.
This type has no easy equality check.
typedef generate_index_map<self>::type polybori::BooleExponent::idx_map_type |
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 |
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.
BEGIN_NAMESPACE_PBORI BooleExponent::BooleExponent | ( | ) |
Default Constructor.
References PBORI_TRACE_FUNC.
polybori::BooleExponent::BooleExponent | ( | const self & | ) |
Copy constructor.
BooleExponent::BooleExponent | ( | bool | ) | [explicit] |
References PBORI_TRACE_FUNC.
BooleExponent::~BooleExponent | ( | ) |
Destructor.
References PBORI_TRACE_FUNC.
const_iterator polybori::BooleExponent::begin | ( | ) | const [inline] |
Start iteration over indices (constant access)
Referenced by polybori::BooleMonomial::GCD(), insertConst(), PBORINAME::groebner::LiteralFactorization::LiteralFactorization(), PBORINAME::groebner::LiteralFactorization::occursAsLeadOfFactor(), polybori::groebner::random_set_using_generator(), and removeConst().
Substitute variable with index idx by its complement.
Substitute variable with index idx by its complement and assign.
Compare with rhs monomial and return comparision code.
Referenced by polybori::operator<(), polybori::operator<=(), polybori::operator>(), and polybori::operator>=().
size_type polybori::BooleExponent::deg | ( | ) | const [inline] |
Degree of the corresponding monomial.
Corresponds to division of monomials.
Referenced by polybori::operator-().
References divide(), and polybori::BooleVariable::index().
Referenced by divide().
self polybori::BooleExponent::divide | ( | const monom_type & | ) | const |
set_type polybori::BooleExponent::divisors | ( | ) | const |
Divisors of the monomial.
const_iterator polybori::BooleExponent::end | ( | ) | const [inline] |
Finish iteration over indices (constant access)
Referenced by polybori::BooleMonomial::GCD(), insertConst(), PBORINAME::groebner::LiteralFactorization::LiteralFactorization(), remove(), and removeConst().
Compute the greatest common divisor and assign.
Compute the greatest common divisor
Referenced by polybori::GCD().
self& polybori::BooleExponent::get | ( | const monom_type & | ) |
Construct from Boolean monomial.
Referenced by polybori::BooleMonomial::exp().
hash_type polybori::BooleExponent::hash | ( | ) | const [inline] |
For the exponent we only have one type of hashes.
Insert variable with index idx in exponent vector.
BooleExponent BooleExponent::insertConst | ( | idx_type | idx | ) | const |
Insert variable with index idx in exponent vector.
References begin(), end(), PBORI_TRACE_FUNC, and size().
iterator polybori::BooleExponent::internalBegin | ( | ) | [inline, protected] |
Start iteration over indices (constant access)
Referenced by push_back(), and remove().
iterator polybori::BooleExponent::internalEnd | ( | ) | [inline, protected] |
Finish iteration over indices (constant access)
Referenced by push_back(), and remove().
Compute the greatest common divisor.
Compute theleast common multiple and assign self& LCMAssign(const self&);
Referenced by polybori::LCM(), and polybori::BooleMonomial::LCMDeg().
Degree of the least common multiple.
multiples of the monomial wrt. given monomial
Corresponds to multiplication of monomials.
Referenced by polybori::BooleMonomial::LCM(), and polybori::operator+().
References polybori::BooleVariable::index(), and multiply().
Referenced by multiply().
self polybori::BooleExponent::multiply | ( | const monom_type & | ) | const |
BooleExponent BooleExponent::multiplyFirst | ( | const set_type & | rhs | ) | const |
Assignment operation.
References m_data.
self& polybori::BooleExponent::operator= | ( | const monom_type & | rhs | ) | [inline] |
self& polybori::BooleExponent::popFirst | ( | ) | [inline] |
Removes the first index from exponent.
ostream_type& polybori::BooleExponent::print | ( | ostream_type & | ) | const |
Print current polynomial to output stream.
Referenced by polybori::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 polybori::BooleExponent::rbegin | ( | ) | const [inline] |
Start reverse iteration over indices (constant access)
References polybori::BooleVariable::index().
bool_type polybori::BooleExponent::reducibleBy | ( | const monom_type & | rhs | ) | const |
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().
const_reverse_iterator polybori::BooleExponent::rend | ( | ) | const [inline] |
Finish reverse iteration over indices (constant access)
void polybori::BooleExponent::reserve | ( | size_type | nsize | ) | [inline] |
Prepare memory for exponents.
void polybori::BooleExponent::resize | ( | size_type | nsize | ) | [inline] |
Drop compoents from the nsize-th element on.
Referenced by operator=().
reverse_iterator polybori::BooleExponent::rInternalBegin | ( | ) | [inline, protected] |
Start reverse iteration over indices (constant access)
reverse_iterator polybori::BooleExponent::rInternalEnd | ( | ) | [inline, protected] |
Finish reverse iteration over indices (constant access)
deg_type polybori::BooleExponent::size | ( | ) | const [inline] |
Degree of the corresponding monomial.
Referenced by polybori::BooleMonomial::GCD(), polybori::groebner::CacheManager::insert(), insertConst(), polybori::BooleMonomial::LCMDeg(), polybori::groebner::CacheManager::lookup(), and removeConst().
hash_type polybori::BooleExponent::stableHash | ( | ) | const [inline] |
Hash value for the exponent.
References polybori::stable_term_hash().
data_type polybori::BooleExponent::m_data [protected] |
The actual exponent indices.
Referenced by polybori::BooleMonomial::multiples(), operator=(), push_back(), and remove().