Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > a24e1a39141f9b4ca49bd1e2e23a54ba > files > 221

polybori-doc-0.5rc.p9-6mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>PolyBoRi: polybori::CCuddDDBase&lt; DiagramType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespacepolybori.html">polybori</a>::<a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a>
  </div>
</div>
<div class="contents">
<h1>polybori::CCuddDDBase&lt; DiagramType &gt; Class Template Reference</h1><!-- doxytag: class="polybori::CCuddDDBase" -->This template class defines a C++ interface to <code>CUDD's</code> decision diagram structure.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="CCuddZDD_8h_source.html">CCuddZDD.h</a>&gt;</code>
<p>

<p>
<a href="classpolybori_1_1CCuddDDBase-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef DiagramType&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Name type of *this.  <a href="#391b1ffc855218622a50828e60a8b81b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#48b1110773e989dd749f90b32b4a2f7d">self</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#1156f672b6677c7b25350729b88e1f1a">CCuddCore::errorfunc_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#6453877e3548045687e5152adb0ae715">errorfunc_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#1d099780efc89342267e4c4173a3eb52">CCuddCore::large_size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#170765ab7e98459affc70f080d902632">large_size_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#91a2127db4890d11b34f4653f60393af">CCuddCore::refcount_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#1bc4fb0fdbe106a0d85ae5c0e70a5662">refcount_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#77015122af98d17b7cca612a149cd89d">CCuddCore::node_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#b6f8393780cb249c495880d919e09558">CCuddCore::mgrcore_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#62dc14b3b4af93943bb4ef30c5be22b4">mgrcore_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak">
<a class="el" href="classpolybori_1_1CCuddCore.html#d36c3a51f91d424038ad6cd380af6326">CCuddCore::unary_int_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#89ab096598f13ddbb34fec90f6bd6616">unary_int_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#26360a33fa8a030b055db06f81f75f7f">CCuddCore::void_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#f69191c127eda8bec7d92b0442175722">void_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#0fea615421e42e625943fe3225844b80">CCuddCore::binary_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#2c5ca5705b0ddc737c3dc5cfcaa93c5a">binary_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak">
<a class="el" href="classpolybori_1_1CCuddCore.html#21c98ff4d498b7a19bbbeb24e4c827ab">CCuddCore::binary_int_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d934c183a31c2616d67d559566bcfecb">binary_int_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#5d05258f119e954d300f578eb3d9cbb1">CCuddCore::ternary_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0006ec312346bc6194210987792e4b38">ternary_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <br class="typebreak">
<a class="el" href="classpolybori_1_1CCuddCore.html#d553ab433d565a3f507da96e903ae59c">CCuddCore::int_unary_function</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#eb61a05453f79dfb98d39c9d5c5feca5">int_unary_function</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#c98c23ce4f58682d9c7d6f90d9269f85">CCuddCore::size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#92df9972546cc26db8e44ec45ae9f359">CCuddCore::idx_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#e019decfc7c24d36400cf8bf9c5f8f60">CCuddCore::mgrcore_ptr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define shared pointer type for handling the decision diagram manager.  <a href="#d97630bfe1a2281ef8a8e1e592e7fe6c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#54b223d77e9f38554e8608e972f9738a">CCuddDDBase</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a> ddManager, <a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> ddNode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct diagram from raw CUDD elements.  <a href="#54b223d77e9f38554e8608e972f9738a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#cf757afe175b2fbb1f4588941701962e">CCuddDDBase</a> (const <a class="el" href="classpolybori_1_1CCuddDDBase.html">self</a> &amp;from)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#cf757afe175b2fbb1f4588941701962e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#3644d297a92973d85c50a3c4028f2ed8">CCuddDDBase</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor.  <a href="#3644d297a92973d85c50a3c4028f2ed8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#62a8036bffec87b45672752686a04d3e">manager</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get (shared) pointer to decision diagram manager.  <a href="#62a8036bffec87b45672752686a04d3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#62dc14b3b4af93943bb4ef30c5be22b4">mgrcore_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#b6bd2a5d6c2d60fde0f8b1014c0828e3">getManager</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get raw decision diagram manager.  <a href="#b6bd2a5d6c2d60fde0f8b1014c0828e3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#06ac24d1a26a7d8c747446ac3c366ae3">getNode</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get raw node structure.  <a href="#06ac24d1a26a7d8c747446ac3c366ae3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0bf668194d6ec1daca72e5b00ef912b8">NodeReadIndex</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get index of curent node.  <a href="#0bf668194d6ec1daca72e5b00ef912b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#3bc0fe9f735dc69549f1470b58fcd465">nodeCount</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of nodes in the current decision diagram.  <a href="#3bc0fe9f735dc69549f1470b58fcd465"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#e9dbfa150d454a862e89df86387b8b11">refCount</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of references pointing here.  <a href="#e9dbfa150d454a862e89df86387b8b11"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#21fb4ba7b2c5ebfd589d8165b80e0295">isZero</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test whether diagram represents the empty set.  <a href="#21fb4ba7b2c5ebfd589d8165b80e0295"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#fe4d5ec8989e7288c3b7d4b4eb0b7e61">checkSameManager</a> (const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;other) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test, whether both operands.  <a href="#fe4d5ec8989e7288c3b7d4b4eb0b7e61"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#15929bf2955abb55a92d2f52ecf71d7c">checkReturnValue</a> (const <a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> result) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether decision diagram operation in computing result was valid.  <a href="#15929bf2955abb55a92d2f52ecf71d7c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#be6c7c1eea057734a00785b4cdd398dd">checkReturnValue</a> (const int result, const int expected=1) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether previous decision diagram operation for validity.  <a href="#be6c7c1eea057734a00785b4cdd398dd"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Apply CUDD procedures to nodes</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#c8b0d225e46d231ee2231d8ff9a55da3">apply</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#2c5ca5705b0ddc737c3dc5cfcaa93c5a">binary_function</a> func, const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;rhs) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#cf4a02bd71c486d5e21853128becade3">apply</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#d934c183a31c2616d67d559566bcfecb">binary_int_function</a> func, <a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a> idx) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#4f67b58ba90935172f5f379ff0a17e29">apply</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#0006ec312346bc6194210987792e4b38">ternary_function</a> func, const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;first, const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;second) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#2595f576b6ccd83bdc8948fe03b89d54">apply</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#eb61a05453f79dfb98d39c9d5c5feca5">int_unary_function</a> func) const </td></tr>

