PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
polybori::BoolePolynomial Class Reference

This class wraps the underlying decicion diagram type and defines the necessary operations. More...

#include <BoolePolynomial.h>

Inheritance diagram for polybori::BoolePolynomial:
polybori::CAuxTypes

Public Types

typedef BoolePolynomial self
 Generic access to current type. More...
 
typedef dd_type::first_iterator first_iterator
 Iterator type for iterating over indices of the leading term. More...
 
typedef dd_type::navigator navigator
 Iterator-like type for navigating through diagram structure. More...
 
typedef BooleMonomial monom_type
 Fix type for treatment of monomials. More...
 
typedef BooleVariable var_type
 Fix type for treatment of monomials. More...
 
typedef BooleExponent exp_type
 Fix type for treatment of exponent vectors. More...
 
typedef BooleConstant constant_type
 Type for wrapping integer and bool values. More...
 
typedef BoolePolyRing ring_type
 Type for Boolean polynomial rings (without ordering) More...
 
typedef CTypes::comp_type comp_type
 Type for result of polynomial comparisons. More...
 
typedef binary_composition
< std::plus< size_type >
, project_ith
< 1 >, integral_constant
< size_type, 1 > > 
increment_type
 Incrementation functional type. More...
 
typedef binary_composition
< std::minus< size_type >
, project_ith
< 1 >, integral_constant
< size_type, 1 > > 
decrement_type
 Decrementation functional type. More...
 
typedef COrderedIter
< navigator, exp_type
ordered_exp_iterator
 Iterator type for iterating over all exponents in ordering order. More...
 
typedef COrderedIter
< navigator, monom_type
ordered_iterator
 Iterator type for iterating over all monomials in ordering order. More...
 
typedef lex_iterator const_iterator
 Iterator type for iterating over all monomials. More...
 
typedef CExpIter< navigator,
exp_type
exp_iterator
 Iterator type for iterating all exponent vectors. More...
 
typedef CGenericIter< LexOrder,
navigator, deg_type
deg_iterator
 Iterator type for iterating all monomials (dereferencing to degree) More...
 
typedef std::vector< monom_typetermlist_type
 Type for lists of terms. More...
 
typedef
dd_type::easy_equality_property 
easy_equality_property
 The property whether the equality check is easy is inherited from dd_type. More...
 
typedef BooleSet set_type
 Type for sets of Boolean variables. More...
 
typedef std::map< self,
idx_type,
symmetric_composition
< std::less< navigator >
, navigates< self > > > 
idx_map_type
 Type for index maps. More...
 
typedef std::map< self,
std::vector< self >
, symmetric_composition
< std::less< navigator >
, navigates< self > > > 
poly_vec_map_type
 
Adopt global type definitions
typedef BooleSet dd_type
 
typedef CTypes::ostream_type ostream_type
 
Generic iterators for various orderings
typedef CGenericIter< LexOrder,
navigator, monom_type
lex_iterator
 
typedef CGenericIter
< DegLexOrder, navigator,
monom_type
dlex_iterator
 
typedef CGenericIter
< DegRevLexAscOrder, navigator,
monom_type
dp_asc_iterator
 
typedef CGenericIter
< BlockDegLexOrder, navigator,
monom_type
block_dlex_iterator
 
typedef CGenericIter
< BlockDegRevLexAscOrder,
navigator, monom_type
block_dp_asc_iterator
 
typedef CGenericIter< LexOrder,
navigator, exp_type
lex_exp_iterator
 
typedef CGenericIter
< DegLexOrder, navigator,
exp_type
dlex_exp_iterator
 
typedef CGenericIter
< DegRevLexAscOrder, navigator,
exp_type
dp_asc_exp_iterator
 
typedef CGenericIter
< BlockDegLexOrder, navigator,
exp_type
block_dlex_exp_iterator
 
typedef CGenericIter
< BlockDegRevLexAscOrder,
navigator, exp_type
block_dp_asc_exp_iterator
 
- Public Types inherited from polybori::CAuxTypes
typedef bool bool_type
 Type for standard true/false statements. More...
 
typedef std::size_t size_type
 Type for lengths, dimensions, etc. More...
 
typedef int deg_type
 Type for polynomial degrees (ranges from -1 to maxint) More...
 
