cudd's
decicion diagram.
More...
#include <BooleMonomial.h>
Public Types | |
typedef BooleMonomial | self |
Generic access to current type. | |
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 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 |
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 & | 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. | |
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. | |
self & | LCMAssign (const self &) |
Compute theleast common multiple and assign. | |
self | LCM (const self &) const |
Compute the greatest common divisor. | |
self & | GCDAssign (const self &) |
Compute the greatest common divisor and assign. | |
self | GCD (const self &) const |
Compute the greatest common divisor. | |
const dd_type & | diagram () const |
Read-only access to internal decision diagramm structure. | |
set_type | set () const |
Get corresponding subset of of the powerset over all variables. | |
self & | popFirst () |
Removes the first variables from monomial. | |
var_type | firstVariable () const |
Get first variable in monomial. | |
idx_type | firstIndex () const |
Get first index in monomial. | |
ring_type | ring () const |
Access ring, where this belongs to. | |
Arithmetical operations | |
self & | operator*= (const self &) |
self & | operator/= (const self &) |
self & | operator*= (const var_type &) |
self & | operator/= (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_type & | internalDiagram () |
Access to internal decision diagramm structure. | |
BooleMonomial (const set_type &rhs) | |
Construct from decision diagram. | |
Friends | |
class | CDDOperations |
class | COrderBase |
class | CTermGeneratorBase |
cudd's
decicion diagram.
BooleMonomial
is actually a specialization of BoolePolynomial
with a special constructor. 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.
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 of Boolean polynomials.
Type for Boolean polynomial rings (without ordering).
Generic access to current type.
Type of sets of Boolean variables.
Type of Boolean variables.
Access to iterator over variables.
polybori::BooleMonomial::BooleMonomial | ( | ) | [inline] |
Default Constructor (Constructs monomial one of the active ring).
polybori::BooleMonomial::BooleMonomial | ( | const self & | rhs | ) | [inline] |
Copy constructor.
polybori::BooleMonomial::BooleMonomial | ( | const var_type & | rhs | ) |
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 | ) | [inline, protected] |
Construct from decision diagram.
Construct from decision diagram
const_iterator polybori::BooleMonomial::begin | ( | ) | const [inline] |
Start iteration over indices.
Referenced by polybori::groebner::GroebnerStrategy::addGenerator(), polybori::groebner::addPolynomialToReductor(), polybori::BlockDegRevLexAscOrder::compare(), polybori::BlockDegLexOrder::compare(), GCDAssign(), polybori::BooleExponent::get(), polybori::BooleSet::hasTermOfVariables(), LCMDeg(), polybori::BooleExponent::operator=(), polybori::groebner::parallel_reduce(), polybori::groebner::polynomial_in_one_block(), polybori::groebner::reduce_by_monom(), polybori::groebner::reduce_complete(), polybori::BooleExponent::reducibleBy(), and polybori::groebner::sum_size().
BooleMonomial polybori::BooleMonomial::change | ( | idx_type | idx | ) | const |
BooleMonomial & polybori::BooleMonomial::changeAssign | ( | idx_type | idx | ) |
Substitute variable with index idx by its complement and assign.
References polybori::CDDInterface< CuddLikeZDD >::changeAssign(), polybori::BoolePolynomial::internalDiagram(), and PBORI_TRACE_FUNC.
Referenced by GCDAssign(), and operator*=().
BooleMonomial::comp_type polybori::BooleMonomial::compare | ( | const self & | rhs | ) | const |
Compare with rhs monomial and return comparision code.
References polybori::BooleEnv::ordering(), and PBORI_TRACE_FUNC.
Referenced by polybori::operator<(), polybori::operator<=(), polybori::operator>(), and polybori::operator>=().
deg_type polybori::BooleMonomial::deg | ( | ) | const [inline] |
Degree of the monomial.
Referenced by LCMDeg(), polybori::groebner::parallel_reduce(), polybori::groebner::reduce_by_monom(), and polybori::groebner::sum_size().
const dd_type& polybori::BooleMonomial::diagram | ( | ) | const [inline] |
Read-only access to internal decision diagramm structure.
Referenced by polybori::BooleSet::addAssign(), polybori::groebner::GroebnerStrategy::addGenerator(), polybori::BooleSet::divide(), polybori::BooleSet::divideAssign(), polybori::BooleSet::divisorsOf(), polybori::BooleSet::existAbstract(), polybori::groebner::minimal_elements_internal(), polybori::groebner::minimal_elements_internal2(), multiples(), polybori::BooleSet::multiplesOf(), polybori::BoolePolynomial::operator%=(), polybori::BoolePolynomial::operator*=(), polybori::BoolePolynomial::operator/=(), polybori::BooleSet::owns(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::reduce_by_monom(), and polybori::groebner::GroebnerStrategy::treat_m_p_1_case().
set_type polybori::BooleMonomial::divisors | ( | ) | const [inline] |
Divisors of the monomial.
Referenced by polybori::groebner::LexHelper::irreducible_lead(), polybori::groebner::select_short(), and polybori::groebner::variety_lex_leading_terms().
const_iterator polybori::BooleMonomial::end | ( | ) | const [inline] |
Finish iteration over indices.
Referenced by polybori::groebner::GroebnerStrategy::addGenerator(), polybori::BlockDegRevLexAscOrder::compare(), polybori::BlockDegLexOrder::compare(), GCDAssign(), polybori::BooleExponent::get(), polybori::BooleSet::hasTermOfVariables(), LCMDeg(), polybori::BooleExponent::operator=(), polybori::groebner::polynomial_in_one_block(), polybori::groebner::reduce_by_monom(), polybori::BooleExponent::reducibleBy(), and polybori::groebner::sum_size().
BooleMonomial::exp_type polybori::BooleMonomial::exp | ( | ) | const |
Get exponent vector.
References polybori::BooleExponent::get(), and PBORI_TRACE_FUNC.
Referenced by polybori::groebner::nf3(), polybori::groebner::nf3_degree_order(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::nf3_no_deg_growth(), polybori::groebner::PolyEntry::PolyEntry(), and polybori::groebner::random_set_using_generator().
idx_type polybori::BooleMonomial::firstIndex | ( | ) | const [inline] |
BooleMonomial::var_type polybori::BooleMonomial::firstVariable | ( | ) | const |
BooleMonomial polybori::BooleMonomial::GCD | ( | const self & | rhs | ) | const |
Compute the greatest common divisor.
References PBORI_TRACE_FUNC.
Referenced by polybori::GCD(), polybori::groebner::reduce_by_binom(), and polybori::groebner::reduce_complete().
BooleMonomial & polybori::BooleMonomial::GCDAssign | ( | const self & | rhs | ) |
Compute the greatest common divisor and assign.
References polybori::BoolePolynomial::begin(), begin(), changeAssign(), polybori::BoolePolynomial::end(), end(), polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
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 | ( | ) | [inline, protected] |
Access to internal decision diagramm structure.
bool_type polybori::BooleMonomial::isConstant | ( | ) | const [inline] |
bool_type polybori::BooleMonomial::isOne | ( | ) | const [inline] |
BooleMonomial polybori::BooleMonomial::LCM | ( | const self & | rhs | ) | const |
BooleMonomial & polybori::BooleMonomial::LCMAssign | ( | const self & | rhs | ) |
BooleMonomial::deg_type polybori::BooleMonomial::LCMDeg | ( | const self & | rhs | ) | const |
Degree of the least common multiple.
References begin(), deg(), end(), polybori::BoolePolynomial::isOne(), polybori::BoolePolynomial::isZero(), and PBORI_TRACE_FUNC.
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.
polybori::BooleMonomial::operator const BoolePolynomial & | ( | ) | const [inline] |
Casting operator.
bool_type polybori::BooleMonomial::operator!= | ( | constant_type | rhs | ) | const [inline] |
BooleMonomial & polybori::BooleMonomial::operator*= | ( | const var_type & | rhs | ) |
References changeAssign(), polybori::BooleVariable::index(), PBORI_TRACE_FUNC, and reducibleBy().
BooleMonomial & polybori::BooleMonomial::operator*= | ( | const self & | rhs | ) |
BooleMonomial & polybori::BooleMonomial::operator/= | ( | const var_type & | rhs | ) |
BooleMonomial & polybori::BooleMonomial::operator/= | ( | const self & | rhs | ) |
bool_type polybori::BooleMonomial::operator== | ( | constant_type | rhs | ) | const [inline] |
self& polybori::BooleMonomial::popFirst | ( | ) | [inline] |
Removes the first variables from monomial.
BooleMonomial::bool_type polybori::BooleMonomial::reducibleBy | ( | const var_type & | rhs | ) | const |
References PBORI_TRACE_FUNC, and polybori::BoolePolynomial::reducibleBy().
Test for reducibility.
Referenced by polybori::groebner::minimal_elements_internal(), operator*=(), and polybori::groebner::GroebnerStrategy::treatNormalPairs().
ring_type polybori::BooleMonomial::ring | ( | ) | const [inline] |
Access ring, where this belongs to.
Referenced by firstVariable(), and polybori::groebner::GroebnerStrategy::treatNormalPairs().
set_type polybori::BooleMonomial::set | ( | ) | const [inline] |
Get corresponding subset of of the powerset over all variables.
size_type polybori::BooleMonomial::size | ( | ) | const [inline] |
Size of the exponents.
Referenced by polybori::BooleExponent::get(), and polybori::BooleExponent::operator=().
hash_type polybori::BooleMonomial::stableHash | ( | ) | const [inline] |
variable_iterator polybori::BooleMonomial::variableBegin | ( | ) | const [inline] |
Start iteration over variables.
variable_iterator polybori::BooleMonomial::variableEnd | ( | ) | const [inline] |
Finish iteration over variables.
friend class CDDOperations [friend] |
friend class COrderBase [friend] |
friend class CTermGeneratorBase [friend] |