<tr><td colspan="2"><div class="groupHeader">Test results from CUDD procedures for validity</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#cd2bc6bf37f9eed1cc8d83a130f80ddf">checkedResult</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> result) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#3201741b2a68cc49d2d59e09e260d167">checkedResult</a> (<a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a> result) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class ResultType &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">ResultType&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#fbe5583631d0dd179981fbec39fcf03e">memApply</a> (ResultType(*func)(DdManager *, <a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>)) const </td></tr>

<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class ResultType &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">ResultType&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#cd8e2c336b08d3e2b8df33fc06308a5e">memChecked</a> (ResultType result) const </td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#7a58ac30da7ec910e04fd7337f71a45f">ddMgr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">(Smart) pointer to decsion diagram management  <a href="#7a58ac30da7ec910e04fd7337f71a45f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpolybori_1_1CCuddDDBase.html#24f2ee03c37ed349f712265c1dc07648">node</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Raw pointer to decision diagram node.  <a href="#24f2ee03c37ed349f712265c1dc07648"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class DiagramType&gt;<br>
 class polybori::CCuddDDBase&lt; DiagramType &gt;</h3>

This template class defines a C++ interface to <code>CUDD's</code> decision diagram structure. 
<p>
The purpose of this wrapper is just to provide an efficient and save way of handling the decision diagrams. It corrects some short-comings of CUDD's built-in interface.<p>
<dl class="attention" compact><dt><b>Attention:</b></dt><dd>This template class is intented for internal use only, e.g. as base class for <a class="el" href="classpolybori_1_1CCuddZDD.html" title="This class defines a C++ interface to CUDD&#39;s zero-suppressed decision diagram...">CCuddZDD</a>. </dd></dl>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="2c5ca5705b0ddc737c3dc5cfcaa93c5a"></a><!-- doxytag: member="polybori::CCuddDDBase::binary_function" ref="2c5ca5705b0ddc737c3dc5cfcaa93c5a" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#2c5ca5705b0ddc737c3dc5cfcaa93c5a">binary_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#2c5ca5705b0ddc737c3dc5cfcaa93c5a">binary_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d934c183a31c2616d67d559566bcfecb"></a><!-- doxytag: member="polybori::CCuddDDBase::binary_int_function" ref="d934c183a31c2616d67d559566bcfecb" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#d934c183a31c2616d67d559566bcfecb">binary_int_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#d934c183a31c2616d67d559566bcfecb">binary_int_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="391b1ffc855218622a50828e60a8b81b"></a><!-- doxytag: member="polybori::CCuddDDBase::diagram_type" ref="391b1ffc855218622a50828e60a8b81b" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef DiagramType <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Name type of *this. 
<p>