typedef int integer_type
 Type for integer numbers. More...
 
typedef int idx_type
 Type for indices. More...
 
typedef std::size_t hash_type
 Type for hashing. More...
 
typedef unsigned int errornum_type
 Type used to store error codes. More...
 
typedef short int comp_type
 Type for comparisons. More...
 
typedef int ordercode_type
 Type for ordering codes. More...
 
typedef const char * errortext_type
 Type used to verbose error information. More...
 
typedef std::ostream ostream_type
 Type for out-stream. More...
 
typedef const char * vartext_type
 Type for setting/getting names of variables. More...
 
typedef unsigned long large_size_type
 large size_type (necessary?) More...
 
typedef std::size_t refcount_type
 Type for counting references. More...
 

Public Member Functions

 BoolePolynomial (const ring_type &ring)
 Default constructor. More...
 
 BoolePolynomial (constant_type isOne, const ring_type &ring)
 Construct polynomial in given ring from a constant value 0 or 1. More...
 
 BoolePolynomial (const dd_type &rhs)
 Construct polynomial from decision diagram. More...
 
 BoolePolynomial (const exp_type &, const ring_type &)
 Construct polynomial from a subset of the powerset over all variables. More...
 
 BoolePolynomial (const navigator &rhs, const ring_type &ring)
 Construct polynomial from navigator. More...
 
 ~BoolePolynomial ()
 Destructor. More...
 
selfoperator= (constant_type rhs)
 
bool_type isZero () const
 Check whether polynomial is constant zero. More...
 
bool_type isOne () const
 Check whether polynomial is constant one. More...
 
bool_type isConstant () const
 Check whether polynomial is zero or one. More...
 
bool_type hasConstantPart () const
 Check whether polynomial has term one. More...
 
bool_type firstReducibleBy (const self &) const
 Tests whether polynomial can be reduced by right-hand side. More...
 
monom_type lead () const
 Get leading term. More...
 
monom_type lexLead () const
 Get leading term w.r.t. lexicographical order. More...
 
monom_type boundedLead (deg_type bound) const
 Get leading term (using upper bound of the polynomial degree) More...
 
exp_type leadExp () const
 Get leading term. More...
 
exp_type boundedLeadExp (deg_type bound) const
 
set_type leadDivisors () const
 Get all divisors of the leading term. More...
 
hash_type hash () const
 Get unique hash value (may change from run to run) More...
 
hash_type stableHash () const
 Get hash value, which is reproducible. More...
 
hash_type leadStableHash () const
 Hash value of the leading term. More...
 
deg_type deg () const
 Maximal degree of the polynomial. More...
 
deg_type leadDeg () const
 Degree of the leading term. More...
 
deg_type lexLeadDeg () const
 Degree of the leading term w.r.t. lexicographical ordering. More...
 
deg_type totalDeg () const
 Total maximal degree of the polynomial. More...
 
deg_type leadTotalDeg () const
 Total degree of the leading term. More...
 
self gradedPart (deg_type deg) const
 Get part of given degree. More...
 
size_type nNodes () const
 Number of nodes in the decision diagram. More...
 
size_type nUsedVariables () const
 Number of variables of the polynomial. More...
 
monom_type usedVariables () const
 Set of variables of the polynomial. More...
 
exp_type usedVariablesExp () const
 Exponent vector of all of variables of the polynomial. More...
 
size_type length () const
 Returns number of terms. More...
 
ostream_typeprint (ostream_type &) const
 Print current polynomial to output stream. More...
 
const_iterator begin () const
 Start of iteration over monomials. More...
 
const_iterator end () const
 Finish of iteration over monomials. More...
 
exp_iterator expBegin () const
 Start of iteration over exponent vectors. More...
 
exp_iterator expEnd () const
 Finish of iteration over exponent vectors. More...
 
first_iterator firstBegin () const
 Start of first term. More...
 
first_iterator firstEnd () const
 Finish of first term. More...
 
monom_type firstTerm () const
 Get of first lexicographic term. More...
 
deg_iterator degBegin () const
 Start of degrees. More...
 
deg_iterator degEnd () const
 Finish of degrees. More...
 
ordered_iterator orderedBegin () const
 Start of ordering respecting iterator. More...
 
