PolyBoRi
Public Types | Public Member Functions
polybori::BooleSet Class Reference

#include <BooleSet.h>

Inheritance diagram for polybori::BooleSet:
polybori::CCuddDDFacade< BoolePolyRing, BooleSet >

List of all members.

Public Types

typedef self dd_type
 Generic access to type of *this.
typedef CCuddDDFacade
< BoolePolyRing, BooleSet
base
 Generic access to base type.
typedef BooleMonomial term_type
 Type of terms.
typedef BooleExponent exp_type
 Fix type for treatment of exponent vectors.
typedef BoolePolyRing ring_type
 Type for Boolean polynomial rings (without ordering)
typedef CGenericIter< LexOrder,
navigator, term_type
const_iterator
 Iterator type for iterating all monomials.
typedef CGenericIter< LexOrder,
navigator, exp_type
exp_iterator
 Iterator type for iterating all exponent vectors.
typedef CReverseIter< LexOrder,
navigator, term_type
const_reverse_iterator
 Iterator type for iterating all monomials.

Public Member Functions

 BooleSet ()
 Default constructor.
 BooleSet (const self &rhs)
 Copy constructor.
 BooleSet (const base &rhs)
 Copy constructor.
 BooleSet (idx_type idx, const self &first, const self &second)
 Construct new node.
 BooleSet (idx_type idx, navigator first, navigator second, const ring_type &ring)
 Construct new node (using navigator nodes)
 BooleSet (const ring_type &ring, node_ptr node)
 Construct new node (using navigator nodes)
 BooleSet (const ring_type &ring, navigator navi)
 BooleSet (idx_type idx, const self &rhs)
 Construct new node (using navigator for then and else-branches)
 BooleSet (navigator navi, const ring_type &ring)
 Construct from navigator node.
 ~BooleSet ()
 Destructor.
const_iterator begin () const
 Start of iteration over terms.
const_iterator end () const
 Finish of iteration over terms.
const_reverse_iterator rbegin () const
 Start of backward iteration over terms.
const_reverse_iterator rend () const
 Finish of backward iteration over terms.
exp_iterator expBegin () const
 Start of iteration over exponent vectors.
exp_iterator expEnd () const
 Finish of iteration over exponent vectors.
hash_type hash () const
 Get unique hash value (valid only per runtime)
hash_type stableHash () const
 Get stable hash value, which is reproducible.
term_type usedVariables () const
 Set of variables of the whole set.
exp_type usedVariablesExp () const
 Exponent vector of variables of the whole set.
self change (idx_type idx) const
self add (const term_type &rhs) const
 Add given monomial to sets.
bool_type owns (const term_type &rhs) const
bool_type owns (const exp_type &) const
 Check whether rhs is included in *this.
term_type lastLexicographicalTerm () const
 Get last term (wrt. lexicographical order)
self divisorsOf (const term_type &rhs) const
 Compute intersection with divisors of rhs.
self divisorsOf (const exp_type &rhs) const
 Compute intersection with divisors of rhs.
self firstDivisorsOf (const self &rhs) const
 Intersection with divisors of first (lexicographical) term of rhs.
self multiplesOf (const term_type &rhs) const
 Compute intersection with multiples of rhs.
self divide (const term_type &rhs) const
 Division by given term.
bool_type hasTermOfVariables (const term_type &rhs) const
self minimalElements () const
 Get minimal elements wrt. inclusion.
bool_type ownsOne () const
 Test whether the empty set is included.
bool_type isSingleton () const
 Test, whether we have one term only.
bool_type isSingletonOrPair () const
 Test, whether we have one or two terms only.
bool_type isPair () const
 Test, whether we have two terms only.
self existAbstract (const term_type &rhs) const
const selfdiagram () const
 Access internal decision diagram.
self cartesianProduct (const self &rhs) const
 Cartesean product.
bool_type contains (const self &rhs) const
 Test containment.