</div>
</div><p>
<a class="anchor" name="6453877e3548045687e5152adb0ae715"></a><!-- doxytag: member="polybori::CCuddDDBase::errorfunc_type" ref="6453877e3548045687e5152adb0ae715" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#6453877e3548045687e5152adb0ae715">errorfunc_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#6453877e3548045687e5152adb0ae715">errorfunc_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="8f9a623b7ad55fec18ed53940c7bfaa3"></a><!-- doxytag: member="polybori::CCuddDDBase::idx_type" ref="8f9a623b7ad55fec18ed53940c7bfaa3" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="eb61a05453f79dfb98d39c9d5c5feca5"></a><!-- doxytag: member="polybori::CCuddDDBase::int_unary_function" ref="eb61a05453f79dfb98d39c9d5c5feca5" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#eb61a05453f79dfb98d39c9d5c5feca5">int_unary_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#eb61a05453f79dfb98d39c9d5c5feca5">int_unary_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="170765ab7e98459affc70f080d902632"></a><!-- doxytag: member="polybori::CCuddDDBase::large_size_type" ref="170765ab7e98459affc70f080d902632" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#170765ab7e98459affc70f080d902632">large_size_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#170765ab7e98459affc70f080d902632">large_size_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d97630bfe1a2281ef8a8e1e592e7fe6c"></a><!-- doxytag: member="polybori::CCuddDDBase::mgrcore_ptr" ref="d97630bfe1a2281ef8a8e1e592e7fe6c" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html#e019decfc7c24d36400cf8bf9c5f8f60">CCuddCore::mgrcore_ptr</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Define shared pointer type for handling the decision diagram manager. 
<p>

</div>
</div><p>
<a class="anchor" name="62dc14b3b4af93943bb4ef30c5be22b4"></a><!-- doxytag: member="polybori::CCuddDDBase::mgrcore_type" ref="62dc14b3b4af93943bb4ef30c5be22b4" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#62dc14b3b4af93943bb4ef30c5be22b4">mgrcore_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#62dc14b3b4af93943bb4ef30c5be22b4">mgrcore_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0df8ce4ffc18a36ae6787e685c16379d"></a><!-- doxytag: member="polybori::CCuddDDBase::node_type" ref="0df8ce4ffc18a36ae6787e685c16379d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1bc4fb0fdbe106a0d85ae5c0e70a5662"></a><!-- doxytag: member="polybori::CCuddDDBase::refcount_type" ref="1bc4fb0fdbe106a0d85ae5c0e70a5662" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#1bc4fb0fdbe106a0d85ae5c0e70a5662">refcount_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#1bc4fb0fdbe106a0d85ae5c0e70a5662">refcount_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="48b1110773e989dd749f90b32b4a2f7d"></a><!-- doxytag: member="polybori::CCuddDDBase::self" ref="48b1110773e989dd749f90b32b4a2f7d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html">self</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented in <a class="el" href="classpolybori_1_1CCuddZDD.html#5482a8472d5ec705d90b9daf501acd98">polybori::CCuddZDD</a>.</p>