ordered_iterator orderedEnd () const
 Finish of ordering respecting iterator. More...
 
ordered_exp_iterator orderedExpBegin () const
 Start of ordering respecting exponent iterator. More...
 
ordered_exp_iterator orderedExpEnd () const
 Finish of ordering respecting exponent iterator. More...
 
navigator navigation () const
 Navigate through structure. More...
 
navigator endOfNavigation () const
 End of navigation marker. More...
 
dd_type copyDiagram ()
 gives a copy of the diagram More...
 
 operator set_type () const
 Casting operator to Boolean set. More...
 
size_type eliminationLength () const
 
size_type eliminationLengthWithDegBound (deg_type garantied_deg_bound) const
 
void fetchTerms (termlist_type &) const
 Get list of all terms. More...
 
termlist_type terms () const
 Return of all terms. More...
 
const dd_typediagram () const
 Read-only access to internal decision diagramm structure. More...
 
set_type set () const
 Get corresponding subset of of the powerset over all variables. More...
 
bool_type isSingleton () const
 Test, whether we have one term only. More...
 
bool_type isSingletonOrPair () const
 Test, whether we have one or two terms only. More...
 
bool_type isPair () const
 Test, whether we have two terms only. More...
 
const ring_typering () const
 Access ring, where this belongs to. More...
 
comp_type compare (const self &) const
 Compare with right-hand side and return comparision code. More...
 
bool_type inSingleBlock () const
 Check whether all variables are in one variable block. More...
 
Arithmetical operations
const selfoperator- () const
 
selfoperator+= (const self &)
 
selfoperator+= (constant_type rhs)
 
template<class RHSType >
selfoperator-= (const RHSType &rhs)
 
selfoperator*= (const monom_type &)
 
selfoperator*= (const exp_type &)
 
selfoperator*= (const self &)
 
selfoperator*= (constant_type rhs)
 
selfoperator/= (const var_type &)
 
selfoperator/= (const monom_type &)
 
selfoperator/= (const exp_type &)
 
selfoperator/= (const self &rhs)
 
selfoperator/= (constant_type rhs)
 
selfoperator%= (const var_type &)
 
selfoperator%= (const monom_type &)
 
selfoperator%= (const self &rhs)
 
selfoperator%= (constant_type rhs)
 
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
 
Compile-time access to generic iterators
lex_iterator genericBegin (lex_tag) const
 
lex_iterator genericEnd (lex_tag) const
 
dlex_iterator genericBegin (dlex_tag) const
 
dlex_iterator genericEnd (dlex_tag) const
 
dp_asc_iterator genericBegin (dp_asc_tag) const
 
dp_asc_iterator genericEnd (dp_asc_tag) const
 
block_dlex_iterator genericBegin (block_dlex_tag) const
 
block_dlex_iterator genericEnd (block_dlex_tag) const
 
block_dp_asc_iterator genericBegin (block_dp_asc_tag) const
 
block_dp_asc_iterator genericEnd (block_dp_asc_tag) const
 
lex_exp_iterator genericExpBegin (lex_tag) const
 
lex_exp_iterator genericExpEnd (lex_tag) const
 
dlex_exp_iterator genericExpBegin (dlex_tag) const
 
dlex_exp_iterator genericExpEnd (dlex_tag) const
 
dp_asc_exp_iterator genericExpBegin (dp_asc_tag) const
 
dp_asc_exp_iterator genericExpEnd (dp_asc_tag) const
 
block_dlex_exp_iterator genericExpBegin (block_dlex_tag) const
 
block_dlex_exp_iterator genericExpEnd (block_dlex_tag) const
 
block_dp_asc_exp_iterator genericExpBegin (block_dp_asc_tag) const
 
block_dp_asc_exp_iterator genericExpEnd (block_dp_asc_tag) const
 

Protected Member Functions

dd_typeinternalDiagram ()
 Access to internal decision diagramm structure. More...
 
self leadFirst () const
 Generate a polynomial, whose first term is the leading term. More...
 
set_type firstDivisors () const
 Get all divisors of the first term. More...
 

Friends

class BooleMonomial
 Let BooleMonomial access protected and private members. More...
 

Detailed Description

This class wraps the underlying decicion diagram type and defines the necessary operations.

Member Typedef Documentation

Type for result of polynomial comparisons.

