<!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: pbori_algo.h File 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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>pbori_algo.h File Reference</h1><code>#include "<a class="el" href="pbori__defs_8h_source.html">pbori_defs.h</a>"</code><br> <code>#include "<a class="el" href="pbori__func_8h_source.html">pbori_func.h</a>"</code><br> <code>#include "<a class="el" href="pbori__traits_8h_source.html">pbori_traits.h</a>"</code><br> <code>#include "cudd.h"</code><br> <code>#include "cuddInt.h"</code><br> <code>#include "<a class="el" href="CCuddInterface_8h_source.html">CCuddInterface.h</a>"</code><br> <p> <a href="pbori__algo_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Namespaces</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepolybori.html">polybori</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class TermType , class TernaryOperator , class TerminalOperator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">TermType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#681b961708e4781decc938ba35aafe34">polybori::dd_backward_transform</a> (NaviType navi, TermType init, TernaryOperator newNode, TerminalOperator terminate)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates for transforming decision diagrams. <a href="#681b961708e4781decc938ba35aafe34"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator , class TerminalOperator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">OutIterator </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#094813e9371a53ba49be73a828c5a9dd">polybori::dd_transform</a> (NaviType navi, TermType init, OutIterator result, ThenBinaryOperator then_binop, ElseBinaryOperator else_binop, TerminalOperator terminate)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates for transforming decision diagrams. <a href="#094813e9371a53ba49be73a828c5a9dd"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator , class TerminalOperator , class FirstTermOp > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">OutIterator </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#786b86aa045cae7a738a47d9918ecce9">polybori::dd_transform</a> (NaviType navi, TermType init, OutIterator result, ThenBinaryOperator then_binop, ElseBinaryOperator else_binop, TerminalOperator terminate, FirstTermOp terminate_first)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#ec5429fd8cdb912534290d56eb5d78d5">polybori::dd_transform</a> (const NaviType &navi, const TermType &init, const OutIterator &result, const ThenBinaryOperator &then_binop, const ElseBinaryOperator &else_binop)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates for transforming decision diagrams. <a href="#ec5429fd8cdb912534290d56eb5d78d5"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#eb1a56a93f04c61bc5924739c1176d05">polybori::dd_transform</a> (const NaviType &navi, const TermType &init, const OutIterator &result, const ThenBinaryOperator &then_binop)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates for transforming decision diagrams. <a href="#eb1a56a93f04c61bc5924739c1176d05"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class InputIterator , class OutputIterator , class FirstFunction , class UnaryFunction > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">OutputIterator </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#623299a572ab265b87536471038a051b">polybori::special_first_transform</a> (InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op, FirstFunction firstop)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class InputIterator , class Intermediate , class OutputIterator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">OutputIterator </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#39e393c4286cf8905dd845f004f04443">polybori::reversed_inter_copy</a> (InputIterator start, InputIterator finish, Intermediate &inter, OutputIterator output)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates doing a reversed copy using intermediate storage. <a href="#39e393c4286cf8905dd845f004f04443"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#e0f426c9c7e4e2fe4d75775a4ef99ee9">polybori::dd_on_path</a> (NaviType navi)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class OrderedIterator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#cb6344d5ff20ba21b11d4480ee9e78e2">polybori::dd_owns_term_of_indices</a> (NaviType navi, OrderedIterator start, OrderedIterator finish)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class OrderedIterator , class NodeOperation > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">NaviType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#f85e7fef57412e7c2b830144c68e2509">polybori::dd_intersect_some_index</a> (NaviType navi, OrderedIterator start, OrderedIterator finish, NodeOperation newNode)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#b5d7d5cc3e86f3707d30aeffc57bb685">polybori::dd_print</a> (NaviType navi)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Function templates for debugging, prints dd indices and reference counts. <a href="#b5d7d5cc3e86f3707d30aeffc57bb685"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class IteratorType , class SizeType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">SizeType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#b82f8384b788b0d1ace855581c13c0c4">polybori::limited_distance</a> (IteratorType start, IteratorType finish, SizeType limit)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class DDType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">DDType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#f21584c7975eb3bde0a26902776245d9">polybori::dd_minimal_elements</a> (NaviType navi, DDType dd, DDType &multiples)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class MgrType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">const MgrType & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#133ade2eba08cb872ac4355b389f2cdf">polybori::get_mgr_core</a> (const MgrType &rhs)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Cudd * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#c9ecc6f30d24c887aee5050125db8dfe">polybori::get_mgr_core</a> (const Cudd &rhs)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">CCuddInterface::mgrcore_ptr </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#704e9319a84420bbfed328e77d3ee460">polybori::get_mgr_core</a> (const CCuddInterface &mgr)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class ManagerType , class ReverseIterator , class MultReverseIterator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">manager_traits< ManagerType ><br class="typebreak"> ::dd_base </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#9f5a4551340ca9187a30a37dbccf3f56">polybori::cudd_generate_multiples</a> (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish, MultReverseIterator multStart, MultReverseIterator multFinish)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">temporarily (needs to be more generic) <a href="#9f5a4551340ca9187a30a37dbccf3f56"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class ManagerType , class ReverseIterator > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">manager_traits< ManagerType ><br class="typebreak"> ::dd_base </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#220b46f13d6e432df1cd40432dddbabb">polybori::cudd_generate_divisors</a> (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">temporarily (needs to be more generic) <a href="#220b46f13d6e432df1cd40432dddbabb"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class Iterator , class SizeType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">Iterator </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#56c065103475f23d2b514ebf419fa79e">polybori::bounded_max_element</a> (Iterator start, Iterator finish, SizeType bound)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class LhsType , class RhsType , class BinaryPredicate > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">CTypes::comp_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#5d5bac8b009548eb8ec17ca2f47eced8">polybori::generic_compare_3way</a> (const LhsType &lhs, const RhsType &rhs, BinaryPredicate comp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">defines lexicographic comparison for variable indices <a href="#5d5bac8b009548eb8ec17ca2f47eced8"></a><br></td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class IteratorLike , class ForwardIteratorTag > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">IteratorLike </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#d7c8a70512fdf0903425cc0e4b6d7125">polybori::increment_iteratorlike</a> (IteratorLike iter, ForwardIteratorTag)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class IteratorLike > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">IteratorLike </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#6e736eaf4ce650ab31ef125ebb052f5b">polybori::increment_iteratorlike</a> (IteratorLike iter, navigator_tag)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class IteratorLike > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">IteratorLike </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#2032714f022961f802e7f4500ccbf8bd">polybori::increment_iteratorlike</a> (IteratorLike iter)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DdNode * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#c8eef4822df804ee3e8a6c97ecb722ef">polybori::pboriCuddZddUnionXor__</a> (DdManager *, DdNode *, DdNode *)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class MgrType , class NodeType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">NodeType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#e49cee209098fb6dd51dbd9f5af13c21">polybori::pboriCuddZddUnionXor</a> (MgrType zdd, NodeType P, NodeType Q)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class MgrType , class NodeType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">NodeType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#41700debc9ce9c13c5e1b325e4148fcc">polybori::pboriCudd_zddUnionXor</a> (MgrType dd, NodeType P, NodeType Q)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#c33297fcea6d9ca92eabacdeeb2e050e">polybori::dd_is_singleton</a> (NaviType navi)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType , class BooleConstant > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">BooleConstant </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#4e8278bdd0e2fb5175daff3f3d193f9d">polybori::dd_pair_check</a> (NaviType navi, BooleConstant allowSingleton)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#e0805d1b223014c55931ebb35a19b435">polybori::dd_is_singleton_or_pair</a> (NaviType navi)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class NaviType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#1e37aeba5f3db38e566e81de60082baa">polybori::dd_is_pair</a> (NaviType navi)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class SetType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#b65c63c61dd7aad862079a7925b4e723">polybori::combine_sizes</a> (const SetType &bset, double &init)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class SetType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#d21dcb084f3c03e9e7b2cbaa55e1aee4">polybori::combine_sizes</a> (const SetType &bset, typename SetType::size_type &init)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class SizeType , class IdxType , class NaviType , class SetType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">SizeType & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#1ef23e0db31b7bdde5d643bd686f19ba">polybori::count_index</a> (SizeType &size, IdxType idx, NaviType navi, const SetType &init)</td></tr> <tr><td class="memTemplParams" nowrap colspan="2">template<class SizeType , class IdxType , class SetType > </td></tr> <tr><td class="memTemplItemLeft" nowrap align="right" valign="top">SizeType & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacepolybori.html#d2cfa7f286fcb7edd2506ea988108d15">polybori::count_index</a> (SizeType &size, IdxType idx, const SetType &bset)</td></tr> </table> <hr><h2>Detailed Description</h2> <dl class="author" compact><dt><b>Author:</b></dt><dd>Alexander Dreyer </dd></dl> <dl class="date" compact><dt><b>Date:</b></dt><dd>2006-04-07</dd></dl> This file includes some templates of simple transformations and similar procedures.<p> <dl class="note" compact><dt><b>Note:</b></dt><dd>This file carries pure template routines. Algorithms, which make explicite use of PolyBoRi classes can be found in <a class="el" href="pbori__algorithms_8h.html">pbori_algorithms.h</a></dd></dl> <dl class="user" compact><dt><b>Copyright:</b></dt><dd>(c) 2006 by The PolyBoRi Team </dd></dl> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 9 14:31:00 2009 for PolyBoRi by <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>