</div>
</div><p>
<a class="anchor" name="25ffbfd2274f96d27dff919bf327f649"></a><!-- doxytag: member="polybori::CCuddDDBase::size_type" ref="25ffbfd2274f96d27dff919bf327f649" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0006ec312346bc6194210987792e4b38"></a><!-- doxytag: member="polybori::CCuddDDBase::ternary_function" ref="0006ec312346bc6194210987792e4b38" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#0006ec312346bc6194210987792e4b38">ternary_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#0006ec312346bc6194210987792e4b38">ternary_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="89ab096598f13ddbb34fec90f6bd6616"></a><!-- doxytag: member="polybori::CCuddDDBase::unary_int_function" ref="89ab096598f13ddbb34fec90f6bd6616" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#89ab096598f13ddbb34fec90f6bd6616">unary_int_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#89ab096598f13ddbb34fec90f6bd6616">unary_int_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="f69191c127eda8bec7d92b0442175722"></a><!-- doxytag: member="polybori::CCuddDDBase::void_function" ref="f69191c127eda8bec7d92b0442175722" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classpolybori_1_1CCuddCore.html">CCuddCore</a> ::<a class="el" href="classpolybori_1_1CCuddDDBase.html#f69191c127eda8bec7d92b0442175722">void_function</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#f69191c127eda8bec7d92b0442175722">void_function</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="54b223d77e9f38554e8608e972f9738a"></a><!-- doxytag: member="polybori::CCuddDDBase::CCuddDDBase" ref="54b223d77e9f38554e8608e972f9738a" args="(mgrcore_ptr ddManager, node_type ddNode)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a>&nbsp;</td>
          <td class="paramname"> <em>ddManager</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>&nbsp;</td>
          <td class="paramname"> <em>ddNode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construct diagram from raw CUDD elements. 
<p>

</div>
</div><p>
<a class="anchor" name="cf757afe175b2fbb1f4588941701962e"></a><!-- doxytag: member="polybori::CCuddDDBase::CCuddDDBase" ref="cf757afe175b2fbb1f4588941701962e" args="(const self &amp;from)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html">self</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>from</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>

