PolyBoRi
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
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 ()
 Default constructor.
 BoolePolyRing (size_type nvars, ordercode_type order=lp, bool_type make_active=true)
 Constructor for nvars variables.
 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.
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 activate ()
 Make *this global.
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 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)
core_ptr core () const
 Access to actual data (via ->)

Protected Attributes

core_ptr p_core
 Smart pointer to actual data.

Detailed Description

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


Member Typedef Documentation

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.

set decision diagram type

define exponent type

set monomial type

Smart pointer for handling mterm orderings.

Reference for handling mterm orderings.

Type for handling mterm orderings.

Type for ordering codes.

Reimplemented from polybori::CAuxTypes.

set polynomial type

set variables type

Type for setting/getting names of variables.

Reimplemented from polybori::CAuxTypes.


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

Default constructor.

Constructor for nvars variables.

Active Ring

References PBORI_TRACE_FUNC.

polybori::BoolePolyRing::BoolePolyRing ( size_type  nvars,
ordercode_type  order = lp,
bool_type  make_active = true 
) [explicit]

Constructor for nvars variables.

References PBORI_TRACE_FUNC, and activate().

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

void polybori::BoolePolyRing::activate ( )

Make *this global.

References PBORI_TRACE_FUNC, and polybori::BooleEnv::set().

Referenced by BoolePolyRing().

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

Change order of current ring.

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

void polybori::BoolePolyRing::clearCache ( ) [inline]

Clears the function cache.

self polybori::BoolePolyRing::clone ( ) const [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 [inline]

Get constant one or zero.

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

Access to actual data (via ->)

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

Get plain decision diagram manager.

Referenced by coerce(), and print().

vartext_type polybori::BoolePolyRing::getVariableName ( checked_idx_type  idx) const [inline]

Get name of variable with index idx.

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

Get unique identifier for manager of *this.

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

Get number of ring variables.

Referenced by polybori::CIndexHandle::fromNode(), and polybori::CIndexCacheHandle::toNode().

BoolePolyRing::dd_type polybori::BoolePolyRing::one ( ) const [inline]

Get decision diagram with all variables negated.

Referenced by polybori::CCuddLikeMgrStorage::one().

order_reference polybori::BoolePolyRing::ordering ( ) const [inline]
BoolePolyRing::ostream_type & polybori::BoolePolyRing::print ( ostream_type os) const

Print out statistics and settings for current ring to output stream.

References getManager().

void polybori::BoolePolyRing::setVariableName ( checked_idx_type  idx,
vartext_type  varname 
) [inline]

Set name of variable with index idx.

BoolePolyRing::dd_type polybori::BoolePolyRing::variable ( checked_idx_type  nvar) const [inline]

Access nvar-th ring variable as diagram.

Referenced by polybori::CIndexCacheHandle::toNode().

BoolePolyRing::dd_type polybori::BoolePolyRing::zero ( ) const [inline]

Get empty decision diagram.

Referenced by polybori::CCuddLikeMgrStorage::zero(), and polybori::CIndexCacheHandle::toNode().


Member Data Documentation

Smart pointer to actual data.

Referenced by changeOrdering().


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