#include <BoolePolyRing.h>
Public Types | |
typedef class BooleExponent | exp_type |
define exponent type | |
typedef class BooleMonomial | monom_type |
set monomial type | |
typedef class BooleVariable | var_type |
set variables type | |
typedef class BooleSet | dd_type |
set decision diagram type | |
typedef class BoolePolynomial | poly_type |
set polynomial type | |
typedef CCheckedIdx | checked_idx_type |
Check indices bevor using. | |
typedef CCuddCore | core_type |
Type of actual data. | |
typedef core_type::const_varname_reference | const_varname_reference |
typedef boost::intrusive_ptr < core_type > | core_ptr |
Smart pointer to core. | |
typedef core_type::order_type | order_type |
Type for handling mterm orderings. | |
typedef core_type::order_ptr | order_ptr |
Smart pointer for handling mterm orderings. | |
typedef order_type & | order_reference |
Reference for handling mterm orderings. | |
typedef DdManager | mgr_type |
typedef std::vector< idx_type > | block_idx_type |
Type for block indices. | |
typedef block_idx_type::const_iterator | block_iterator |
Type for block iterators. | |
adopt global type definitions | |
typedef CTypes::ordercode_type | ordercode_type |
Type for ordering codes. | |
typedef CTypes::vartext_type | vartext_type |
Type for setting/getting names of variables. | |
Public Member Functions | |
BoolePolyRing (size_type nvars=1, ordercode_type order=lp) | |
Constructor for nvars variables and order code. | |
BoolePolyRing (size_type nvars, const order_ptr &order) | |
Constructor for nvars variables (and given pointer to ordering). | |
BoolePolyRing (const self &rhs) | |
Copy constructor (cheap). | |
~BoolePolyRing () | |
Destructor. | |
size_type | nVariables () const |
Get number of ring variables. | |
vartext_type | getVariableName (checked_idx_type idx) const |
Get name of variable with index idx. | |
void | setVariableName (checked_idx_type idx, vartext_type varname) |
Set name of variable with index idx. | |
void | clearCache () |
Clears the function cache. | |
ostream_type & | print (ostream_type &) const |
Print out statistics and settings for current ring to output stream. | |
hash_type | hash () const |
Get unique identifier for manager of *this. | |
hash_type | id () const |
Get unique identifier for this ring. | |
order_reference | ordering () const |
Access ordering of *this. | |
mgr_type * | getManager () const |
Get plain decision diagram manager. | |
self | clone () const |
Construct ring with similiar properties (deep copy). | |
void | changeOrdering (ordercode_type) |
Change order of current ring. | |
poly_type | coerce (const poly_type &rhs) const |
Map polynomial to this ring, if possible. | |
monom_type | coerce (const monom_type &rhs) const |
Map monomial to this ring, if possible. | |
var_type | coerce (const var_type &rhs) const |
Map variable to this ring. | |
dd_type | variableDiagram (checked_idx_type nvar) const |
Access nvar-th ring variable as diagram. | |
var_type | variable (checked_idx_type nvar) const |
Access nvar-th ring variable as diagram. | |
dd_type | zero () const |
Get empty decision diagram. | |
dd_type | one () const |
Get decision diagram with all variables negated. | |
dd_type | constant (bool is_one) const |
Get constant one or zero. | |
Protected Member Functions | |
BoolePolyRing (const core_ptr &rhs) | |
BoolePolyRing (const CWeakPtr< core_type > &rhs) | |
Get strong reference from weak pointer (used by WeakRingPtr ). | |
core_ptr | core () const |
Access to actual data (via ->). | |
Protected Attributes | |
core_ptr | p_core |
Smart pointer to actual data. | |
Friends | |
class | WeakRingPtr |
The weak pointer needs access to data structure. |
typedef class BooleExponent polybori::BoolePolyRing::exp_type |
define exponent type
typedef class BooleMonomial polybori::BoolePolyRing::monom_type |
set monomial type
typedef class BooleVariable polybori::BoolePolyRing::var_type |
set variables type
typedef class BooleSet polybori::BoolePolyRing::dd_type |
set decision diagram type
typedef class BoolePolynomial polybori::BoolePolyRing::poly_type |
set polynomial type
Check indices bevor using.
Type of actual data.
typedef boost::intrusive_ptr<core_type> polybori::BoolePolyRing::core_ptr |
Smart pointer to core.
Type for handling mterm orderings.
Smart pointer for handling mterm orderings.
Reference for handling mterm orderings.
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.
polybori::BoolePolyRing::BoolePolyRing | ( | const core_ptr & | rhs | ) | [inline, protected] |
Support for shallow copy (clone)
protected
polybori::BoolePolyRing::BoolePolyRing | ( | size_type | nvars = 1 , |
|
ordercode_type | order = lp | |||
) | [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).
polybori::BoolePolyRing::BoolePolyRing | ( | const self & | rhs | ) | [inline] |
Copy constructor (cheap).
polybori::BoolePolyRing::~BoolePolyRing | ( | ) | [inline] |
Destructor.
size_type polybori::BoolePolyRing::nVariables | ( | ) | const [inline] |
Get number of ring variables.
Referenced by polybori::groebner::FGLMStrategy::analyzeGB(), polybori::CIndexHandle< NaviType >::fromNode(), and polybori::CIndexCacheHandle< NaviType >::toNode().
vartext_type polybori::BoolePolyRing::getVariableName | ( | checked_idx_type | idx | ) | const [inline] |
Get name of variable with index idx.
void polybori::BoolePolyRing::setVariableName | ( | checked_idx_type | idx, | |
vartext_type | varname | |||
) | [inline] |
Set name of variable with index idx.
void polybori::BoolePolyRing::clearCache | ( | ) | [inline] |
Clears the function cache.
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<<().
hash_type polybori::BoolePolyRing::hash | ( | ) | const [inline] |
Get unique identifier for manager of *this.
hash_type polybori::BoolePolyRing::id | ( | ) | const [inline] |
order_reference polybori::BoolePolyRing::ordering | ( | ) | const [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::BoolePolynomial::inSingleBlock(), polybori::BoolePolynomial::lead(), polybori::BoolePolynomial::leadExp(), polybori::BoolePolynomial::leadFirst(), polybori::BoolePolynomial::orderedBegin(), polybori::BoolePolynomial::orderedEnd(), polybori::BoolePolynomial::orderedExpBegin(), and polybori::BoolePolynomial::orderedExpEnd().
mgr_type* polybori::BoolePolyRing::getManager | ( | ) | const [inline] |
self polybori::BoolePolyRing::clone | ( | ) | const [inline] |
Construct ring with similiar properties (deep copy).
void polybori::BoolePolyRing::changeOrdering | ( | ordercode_type | order | ) |
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(), and polybori::groebner::FGLMStrategy::main().
BoolePolyRing::monom_type polybori::BoolePolyRing::coerce | ( | const monom_type & | rhs | ) | const |
BoolePolyRing::var_type polybori::BoolePolyRing::coerce | ( | const var_type & | rhs | ) | const |
Map variable to this ring.
BoolePolyRing::dd_type polybori::BoolePolyRing::variableDiagram | ( | checked_idx_type | nvar | ) | const |
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(), and polybori::CIndexCacheHandle< NaviType >::toNode().
BoolePolyRing::dd_type polybori::BoolePolyRing::zero | ( | ) | const |
Get empty decision diagram.
References p_core.
Referenced by constant(), polybori::groebner::gen_random_subset(), polybori::groebner::FGLMStrategy::main(), polybori::groebner::LiteralFactorizationIterator::operator*(), polybori::CIndexCacheHandle< NaviType >::toNode(), and polybori::groebner::MinimalLeadingTerms::update().
BoolePolyRing::dd_type polybori::BoolePolyRing::one | ( | ) | const |
Get decision diagram with all variables negated.
References p_core.
Referenced by polybori::groebner::GroebnerStrategy::addNonTrivialImplicationsDelayed(), and constant().
BoolePolyRing::dd_type polybori::BoolePolyRing::constant | ( | bool | is_one | ) | const |
core_ptr polybori::BoolePolyRing::core | ( | ) | const [inline, protected] |
Access to actual data (via ->).
friend class WeakRingPtr [friend] |
The weak pointer needs access to data structure.
core_ptr polybori::BoolePolyRing::p_core [protected] |