size_type size () const
 Returns number of terms.
size_type length () const
 Returns number of terms (deprecated)
size_type nVariables () const
 Returns number of variables in manager.
double sizeDouble () const
 Approximation of number of terms.
ostream_typeprint (ostream_type &) const
 Print current set to output stream.
self emptyElement () const
 Get corresponding zero element (may be removed in the future)
size_type countIndex (idx_type idx) const
 Count terms containing BooleVariable(idx)
double countIndexDouble (idx_type idx) const
 Count many terms containing BooleVariable(idx)
bool_type containsDivisorsOfDecDeg (const term_type &rhs) const
 Test whether, all divisors of degree -1 of term rhs are contained in this.
bool_type containsDivisorsOfDecDeg (const exp_type &rhs) const
 Test for term corresponding to exponent rhs.

Member Typedef Documentation

Generic access to base type.

Reimplemented from polybori::CCuddDDFacade< BoolePolyRing, BooleSet >.

Iterator type for iterating all monomials.

Iterator type for iterating all monomials.

Generic access to type of *this.

Iterator type for iterating all exponent vectors.

Fix type for treatment of exponent vectors.

Type for Boolean polynomial rings (without ordering)

Reimplemented from polybori::CCuddDDFacade< BoolePolyRing, BooleSet >.

Type of terms.


Constructor & Destructor Documentation

polybori::BooleSet::BooleSet ( )

Default constructor.

References PBORI_TRACE_FUNC.

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

Copy constructor.

polybori::BooleSet::BooleSet ( const base rhs) [inline]

Copy constructor.

polybori::BooleSet::BooleSet ( idx_type  idx,
const self first,
const self second 
) [inline]

Construct new node.

polybori::BooleSet::BooleSet ( idx_type  idx,
navigator  first,
navigator  second,
const ring_type ring 
) [inline]

Construct new node (using navigator nodes)

polybori::BooleSet::BooleSet ( const ring_type ring,
node_ptr  node 
) [inline]

Construct new node (using navigator nodes)

polybori::BooleSet::BooleSet ( const ring_type ring,
navigator  navi 
) [inline]
polybori::BooleSet::BooleSet ( idx_type  idx,
const self rhs 
) [inline]

Construct new node (using navigator for then and else-branches)

polybori::BooleSet::BooleSet ( navigator  navi,
const ring_type ring 
) [inline]

Construct from navigator node.

polybori::BooleSet::~BooleSet ( ) [inline]

Destructor.


Member Function Documentation

BooleSet polybori::BooleSet::add ( const term_type rhs) const

Add given monomial to sets.

References PBORI_TRACE_FUNC, and polybori::BooleMonomial::set().

BooleSet::const_iterator polybori::BooleSet::begin ( ) const
self polybori::BooleSet::cartesianProduct ( const self rhs) const [inline]
self polybori::BooleSet::change ( idx_type  idx) const [inline]
bool_type polybori::BooleSet::contains ( const self rhs) const [inline]

Test containment.

BooleSet::bool_type polybori::BooleSet::containsDivisorsOfDecDeg ( const term_type rhs) const
BooleSet::bool_type polybori::BooleSet::containsDivisorsOfDecDeg ( const exp_type rhs) const
BooleSet::size_type polybori::BooleSet::countIndex ( idx_type  idx) const

Count terms containing BooleVariable(idx)

References size(), and polybori::count_index().

double polybori::BooleSet::countIndexDouble ( idx_type  idx) const

Count many terms containing BooleVariable(idx)

References size(), and polybori::count_index().

const self& polybori::BooleSet::diagram ( ) const [inline]
BooleSet polybori::BooleSet::divide ( const term_type rhs) const
BooleSet polybori::BooleSet::divisorsOf ( const term_type rhs) const
BooleSet polybori::BooleSet::divisorsOf ( const exp_type rhs) const

