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

List of all members.

Public Types

typedef BoolePolynomial self
 Generic access to current type.
typedef dd_type::first_iterator first_iterator
 Iterator type for iterating over indices of the leading term.
typedef dd_type::navigator navigator
 Iterator-like type for navigating through diagram structure.
typedef BooleMonomial monom_type
typedef BooleVariable var_type
 Fix type for treatment of monomials.
typedef BooleExponent exp_type
 Fix type for treatment of exponent vectors.
typedef BooleConstant constant_type
 Type for wrapping integer and bool values.
typedef BoolePolyRing ring_type
 Type for Boolean polynomial rings (without ordering).
typedef CTypes::comp_type comp_type
 Type for result of polynomial comparisons.
typedef binary_composition
< std::plus< size_type >
, project_ith
< 1 >, integral_constant
< size_type, 1 > > 
increment_type
 Incrementation functional type.
typedef binary_composition
< std::minus< size_type >
, project_ith
< 1 >, integral_constant
< size_type, 1 > > 
decrement_type
 Decrementation functional type.
typedef COrderedIter
< navigator, exp_type
ordered_exp_iterator
 Iterator type for iterating over all exponents in ordering order.
typedef COrderedIter
< navigator, monom_type
ordered_iterator
 Iterator type for iterating over all monomials in ordering order.
typedef lex_iterator const_iterator
 Iterator type for iterating over all monomials.
typedef CExpIter< navigator,
exp_type
exp_iterator
 Iterator type for iterating all exponent vectors.
typedef CGenericIter< LexOrder,
navigator, deg_type
deg_iterator
 Iterator type for iterating all monomials (dereferencing to degree).
typedef std::vector< monom_typetermlist_type
 Type for lists of terms.
typedef
dd_type::easy_equality_property 
easy_equality_property
 The property whether the equality check is easy is inherited from dd_type.
typedef BooleSet set_type
 Type for sets of Boolean variables.
typedef std::map< self,
idx_type,
symmetric_composition
< std::less< navigator >
, navigates< self > > > 
idx_map_type
 Type for index maps.
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
 Type for out-stream.
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 Member Functions

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

Friends

class BooleMonomial
 Let BooleMonomial access protected and private members.


Detailed Description

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

Member Typedef Documentation

Generic access to current type.

Type for out-stream.

Reimplemented from polybori::CAuxTypes.

Iterator type for iterating over indices of the leading term.

Iterator-like type for navigating through diagram structure.

Todo:
A more sophisticated treatment for monomials is needed.
Fix type for treatment of monomials

Fix type for treatment of monomials.

Fix type for treatment of exponent vectors.

Type for wrapping integer and bool values.

Type for Boolean polynomial rings (without ordering).

Type for result of polynomial comparisons.

Reimplemented from polybori::CAuxTypes.

Incrementation functional type.

Decrementation functional type.

Iterator type for iterating over all exponents in ordering order.

Iterator type for iterating over all monomials in ordering order.

Iterator type for iterating over all monomials.

Iterator type for iterating all exponent vectors.

Iterator type for iterating all monomials (dereferencing to degree).

Type for lists of terms.

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

Type for sets of Boolean variables.

Type for index maps.


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

self& polybori::BoolePolynomial::operator= ( constant_type  rhs  )  [inline]

const self& polybori::BoolePolynomial::operator- (  )  const [inline]

BoolePolynomial & polybori::BoolePolynomial::operator+= ( const self rhs  ) 

References PBORI_TRACE_FUNC.

self& polybori::BoolePolynomial::operator+= ( constant_type  rhs  )  [inline]

template<class RHSType>
self& polybori::BoolePolynomial::operator-= ( const RHSType &  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 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.

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]

bool_type polybori::BoolePolynomial::operator== ( const self rhs  )  const [inline]

bool_type polybori::BoolePolynomial::operator!= ( const self rhs  )  const [inline]

bool_type polybori::BoolePolynomial::operator== ( constant_type  rhs  )  const [inline]

bool_type polybori::BoolePolynomial::operator!= ( constant_type  rhs  )  const [inline]

bool_type polybori::BoolePolynomial::isZero (  )  const [inline]

bool_type polybori::BoolePolynomial::isOne (  )  const [inline]

bool_type polybori::BoolePolynomial::isConstant (  )  const [inline]

bool_type polybori::BoolePolynomial::hasConstantPart (  )  const [inline]

BoolePolynomial::bool_type polybori::BoolePolynomial::firstReducibleBy ( const self rhs  )  const [inline]

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

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

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

BoolePolynomial::monom_type polybori::BoolePolynomial::lead (  )  const

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

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

References PBORI_TRACE_FUNC.

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

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::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

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

BoolePolynomial::exp_type polybori::BoolePolynomial::leadExp (  )  const

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::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

set_type polybori::BoolePolynomial::leadDivisors (  )  const [inline]

Get all divisors of the leading term.

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

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

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

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