</div>
</div><p>
<a class="anchor" name="3644d297a92973d85c50a3c4028f2ed8"></a><!-- doxytag: member="polybori::CCuddDDBase::CCuddDDBase" ref="3644d297a92973d85c50a3c4028f2ed8" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html">CCuddDDBase</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default constructor. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="2595f576b6ccd83bdc8948fe03b89d54"></a><!-- doxytag: member="polybori::CCuddDDBase::apply" ref="2595f576b6ccd83bdc8948fe03b89d54" args="(int_unary_function func) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#eb61a05453f79dfb98d39c9d5c5feca5">int_unary_function</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4f67b58ba90935172f5f379ff0a17e29"></a><!-- doxytag: member="polybori::CCuddDDBase::apply" ref="4f67b58ba90935172f5f379ff0a17e29" args="(ternary_function func, const diagram_type &amp;first, const diagram_type &amp;second) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0006ec312346bc6194210987792e4b38">ternary_function</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>second</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cf4a02bd71c486d5e21853128becade3"></a><!-- doxytag: member="polybori::CCuddDDBase::apply" ref="cf4a02bd71c486d5e21853128becade3" args="(binary_int_function func, idx_type idx) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d934c183a31c2616d67d559566bcfecb">binary_int_function</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a>&nbsp;</td>
          <td class="paramname"> <em>idx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c8b0d225e46d231ee2231d8ff9a55da3"></a><!-- doxytag: member="polybori::CCuddDDBase::apply" ref="c8b0d225e46d231ee2231d8ff9a55da3" args="(binary_function func, const diagram_type &amp;rhs) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#2c5ca5705b0ddc737c3dc5cfcaa93c5a">binary_function</a>&nbsp;</td>
          <td class="paramname"> <em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="3201741b2a68cc49d2d59e09e260d167"></a><!-- doxytag: member="polybori::CCuddDDBase::checkedResult" ref="3201741b2a68cc49d2d59e09e260d167" args="(idx_type result) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::checkedResult           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#8f9a623b7ad55fec18ed53940c7bfaa3">idx_type</a>&nbsp;</td>
          <td class="paramname"> <em>result</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cd2bc6bf37f9eed1cc8d83a130f80ddf"></a><!-- doxytag: member="polybori::CCuddDDBase::checkedResult" ref="cd2bc6bf37f9eed1cc8d83a130f80ddf" args="(node_type result) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::checkedResult           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>&nbsp;</td>
          <td class="paramname"> <em>result</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="be6c7c1eea057734a00785b4cdd398dd"></a><!-- doxytag: member="polybori::CCuddDDBase::checkReturnValue" ref="be6c7c1eea057734a00785b4cdd398dd" args="(const int result, const int expected=1) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::checkReturnValue           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>expected</em> = <code>1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether previous decision diagram operation for validity. 
<p>

</div>
</div><p>
<a class="anchor" name="15929bf2955abb55a92d2f52ecf71d7c"></a><!-- doxytag: member="polybori::CCuddDDBase::checkReturnValue" ref="15929bf2955abb55a92d2f52ecf71d7c" args="(const node_type result) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::checkReturnValue           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>&nbsp;</td>
          <td class="paramname"> <em>result</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether decision diagram operation in computing result was valid. 
<p>

</div>
</div><p>
<a class="anchor" name="fe4d5ec8989e7288c3b7d4b4eb0b7e61"></a><!-- doxytag: member="polybori::CCuddDDBase::checkSameManager" ref="fe4d5ec8989e7288c3b7d4b4eb0b7e61" args="(const diagram_type &amp;other) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::checkSameManager           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpolybori_1_1CCuddDDBase.html#391b1ffc855218622a50828e60a8b81b">diagram_type</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test, whether both operands. 
<p>

</div>
</div><p>
<a class="anchor" name="b6bd2a5d6c2d60fde0f8b1014c0828e3"></a><!-- doxytag: member="polybori::CCuddDDBase::getManager" ref="b6bd2a5d6c2d60fde0f8b1014c0828e3" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#62dc14b3b4af93943bb4ef30c5be22b4">mgrcore_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::getManager           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get raw decision diagram manager. 
<p>

<p>Referenced by <a class="el" href="CCuddZDD_8h_source.html#l00149">polybori::CCuddDDBase&lt; CCuddZDD &gt;::checkSameManager()</a>.</p>

</div>
</div><p>
<a class="anchor" name="06ac24d1a26a7d8c747446ac3c366ae3"></a><!-- doxytag: member="polybori::CCuddDDBase::getNode" ref="06ac24d1a26a7d8c747446ac3c366ae3" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::getNode           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get raw node structure. 
<p>

<p>Referenced by <a class="el" href="CCuddZDD_8h_source.html#l00167">polybori::CCuddDDBase&lt; CCuddZDD &gt;::apply()</a>.</p>

</div>
</div><p>
<a class="anchor" name="21fb4ba7b2c5ebfd589d8165b80e0295"></a><!-- doxytag: member="polybori::CCuddDDBase::isZero" ref="21fb4ba7b2c5ebfd589d8165b80e0295" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::isZero           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Test whether diagram represents the empty set. 
<p>