Iterator type for iterating over all monomials.

Type for wrapping integer and bool values.

Decrementation functional type.

Iterator type for iterating all monomials (dereferencing to degree)

The property whether the equality check is easy is inherited from dd_type.

Iterator type for iterating all exponent vectors.

Fix type for treatment of exponent vectors.

Iterator type for iterating over indices of the leading term.

Type for index maps.

Incrementation functional type.

Fix type for treatment of monomials.

Todo:
A more sophisticated treatment for monomials is needed.

Iterator-like type for navigating through diagram structure.

Iterator type for iterating over all exponents in ordering order.

Iterator type for iterating over all monomials in ordering order.

Type for Boolean polynomial rings (without ordering)

Generic access to current type.

Type for sets of Boolean variables.

Type for lists of terms.

Fix type for treatment of monomials.

Constructor & Destructor Documentation

polybori::BoolePolynomial::BoolePolynomial ( const ring_type ring)
inline

Default constructor.

Construct polynomial from a constant value 0 or 1 Construct zero polynomial

polybori::BoolePolynomial::BoolePolynomial ( constant_type  isOne,
const ring_type ring 
)
inline

Construct polynomial in given ring from a constant value 0 or 1.

polybori::BoolePolynomial::BoolePolynomial ( const dd_type rhs)
inline

Construct polynomial from decision diagram.

polybori::BoolePolynomial::BoolePolynomial ( const exp_type rhs,
const ring_type ring 
)

Construct polynomial from a subset of the powerset over all variables.

Construct polynomial from exponent vector

References polybori::BooleSet::change(), PBORI_TRACE_FUNC, polybori::BooleExponent::rbegin(), and polybori::BooleExponent::rend().

polybori::BoolePolynomial::BoolePolynomial ( const navigator rhs,
const ring_type ring 
)
inline

Construct polynomial from navigator.

References polybori::CCuddNavigator::isValid(), and PBORI_ASSERT.

polybori::BoolePolynomial::~BoolePolynomial ( )
inline

Destructor.

Member Function Documentation

BoolePolynomial::const_iterator polybori::BoolePolynomial::begin ( ) const
BoolePolynomial::monom_type polybori::BoolePolynomial::boundedLead ( deg_type  bound) const

Get leading term (using upper bound of the polynomial degree)

Note
Implementation note: for degree orderings (dlex, dp_asc) returns the lead of the sub-polynomial of degree 'bound', falls back to lead for all other orderings (lp, block_*)

