polybori::BoolePolyRing Class Reference

This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and variable names. More...

#include <BoolePolyRing.h>

Inheritance diagram for polybori::BoolePolyRing:

polybori::COrderEnums polybori::CCompareEnums polybori::CAuxTypes

List of all members.

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_typeorder_reference
 Reference for handling mterm orderings.
typedef DdManager mgr_type
typedef std::vector< idx_typeblock_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_typeprint (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_typegetManager () 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.


Detailed Description

This class reinterprets decicion diagram managers as Boolean polynomial rings, adds an ordering and variable names.

Member Typedef Documentation

define exponent type

set monomial type

set variables type

set decision diagram type

set polynomial type

Type for ordering codes.

Reimplemented from polybori::CAuxTypes.

Type for setting/getting names of variables.

Reimplemented from polybori::CAuxTypes.

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.

Type for block indices.

typedef block_idx_type::const_iterator polybori::BoolePolyRing::block_iterator

Type for block iterators.


Constructor & Destructor Documentation

polybori::BoolePolyRing::BoolePolyRing ( const core_ptr rhs  )  [inline, protected]

Support for shallow copy (clone)

Note:
May generate invalid ring, hence protected

polybori::BoolePolyRing::BoolePolyRing ( const CWeakPtr< core_type > &  rhs  )  [inline, explicit, protected]

Get strong reference from weak pointer (used by WeakRingPtr).

References PBORI_ASSERT.

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.

polybori::BoolePolyRing::BoolePolyRing ( size_type  nvars,
const order_ptr order 
) [inline]

Constructor for nvars variables (and given pointer to ordering).

polybori::BoolePolyRing::BoolePolyRing ( const self rhs  )  [inline]

Copy constructor (cheap).

polybori::BoolePolyRing::~BoolePolyRing (  )  [inline]

Destructor.


Member Function Documentation

size_type polybori::BoolePolyRing::nVariables (  )  const [inline]

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]

Get unique identifier for this ring.

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

order_reference polybori::BoolePolyRing::ordering (  )  const [inline]

mgr_type* polybori::BoolePolyRing::getManager (  )  const [inline]

Get plain decision diagram manager.

Referenced by coerce(), and print().

self polybori::BoolePolyRing::clone (  )  const [inline]

Construct ring with similiar properties (deep copy).

void polybori::BoolePolyRing::changeOrdering ( ordercode_type  order  ) 

Change order of current ring.

References polybori::get_ordering(), p_core, and PBORI_TRACE_FUNC.

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

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::variableDiagram ( checked_idx_type  nvar  )  const

Access nvar-th ring variable as diagram.

References p_core.

BoolePolyRing::var_type polybori::BoolePolyRing::variable ( checked_idx_type  nvar  )  const

BoolePolyRing::dd_type polybori::BoolePolyRing::zero (  )  const

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

Get constant one or zero.

References one(), and zero().

core_ptr polybori::BoolePolyRing::core (  )  const [inline, protected]

Access to actual data (via ->).


Friends And Related Function Documentation

friend class WeakRingPtr [friend]

The weak pointer needs access to data structure.


Member Data Documentation

Smart pointer to actual data.

Referenced by changeOrdering(), one(), variableDiagram(), and zero().


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