Get hash value, which is reproducible.

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::deg (  )  const

BoolePolynomial::deg_type polybori::BoolePolynomial::leadDeg (  )  const

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

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

Total maximal degree of the polynomial.

References deg(), and PBORI_TRACE_FUNC.

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

Total degree of the leading term.

References leadDeg(), and PBORI_TRACE_FUNC.

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

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

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

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

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

BoolePolynomial::const_iterator polybori::BoolePolynomial::begin (  )  const

BoolePolynomial::const_iterator polybori::BoolePolynomial::end (  )  const

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

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

Finish of iteration over exponent vectors.

References PBORI_TRACE_FUNC.

Referenced by polybori::groebner::linalg_step_modified(), and polybori::groebner::p2code().

BoolePolynomial::first_iterator polybori::BoolePolynomial::firstBegin (  )  const

BoolePolynomial::first_iterator polybori::BoolePolynomial::firstEnd (  )  const

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

Get of first lexicographic term.

References PBORI_TRACE_FUNC.

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

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::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::BoolePolyRing::ordering(), PBORI_TRACE_FUNC, and ring().

Referenced by print().

BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericBegin ( lex_tag   )  const

BoolePolynomial::lex_iterator polybori::BoolePolynomial::genericEnd ( lex_tag   )  const

References PBORI_TRACE_FUNC, and ring().

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

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

References PBORI_TRACE_FUNC, and ring().

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

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

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dp_asc_iterator polybori::BoolePolynomial::genericBegin ( block_dlex_tag   )  const

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

References PBORI_TRACE_FUNC, and ring().

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

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

BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpBegin ( lex_tag   )  const

BoolePolynomial::lex_exp_iterator polybori::BoolePolynomial::genericExpEnd ( lex_tag   )  const

References PBORI_TRACE_FUNC, and ring().

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

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

References PBORI_TRACE_FUNC, and ring().

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

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

References PBORI_TRACE_FUNC, and ring().

BoolePolynomial::block_dp_asc_exp_iterator polybori::BoolePolynomial::genericExpBegin ( block_dlex_tag   )  const

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

References PBORI_TRACE_FUNC, and ring().

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

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

navigator polybori::BoolePolynomial::navigation (  )  const [inline]

navigator polybori::BoolePolynomial::endOfNavigation (  )  const [inline]

End of navigation marker.

dd_type polybori::BoolePolynomial::copyDiagram (  )  [inline]

gives a copy of the diagram

polybori::BoolePolynomial::operator set_type (  )  const [inline]

Casting operator to Boolean set.

BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLength (  )  const

BoolePolynomial::size_type polybori::BoolePolynomial::eliminationLengthWithDegBound ( deg_type  garantied_deg_bound  )  const

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::termlist_type polybori::BoolePolynomial::terms (  )  const

Return of all terms.

References fetchTerms(), and PBORI_TRACE_FUNC.

const dd_type& polybori::BoolePolynomial::diagram (  )  const [inline]

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

Get corresponding subset of of the powerset over all variables.

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

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::isPair (  )  const [inline]

Test, whether we have two terms only.

References polybori::dd_is_pair().

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

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::fix_point_iterate(), polybori::groebner::full_implication_gb(), polybori::groebner::gauss_on_polys(), 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< polybori::BlockDegRevLexAscOrder, polybori::block_tag >::lead(), lead(), polybori::DegRevLexAscOrder::leadExp(), polybori::DegLexOrder::leadExp(), leadExp(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadExpIteratorBegin(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadExpIteratorEnd(), leadFirst(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::dp_asc_tag >::leadIteratorBegin(), polybori::COrderingFacade< polybori::DegRevLexAscOrder, polybori::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::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::multiply(), polybori::groebner::multiply(), polybori::groebner::nf3_lexbuckets(), operator%=(), polybori::groebner::TimesVariableSubstitution::operator()(), polybori::groebner::TimesConstantImplication::operator()(), polybori::groebner::LLReduction< have_redsb, single_call_for_noredsb, fast_multiplication >::operator()(), polybori::groebner::CountCriterion::operator()(), operator*=(), operator/=(), orderedBegin(), orderedEnd(), orderedExpBegin(), orderedExpEnd(), print(), polybori::groebner::PolyEntry::recomputeInformation(), 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().

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

Compare with right-hand side and return comparision code.

References isZero(), lead(), and PBORI_TRACE_FUNC.

BoolePolynomial::bool_type polybori::BoolePolynomial::inSingleBlock (  )  const

dd_type& polybori::BoolePolynomial::internalDiagram (  )  [inline, protected]

Access to internal decision diagramm structure.

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

BoolePolynomial polybori::BoolePolynomial::leadFirst (  )  const [protected]

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

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

Referenced by leadDeg(), and leadStableHash().

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.


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:

Generated on Wed Jan 30 16:39:52 2013 for PolyBoRi by  doxygen 1.5.6