</div>
</div><p>
<a class="anchor" name="62a8036bffec87b45672752686a04d3e"></a><!-- doxytag: member="polybori::CCuddDDBase::manager" ref="62a8036bffec87b45672752686a04d3e" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::manager           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get (shared) pointer to decision diagram manager. 
<p>

</div>
</div><p>
<a class="anchor" name="fbe5583631d0dd179981fbec39fcf03e"></a><!-- doxytag: member="polybori::CCuddDDBase::memApply" ref="fbe5583631d0dd179981fbec39fcf03e" args="(ResultType(*func)(DdManager *, node_type)) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
<div class="memtemplate">
template&lt;class ResultType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">ResultType <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::memApply           </td>
          <td>(</td>
          <td class="paramtype">ResultType(*)(DdManager *, <a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a>)&nbsp;</td>
          <td class="paramname"> <em>func</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cd8e2c336b08d3e2b8df33fc06308a5e"></a><!-- doxytag: member="polybori::CCuddDDBase::memChecked" ref="cd8e2c336b08d3e2b8df33fc06308a5e" args="(ResultType result) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
<div class="memtemplate">
template&lt;class ResultType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">ResultType <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::memChecked           </td>
          <td>(</td>
          <td class="paramtype">ResultType&nbsp;</td>
          <td class="paramname"> <em>result</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="3bc0fe9f735dc69549f1470b58fcd465"></a><!-- doxytag: member="polybori::CCuddDDBase::nodeCount" ref="3bc0fe9f735dc69549f1470b58fcd465" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::nodeCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Number of nodes in the current decision diagram. 
<p>

</div>
</div><p>
<a class="anchor" name="0bf668194d6ec1daca72e5b00ef912b8"></a><!-- doxytag: member="polybori::CCuddDDBase::NodeReadIndex" ref="0bf668194d6ec1daca72e5b00ef912b8" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::NodeReadIndex           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get index of curent node. 
<p>

</div>
</div><p>
<a class="anchor" name="e9dbfa150d454a862e89df86387b8b11"></a><!-- doxytag: member="polybori::CCuddDDBase::refCount" ref="e9dbfa150d454a862e89df86387b8b11" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#25ffbfd2274f96d27dff919bf327f649">size_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::refCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Number of references pointing here. 
<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="7a58ac30da7ec910e04fd7337f71a45f"></a><!-- doxytag: member="polybori::CCuddDDBase::ddMgr" ref="7a58ac30da7ec910e04fd7337f71a45f" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#d97630bfe1a2281ef8a8e1e592e7fe6c">mgrcore_ptr</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#7a58ac30da7ec910e04fd7337f71a45f">ddMgr</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
(Smart) pointer to decsion diagram management 
<p>

<p>Referenced by <a class="el" href="CCuddZDD_8h_source.html#l00355">polybori::CCuddZDD::operator=()</a>.</p>

</div>
</div><p>
<a class="anchor" name="24f2ee03c37ed349f712265c1dc07648"></a><!-- doxytag: member="polybori::CCuddDDBase::node" ref="24f2ee03c37ed349f712265c1dc07648" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DiagramType&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpolybori_1_1CCuddDDBase.html#0df8ce4ffc18a36ae6787e685c16379d">node_type</a> <a class="el" href="classpolybori_1_1CCuddDDBase.html">polybori::CCuddDDBase</a>&lt; DiagramType &gt;::<a class="el" href="classpolybori_1_1CCuddDDBase.html#24f2ee03c37ed349f712265c1dc07648">node</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Raw pointer to decision diagram node. 
<p>

<p>Referenced by <a class="el" href="CCuddZDD_8h_source.html#l00355">polybori::CCuddZDD::operator=()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="CCuddZDD_8h_source.html">CCuddZDD.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 9 14:31:01 2009 for PolyBoRi by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>