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

#include <BooleSet.h>

Inheritance diagram for polybori::BooleSet:
polybori::CCuddDDFacade< BoolePolyRing, BooleSet > polybori::CApplyNodeFacade< BooleSet, DdNode * > polybori::CAuxTypes polybori::groebner::LLReductor polybori::groebner::MinimalLeadingTerms polybori::groebner::TermsFacade< NewType > polybori::groebner::TermsFacade< LeadingTerms > polybori::groebner::TermsFacade< LeadingTerms00 > polybori::groebner::TermsFacade< LeadingTerms11 > polybori::groebner::TermsFacade< MonomialPlusOneTerms > polybori::groebner::TermsFacade< MonomialTerms >

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, exp_type
reverse_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 (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 nodes)
 BooleSet (const ring_type &ring, navigator navi)
 Construct new node (using navigator nodes)
 BooleSet (const ring_type &ring)
 Construct empty set in ring.
 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.
reverse_exp_iterator rExpBegin () const
 Start of backward exponent iteration over terms.
reverse_exp_iterator rExpEnd () 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.

Iterator type for iterating all exponent vectors.

Type for Boolean polynomial rings (without ordering)

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

Type of terms.


Constructor & Destructor Documentation

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 nodes)

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

Construct new node (using navigator nodes)

polybori::BooleSet::BooleSet ( const ring_type ring) [inline]

Construct empty set in ring.

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.

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().

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.

Test whether, all divisors of degree -1 of term rhs are contained in this.

References polybori::BooleMonomial::begin(), polybori::dd_contains_divs_of_dec_deg(), and polybori::BooleMonomial::end().

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

Count terms containing BooleVariable(idx)

References polybori::count_index().

Count many terms containing BooleVariable(idx)

References polybori::count_index().

const self& polybori::BooleSet::diagram ( ) const [inline]

Access internal decision diagram.

Referenced by polybori::BooleMonomial::diagram().

Compute intersection with divisors of rhs.

References PBORI_TRACE_FUNC.

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

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 polybori::dd_existential_abstraction(), polybori::BooleMonomial::diagram(), polybori::CCuddDDFacade< RingType, DiagramType >::navigation(), and PBORI_TRACE_FUNC.

Referenced by polybori::groebner::minimal_elements_divided(), and polybori::groebner::minimal_elements_multiplied_monoms().

Intersection with divisors of first (lexicographical) term of rhs.

References polybori::dd_first_divisors_of(), and PBORI_TRACE_FUNC.

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

Get unique hash value (valid only per runtime)

Check for empty intersection with divisors of rhs, i.e. test whether there are terms made of the given variables.

References polybori::BooleMonomial::begin(), polybori::dd_owns_term_of_indices(), polybori::BooleMonomial::end(), PBORI_ASSERT, and PBORI_TRACE_FUNC.

Referenced by polybori::groebner::irreducible_lead().

Test, whether we have two terms only.

References polybori::dd_is_pair().

Test, whether we have one term only.

References polybori::dd_is_singleton().

Test, whether we have one or two terms only.

References polybori::dd_is_singleton_or_pair().

Get last term (wrt. lexicographical order)

References polybori::dd_last_lexicographical_term(), PBORI_TRACE_FUNC, and PBORI_UNLIKELY.

Returns number of variables in manager.

Print current set to output stream.

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

References polybori::dd_print_terms(), and PBORI_TRACE_FUNC.

Referenced by polybori::operator<<().

Start of backward iteration over terms.

References PBORI_TRACE_FUNC.

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

Finish of backward iteration over terms.

References PBORI_TRACE_FUNC.

Start of backward exponent iteration over terms.

References PBORI_TRACE_FUNC.

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

Finish of backward iteration over terms.

References PBORI_TRACE_FUNC.

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

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

Approximation of number of terms.

Get stable hash value, which is reproducible.

References polybori::stable_hash_range().

Set of variables of the whole set.

References PBORI_TRACE_FUNC.

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

Exponent vector of variables of the whole set.

References PBORI_TRACE_FUNC.

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


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