|
PolyBoRi
|
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and variable names. More...
#include <BoolePolyRing.h>
Public Types | |
| typedef class BooleExponent | exp_type |
| define exponent type More... | |
| typedef class BooleMonomial | monom_type |
| set monomial type More... | |
| typedef class BooleVariable | var_type |
| set variables type More... | |
| typedef class BooleSet | dd_type |
| set decision diagram type More... | |
| typedef class BoolePolynomial | poly_type |
| set polynomial type More... | |
| typedef CCheckedIdx | checked_idx_type |
| Check indices bevor using. More... | |
| typedef CCuddCore | core_type |
| Type of actual data. More... | |
| typedef core_type::const_varname_reference | const_varname_reference |
| typedef boost::intrusive_ptr< core_type > | core_ptr |
| Smart pointer to core. More... | |
| typedef core_type::order_type | order_type |
| Type for handling mterm orderings. More... | |
| typedef core_type::order_ptr | order_ptr |
| Smart pointer for handling mterm orderings. More... | |
| typedef order_type & | order_reference |
| Reference for handling mterm orderings. More... | |
| typedef DdManager | mgr_type |
| typedef std::vector< idx_type > | block_idx_type |
| Type for block indices. More... | |
| typedef block_idx_type::const_iterator | block_iterator |
| Type for block iterators. More... | |
adopt global type definitions | |
| typedef CTypes::ordercode_type | ordercode_type |
| typedef CTypes::vartext_type | vartext_type |
Public Types inherited from polybori::COrderEnums | |
| enum | ordercodes { lp, dlex, dp_asc, block_dlex, block_dp_asc } |
| Codes For orderings. More... | |
Public Types inherited from polybori::CCompareEnums | |
| enum | comparecodes { less_than = -1, equality = 0, greater_than = +1, less_or_equal_max = 0, greater_or_equal_min = 0 } |
| Comparision codes enumeration. More... | |
| enum | { max_idx = ((DdHalfWord) ~0) } |
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 | |
| BoolePolyRing (size_type nvars=1, ordercode_type order=lp) | |
| Constructor for nvars variables and order code. More... | |
| BoolePolyRing (size_type nvars, const order_ptr &order) | |
| Constructor for nvars variables (and given pointer to ordering) More... | |
| BoolePolyRing (const self &rhs) | |
| Copy constructor (cheap) More... | |
| ~BoolePolyRing () | |
| Destructor. More... | |
| size_type | nVariables () const |
| Get number of ring variables. More... | |
| vartext_type | getVariableName (checked_idx_type idx) const |
| Get name of variable with index idx. More... | |
| void | setVariableName (checked_idx_type idx, vartext_type varname) |
| Set name of variable with index idx. More... | |
| void | clearCache () |
| Clears the function cache. More... | |
| ostream_type & | print (ostream_type &) const |
| Print out statistics and settings for current ring to output stream. More... | |
| hash_type | hash () const |
| Get unique identifier for manager of *this. More... | |
| hash_type | id () const |
| Get unique identifier for this ring. More... | |
| order_reference | ordering () const |
| Access ordering of *this. More... | |
| mgr_type * | getManager () const |
| Get plain decision diagram manager. More... | |
| self | clone () const |
| Construct ring with similiar properties (deep copy) More... | |
| void | changeOrdering (ordercode_type) |
| Change order of current ring. More... | |
| poly_type | coerce (const poly_type &rhs) const |
| Map polynomial to this ring, if possible. More... | |
| monom_type | coerce (const monom_type &rhs) const |
| Map monomial to this ring, if possible. More... | |
| var_type | coerce (const var_type &rhs) const |
| Map variable to this ring. More... | |
| dd_type | variableDiagram (checked_idx_type nvar) const |
| Access nvar-th ring variable as diagram. More... | |
| var_type | variable (checked_idx_type nvar) const |
| Access nvar-th ring variable as diagram. More... | |
| dd_type | zero () const |
| Get empty decision diagram. More... | |
| dd_type | one () const |
| Get decision diagram with all variables negated. More... | |
| dd_type | constant (bool is_one) const |
| Get constant one or zero. More... | |
Protected Member Functions | |
| BoolePolyRing (const core_ptr &rhs) | |
| BoolePolyRing (const CWeakPtr< core_type > &rhs) | |
Get strong reference from weak pointer (used by WeakRingPtr) More... | |
| core_ptr | core () const |
| Access to actual data (via ->) More... | |
Protected Attributes | |
| core_ptr | p_core |
| Smart pointer to actual data. More... | |
Friends | |
| class | WeakRingPtr |
| The weak pointer needs access to data structure. More... | |
This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and variable names.
| typedef std::vector<idx_type> polybori::BoolePolyRing::block_idx_type |
Type for block indices.
| typedef block_idx_type::const_iterator polybori::BoolePolyRing::block_iterator |
Type for block iterators.
Check indices bevor using.
| typedef boost::intrusive_ptr<core_type> polybori::BoolePolyRing::core_ptr |
Smart pointer to core.
Type of actual data.
| typedef class BooleSet polybori::BoolePolyRing::dd_type |
set decision diagram type
| typedef class BooleExponent polybori::BoolePolyRing::exp_type |
define exponent type
| typedef class BooleMonomial polybori::BoolePolyRing::monom_type |
set monomial type
Smart pointer for handling mterm orderings.
Reference for handling mterm orderings.
Type for handling mterm orderings.
| typedef class BoolePolynomial polybori::BoolePolyRing::poly_type |
set polynomial type
| typedef class BooleVariable polybori::BoolePolyRing::var_type |
set variables type
|
inlineprotected |
Support for shallow copy (clone)
protected Get strong reference from weak pointer (used by WeakRingPtr)
References PBORI_ASSERT.
|
explicit |
Constructor for nvars variables and order code.
Constructor for nvars variables.
References PBORI_TRACE_FUNC.
Constructor for nvars variables (and given pointer to ordering)
|
inline |
Copy constructor (cheap)
|
inline |
Destructor.
| void polybori::BoolePolyRing::changeOrdering | ( | ordercode_type | order | ) |
Change order of current ring.
References polybori::get_ordering(), p_core, and PBORI_TRACE_FUNC.
|
inline |
Clears the function cache.
|
inline |
Construct ring with similiar properties (deep copy)
| BoolePolyRing::poly_type polybori::BoolePolyRing::coerce | ( | const poly_type & | rhs | ) | const |
Map polynomial to this ring, if possible.
References getManager(), and polybori::CErrorEnums::invalid.
Referenced by coerce().
| BoolePolyRing::monom_type polybori::BoolePolyRing::coerce | ( | const monom_type & | rhs | ) | const |
Map monomial to this ring, if possible.
References coerce().
| BoolePolyRing::var_type polybori::BoolePolyRing::coerce | ( | const var_type & | rhs | ) | const |
Map variable to this ring.
| BoolePolyRing::dd_type polybori::BoolePolyRing::constant | ( | bool | is_one | ) | const |
Get constant one or zero.
|
inlineprotected |
Access to actual data (via ->)
|
inline |
|
inline |
Get name of variable with index idx.
|
inline |
Get unique identifier for manager of *this.
|
inline |
Get unique identifier for this ring.
Referenced by polybori::groebner::GroebnerStrategy::addGeneratorDelayed(), and polybori::groebner::GroebnerStrategy::addGeneratorTrySplit().
|
inline |
Get number of ring variables.
Referenced by polybori::CIndexHandle< NaviType >::fromNode(), polybori::groebner::CacheManager::insert(), polybori::groebner::CacheManager::lookup(), polybori::groebner::minimal_elements_internal3(), polybori::groebner::GroebnerStrategy::suggestPluginVariable(), polybori::CIndexCacheHandle< NaviType >::toNode(), and polybori::groebner::LexBucket::updateTailStart().
| BoolePolyRing::dd_type polybori::BoolePolyRing::one | ( | ) | const |
Get decision diagram with all variables negated.
Referenced by polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), polybori::groebner::do_is_rewriteable(), polybori::groebner::minimal_elements_divided(), and polybori::groebner::variety_lex_leading_terms().
|
inline |
Access ordering of *this.
Referenced by polybori::block_begin(), polybori::block_end(), polybori::BoolePolynomial::boundedLead(), polybori::BoolePolynomial::boundedLeadExp(), polybori::BooleMonomial::compare(), polybori::groebner::get_table_entry4(), polybori::groebner::have_base_ordering_for_tables(), polybori::groebner::have_ordering_for_tables(), polybori::groebner::ReductionStrategy::headNormalForm(), polybori::BoolePolynomial::inSingleBlock(), polybori::BoolePolynomial::lead(), polybori::BoolePolynomial::leadExp(), polybori::BoolePolynomial::leadFirst(), polybori::groebner::LiteralFactorization::LiteralFactorization(), polybori::BoolePolynomial::orderedBegin(), polybori::BoolePolynomial::orderedEnd(), polybori::BoolePolynomial::orderedExpBegin(), polybori::BoolePolynomial::orderedExpEnd(), polybori::groebner::red_tail(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_in_last_block(), and polybori::groebner::ReductionStrategy::select1().
| BoolePolyRing::ostream_type & polybori::BoolePolyRing::print | ( | ostream_type & | os | ) | const |
Print out statistics and settings for current ring to output stream.
References Cudd_PrintInfo, getManager(), and PBORI_PREFIX.
Referenced by polybori::operator<<().
|
inline |
Set name of variable with index idx.
| BoolePolyRing::var_type polybori::BoolePolyRing::variable | ( | checked_idx_type | nvar | ) | const |
Access nvar-th ring variable as diagram.
Referenced by polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), polybori::groebner::code_2_m_4(), polybori::groebner::TimesConstantImplication::operator()(), polybori::groebner::TimesVariableSubstitution::operator()(), and polybori::CIndexCacheHandle< NaviType >::toNode().
| BoolePolyRing::dd_type polybori::BoolePolyRing::variableDiagram | ( | checked_idx_type | nvar | ) | const |
Access nvar-th ring variable as diagram.
| BoolePolyRing::dd_type polybori::BoolePolyRing::zero | ( | ) | const |
Get empty decision diagram.
Referenced by polybori::groebner::do_is_rewriteable(), polybori::groebner::gen_random_subset(), polybori::groebner::PairManager::nextSpoly(), polybori::groebner::nf3_lexbuckets(), polybori::groebner::random_set_using_generator(), polybori::groebner::red_tail_general(), polybori::groebner::red_tail_generic(), polybori::groebner::reduce_by_monom(), polybori::CIndexCacheHandle< NaviType >::toNode(), polybori::groebner::translate_indices(), and polybori::groebner::MinimalLeadingTerms::update().
|
friend |
The weak pointer needs access to data structure.
|
protected |
Smart pointer to actual data.
Referenced by changeOrdering().
1.8.9.1