References polybori::COrderingBase::lead(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

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

BoolePolynomial::exp_type polybori::BoolePolynomial::boundedLeadExp ( deg_type  bound) const

Get leading term (using upper bound of the polynomial degree)

Note
See implementation notes of boundedLead

References polybori::COrderingBase::leadExp(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

BoolePolynomial::comp_type polybori::BoolePolynomial::compare ( const self rhs) const

Compare with right-hand side and return comparision code.

References polybori::BooleMonomial::compare(), isZero(), lead(), and PBORI_TRACE_FUNC.

dd_type polybori::BoolePolynomial::copyDiagram ( )
inline

gives a copy of the diagram

BoolePolynomial::deg_type polybori::BoolePolynomial::deg ( ) const
BoolePolynomial::deg_iterator polybori::BoolePolynomial::degBegin ( ) const

Start of degrees.

References navigation(), PBORI_TRACE_FUNC, and ring().

Referenced by deg(), and eliminationLength().

BoolePolynomial::deg_iterator polybori::BoolePolynomial::degEnd ( ) const

Finish of degrees.

References PBORI_TRACE_FUNC, and ring().

Referenced by deg(), and eliminationLength().

const dd_type& polybori::BoolePolynomial::diagram ( ) const
inline
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLength ( ) const
BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLengthWithDegBound ( deg_type  garantied_deg_bound) const
BoolePolynomial::const_iterator polybori::BoolePolynomial::end ( ) const
navigator polybori::BoolePolynomial::endOfNavigation ( ) const
inline

End of navigation marker.

BoolePolynomial::exp_iterator polybori::BoolePolynomial::expBegin ( ) const

Start of iteration over exponent vectors.

References navigation(), and PBORI_TRACE_FUNC.

Referenced by polybori::groebner::FGLMStrategy::main(), and polybori::groebner::p2code().

BoolePolynomial::exp_iterator polybori::BoolePolynomial::expEnd ( ) const

Finish of iteration over exponent vectors.

References PBORI_TRACE_FUNC.

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

void polybori::BoolePolynomial::fetchTerms ( termlist_type theOutputList) const

Get list of all terms.

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

Referenced by terms().

BoolePolynomial::first_iterator polybori::BoolePolynomial::firstBegin ( ) const
BoolePolynomial::set_type polybori::BoolePolynomial::firstDivisors ( ) const
protected

Get all divisors of the first term.

References polybori::CCuddDDFacade< RingType, DiagramType >::firstDivisors(), and PBORI_TRACE_FUNC.

BoolePolynomial::first_iterator polybori::BoolePolynomial::firstEnd ( ) const
BoolePolynomial::bool_type polybori::BoolePolynomial::firstReducibleBy ( const self rhs) const
inline

Tests whether polynomial can be reduced by right-hand side.

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

BoolePolynomial::monom_type polybori::BoolePolynomial::firstTerm ( ) const

Get of first lexicographic term.

References polybori::LexOrder::lead(), and PBORI_TRACE_FUNC.

BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericBegin ( lex_tag  ) const
BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericBegin ( dlex_tag  ) const
BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericBegin ( dp_asc_tag  ) const
BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericBegin ( block_dlex_tag  ) const
BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericBegin ( block_dp_asc_tag  ) const
BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericEnd ( lex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::dlex_iterator polybori::BoolePolynomial::genericEnd ( dlex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::dp_asc_iterator polybori::BoolePolynomial::genericEnd ( dp_asc_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dlex_iterator polybori::BoolePolynomial::genericEnd ( block_dlex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericEnd ( block_dp_asc_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpBegin ( lex_tag  ) const
BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin ( dlex_tag  ) const
BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin ( dp_asc_tag  ) const
BoolePolynomial::block_dlex_exp_iterator polybori::BoolePolynomial::genericExpBegin ( block_dlex_tag  ) const
BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin ( block_dp_asc_tag  ) const
BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpEnd ( lex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd ( dlex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd ( dp_asc_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dlex_exp_iterator polybori::BoolePolynomial::genericExpEnd ( block_dlex_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpEnd ( block_dp_asc_tag  ) const

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial polybori::BoolePolynomial::gradedPart ( deg_type  deg) const

Get part of given degree.

References polybori::dd_graded_part(), navigation(), PBORI_TRACE_FUNC, and ring().

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

bool_type polybori::BoolePolynomial::hasConstantPart ( ) const
inline
hash_type polybori::BoolePolynomial::hash ( ) const
inline

Get unique hash value (may change from run to run)

BoolePolynomial::bool_type polybori::BoolePolynomial::inSingleBlock ( ) const
dd_type& polybori::BoolePolynomial::internalDiagram ( )
inlineprotected

Access to internal decision diagramm structure.

Referenced by polybori::BooleMonomial::operator*=().

bool_type polybori::BoolePolynomial::isConstant ( ) const
inline
bool_type polybori::BoolePolynomial::isOne ( ) const
inline
bool_type polybori::BoolePolynomial::isPair ( ) const
inline

Test, whether we have two terms only.

References polybori::dd_is_pair().

Referenced by polybori::groebner::MonomialPlusOneTerms::isCompatible().

bool_type polybori::BoolePolynomial::isSingleton ( ) const
inline

Test, whether we have one term only.

References polybori::dd_is_singleton().

bool_type polybori::BoolePolynomial::isSingletonOrPair ( ) const
inline

Test, whether we have one or two terms only.

References polybori::dd_is_singleton_or_pair().

bool_type polybori::BoolePolynomial::isZero ( ) const
inline
BoolePolynomial::monom_type polybori::BoolePolynomial::lead ( ) const
BoolePolynomial::deg_type polybori::BoolePolynomial::leadDeg ( ) const
set_type polybori::BoolePolynomial::leadDivisors ( ) const
inline
BoolePolynomial::exp_type polybori::BoolePolynomial::leadExp ( ) const
BoolePolynomial polybori::BoolePolynomial::leadFirst ( ) const
protected

Generate a polynomial, whose first term is the leading term.

References polybori::COrderingBase::leadFirst(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

Referenced by leadDeg(), and leadStableHash().

BoolePolynomial::hash_type polybori::BoolePolynomial::leadStableHash ( ) const

Hash value of the leading term.

References leadFirst(), PBORI_TRACE_FUNC, and polybori::stable_first_hash_range().

BoolePolynomial::deg_type polybori::BoolePolynomial::leadTotalDeg ( ) const

Total degree of the leading term.

References leadDeg(), and PBORI_TRACE_FUNC.

BoolePolynomial::size_type polybori::BoolePolynomial::length ( ) const
BoolePolynomial::monom_type polybori::BoolePolynomial::lexLead ( ) const

Get leading term w.r.t. lexicographical order.

References polybori::LexOrder::lead(), and PBORI_TRACE_FUNC.

Referenced by polybori::groebner::ReductionStrategy::select1().

BoolePolynomial::deg_type polybori::BoolePolynomial::lexLeadDeg ( ) const

Degree of the leading term w.r.t. lexicographical ordering.

References firstBegin(), firstEnd(), isZero(), PBORI_TRACE_FUNC, and PBORI_UNLIKELY.

Referenced by polybori::LexOrder::leadExp().

navigator polybori::BoolePolynomial::navigation ( ) const
inline
BoolePolynomial::size_type polybori::BoolePolynomial::nNodes ( ) const

Number of nodes in the decision diagram.

References polybori::CCuddDDFacade< RingType, DiagramType >::nNodes(), and PBORI_TRACE_FUNC.

BoolePolynomial::size_type polybori::BoolePolynomial::nUsedVariables ( ) const
polybori::BoolePolynomial::operator set_type ( ) const
inline

Casting operator to Boolean set.

bool_type polybori::BoolePolynomial::operator!= ( const self rhs) const
inline
bool_type polybori::BoolePolynomial::operator!= ( constant_type  rhs) const
inline
BoolePolynomial & polybori::BoolePolynomial::operator%= ( const var_type rhs)

References PBORI_TRACE_FUNC.

BoolePolynomial & polybori::BoolePolynomial::operator%= ( const monom_type rhs)
self& polybori::BoolePolynomial::operator%= ( const self rhs)
inline
self& polybori::BoolePolynomial::operator%= ( constant_type  rhs)
inline
BoolePolynomial & polybori::BoolePolynomial::operator*= ( const monom_type rhs)
BoolePolynomial & polybori::BoolePolynomial::operator*= ( const exp_type rhs)
BoolePolynomial & polybori::BoolePolynomial::operator*= ( const self rhs)
self& polybori::BoolePolynomial::operator*= ( constant_type  rhs)
inline
BoolePolynomial & polybori::BoolePolynomial::operator+= ( const self rhs)

References PBORI_TRACE_FUNC.

self& polybori::BoolePolynomial::operator+= ( constant_type  rhs)
inline
const self& polybori::BoolePolynomial::operator- ( ) const
inline
template<class RHSType >
self& polybori::BoolePolynomial::operator-= ( const RHSType &  rhs)
inline
BoolePolynomial & polybori::BoolePolynomial::operator/= ( const var_type rhs)

References PBORI_TRACE_FUNC.

Referenced by operator/=().

BoolePolynomial & polybori::BoolePolynomial::operator/= ( const monom_type rhs)
BoolePolynomial & polybori::BoolePolynomial::operator/= ( const exp_type rhs)
BoolePolynomial & polybori::BoolePolynomial::operator/= ( const self rhs)
BoolePolynomial & polybori::BoolePolynomial::operator/= ( constant_type  rhs)

References PBORI_TRACE_FUNC, and PBORI_UNLIKELY.

self& polybori::BoolePolynomial::operator= ( constant_type  rhs)
inline
bool_type polybori::BoolePolynomial::operator== ( const self rhs) const
inline
bool_type polybori::BoolePolynomial::operator== ( constant_type  rhs) const
inline
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedBegin ( ) const
BoolePolynomial::ordered_iterator polybori::BoolePolynomial::orderedEnd ( ) const
BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpBegin ( ) const

Start of ordering respecting exponent iterator.

References polybori::COrderingBase::leadExpIteratorBegin(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

Referenced by print().

BoolePolynomial::ordered_exp_iterator polybori::BoolePolynomial::orderedExpEnd ( ) const

Finish of ordering respecting exponent iterator.

References polybori::COrderingBase::leadExpIteratorEnd(), polybori::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

Referenced by print().

BoolePolynomial::ostream_type & polybori::BoolePolynomial::print ( ostream_type os) const

Print current polynomial to output stream.

References polybori::dd_print_terms(), isOne(), isZero(), orderedExpBegin(), orderedExpEnd(), PBORI_TRACE_FUNC, and ring().

Referenced by polybori::operator<<().

const ring_type& polybori::BoolePolynomial::ring ( ) const
inline

Access ring, where this belongs to.

Referenced by polybori::groebner::add_up_exponents(), polybori::groebner::GroebnerStrategy::addAsYouWish(), polybori::groebner::GroebnerStrategy::addGeneratorDelayed(), polybori::groebner::GroebnerStrategy::addGeneratorTrySplit(), polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), begin(), boundedLead(), boundedLeadExp(), polybori::groebner::cheap_reductions(), deg(), degBegin(), degEnd(), polybori::groebner::do_is_rewriteable(), polybori::groebner::do_plug_1(), eliminationLength(), eliminationLengthWithDegBound(), end(), fetchTerms(), polybori::groebner::full_implication_gb(), genericBegin(), genericEnd(), genericExpBegin(), genericExpEnd(), gradedPart(), polybori::groebner::ReductionStrategy::headNormalForm(), polybori::groebner::CacheManager::insert(), inSingleBlock(), polybori::LexOrder::lead(), polybori::DegRevLexAscOrder::lead(), polybori::DegLexOrder::lead(), polybori::CBlockOrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::lead(), lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), leadExp(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadExpIteratorEnd(), leadFirst(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadIteratorBegin(), polybori::COrderingFacade< BlockDegRevLexAscOrder, block_dp_asc_tag >::leadIteratorEnd(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::groebner::ll_red_nf_generic(), polybori::groebner::CacheManager::lookup(), polybori::groebner::map_every_x_to_x_plus_one(), polybori::groebner::mult_fast_sim(), polybori::groebner::multiply(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), polybori::groebner::nf3_lexbuckets(), operator%=(), polybori::groebner::TimesConstantImplication::operator()(), polybori::groebner::TimesVariableSubstitution::operator()(), polybori::groebner::CountCriterion::operator()(), operator*=(), operator/=(), orderedBegin(), orderedEnd(), orderedExpBegin(), orderedExpEnd(), print(), polybori::groebner::red_tail(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::red_tail_in_last_block(), polybori::groebner::red_tail_short(), polybori::groebner::reduce_by_monom(), polybori::groebner::ReductionTerms::related(), polybori::groebner::ReductionStrategy::select1(), polybori::groebner::FGLMStrategy::testMultiplicationTables(), polybori::groebner::translate_indices(), polybori::groebner::GroebnerStrategy::treatVariablePairs(), polybori::groebner::LexBucket::updateTailStart(), usedVariables(), polybori::groebner::without_prior_part(), and polybori::groebner::zeros().

set_type polybori::BoolePolynomial::set ( ) const
inline

Get corresponding subset of of the powerset over all variables.

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

hash_type polybori::BoolePolynomial::stableHash ( ) const
inline

Get hash value, which is reproducible.

BoolePolynomial::termlist_type polybori::BoolePolynomial::terms ( ) const

Return of all terms.

References fetchTerms(), and PBORI_TRACE_FUNC.

BoolePolynomial::deg_type polybori::BoolePolynomial::totalDeg ( ) const

Total maximal degree of the polynomial.

References deg(), and PBORI_TRACE_FUNC.

BoolePolynomial::monom_type polybori::BoolePolynomial::usedVariables ( ) const

Set of variables of the polynomial.

References diagram(), PBORI_TRACE_FUNC, and ring().

Referenced by inSingleBlock(), nUsedVariables(), and polybori::groebner::GroebnerStrategy::treatVariablePairs().

BoolePolynomial::exp_type polybori::BoolePolynomial::usedVariablesExp ( ) const

Friends And Related Function Documentation

friend class BooleMonomial
friend

Let BooleMonomial access protected and private members.


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