Compute intersection with divisors of rhs.

References PBORI_TRACE_FUNC, firstDivisorsOf(), polybori::CCuddDDFacade< BoolePolyRing, BooleSet >::ring(), and diagram().

self polybori::BooleSet::emptyElement ( ) const [inline]

Get corresponding zero element (may be removed in the future)

BooleSet::const_iterator polybori::BooleSet::end ( ) const
BooleSet polybori::BooleSet::existAbstract ( const term_type rhs) const

Compute existential abstraction: Given a diagram F, and a set of variables S, remove all occurrences of each s in S from any subset in F. This can be implemented by cofactoring F w.r.t. s = 1 and s = 0, then forming their union

References PBORI_TRACE_FUNC, polybori::dd_existential_abstraction(), polybori::CCuddDDFacade< BoolePolyRing, BooleSet >::ring(), polybori::BooleMonomial::diagram(), polybori::CCuddDDFacade::navigation(), and polybori::CCuddDDFacade< BoolePolyRing, BooleSet >::navigation().

Referenced by polybori::groebner::GroebnerStrategy::addGenerator().

BooleSet::exp_iterator polybori::BooleSet::expBegin ( ) const
BooleSet::exp_iterator polybori::BooleSet::expEnd ( ) const
BooleSet polybori::BooleSet::firstDivisorsOf ( const self rhs) const
hash_type polybori::BooleSet::hash ( ) const [inline]

Get unique hash value (valid only per runtime)

BooleSet::bool_type polybori::BooleSet::hasTermOfVariables ( const term_type rhs) const
bool_type polybori::BooleSet::isPair ( ) const [inline]

Test, whether we have two terms only.

References polybori::dd_is_pair().

bool_type polybori::BooleSet::isSingleton ( ) const [inline]

Test, whether we have one term only.

References polybori::dd_is_singleton().

bool_type polybori::BooleSet::isSingletonOrPair ( ) const [inline]

Test, whether we have one or two terms only.

References polybori::dd_is_singleton_or_pair().

BooleSet::term_type polybori::BooleSet::lastLexicographicalTerm ( ) const
size_type polybori::BooleSet::length ( ) const [inline]
BooleSet polybori::BooleSet::minimalElements ( ) const
BooleSet polybori::BooleSet::multiplesOf ( const term_type rhs) const
size_type polybori::BooleSet::nVariables ( ) const [inline]

Returns number of variables in manager.

BooleSet::bool_type polybori::BooleSet::owns ( const term_type rhs) const
BooleSet::bool_type polybori::BooleSet::owns ( const exp_type rhs) const
bool_type polybori::BooleSet::ownsOne ( ) const [inline]

Test whether the empty set is included.

References polybori::owns_one().

Referenced by polybori::groebner::minimal_elements_cudd_style_unary(), and polybori::groebner::do_is_rewriteable().

BooleSet::ostream_type & polybori::BooleSet::print ( ostream_type os) const
BooleSet::const_reverse_iterator polybori::BooleSet::rbegin ( ) const
BooleSet::const_reverse_iterator polybori::BooleSet::rend ( ) const

Finish of backward iteration over terms.

References PBORI_TRACE_FUNC.

size_type polybori::BooleSet::size ( ) const [inline]
double polybori::BooleSet::sizeDouble ( ) const [inline]

Approximation of number of terms.

hash_type polybori::BooleSet::stableHash ( ) const [inline]

Get stable hash value, which is reproducible.

References polybori::stable_hash_range().

BooleSet::term_type polybori::BooleSet::usedVariables ( ) const

Set of variables of the whole set.

References PBORI_TRACE_FUNC.

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

BooleSet::exp_type polybori::BooleSet::usedVariablesExp ( ) const

Exponent vector of variables of the whole set.

References PBORI_TRACE_FUNC, and polybori::CCuddDDFacade< BoolePolyRing, BooleSet >::usedIndices().


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