pbori_algo.h File Reference

#include "pbori_defs.h"
#include "pbori_func.h"
#include "pbori_traits.h"
#include "cudd.h"
#include "cuddInt.h"
#include "CCuddInterface.h"

Go to the source code of this file.

Namespaces

namespace  polybori

Functions

template<class NaviType , class TermType , class TernaryOperator , class TerminalOperator >
TermType polybori::dd_backward_transform (NaviType navi, TermType init, TernaryOperator newNode, TerminalOperator terminate)
 Function templates for transforming decision diagrams.
template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator , class TerminalOperator >
OutIterator polybori::dd_transform (NaviType navi, TermType init, OutIterator result, ThenBinaryOperator then_binop, ElseBinaryOperator else_binop, TerminalOperator terminate)
 Function templates for transforming decision diagrams.
template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator , class TerminalOperator , class FirstTermOp >
OutIterator polybori::dd_transform (NaviType navi, TermType init, OutIterator result, ThenBinaryOperator then_binop, ElseBinaryOperator else_binop, TerminalOperator terminate, FirstTermOp terminate_first)
template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator , class ElseBinaryOperator >
void polybori::dd_transform (const NaviType &navi, const TermType &init, const OutIterator &result, const ThenBinaryOperator &then_binop, const ElseBinaryOperator &else_binop)
 Function templates for transforming decision diagrams.
template<class NaviType , class TermType , class OutIterator , class ThenBinaryOperator >
void polybori::dd_transform (const NaviType &navi, const TermType &init, const OutIterator &result, const ThenBinaryOperator &then_binop)
 Function templates for transforming decision diagrams.
template<class InputIterator , class OutputIterator , class FirstFunction , class UnaryFunction >
OutputIterator polybori::special_first_transform (InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op, FirstFunction firstop)
template<class InputIterator , class Intermediate , class OutputIterator >
OutputIterator polybori::reversed_inter_copy (InputIterator start, InputIterator finish, Intermediate &inter, OutputIterator output)
 Function templates doing a reversed copy using intermediate storage.
template<class NaviType >
bool polybori::dd_on_path (NaviType navi)
template<class NaviType , class OrderedIterator >
bool polybori::dd_owns_term_of_indices (NaviType navi, OrderedIterator start, OrderedIterator finish)
template<class NaviType , class OrderedIterator , class NodeOperation >
NaviType polybori::dd_intersect_some_index (NaviType navi, OrderedIterator start, OrderedIterator finish, NodeOperation newNode)
template<class NaviType >
void polybori::dd_print (NaviType navi)
 Function templates for debugging, prints dd indices and reference counts.
template<class IteratorType , class SizeType >
SizeType polybori::limited_distance (IteratorType start, IteratorType finish, SizeType limit)
template<class NaviType , class DDType >
DDType polybori::dd_minimal_elements (NaviType navi, DDType dd, DDType &multiples)
template<class MgrType >
const MgrType & polybori::get_mgr_core (const MgrType &rhs)
Cudd * polybori::get_mgr_core (const Cudd &rhs)
CCuddInterface::mgrcore_ptr polybori::get_mgr_core (const CCuddInterface &mgr)
template<class ManagerType , class ReverseIterator , class MultReverseIterator >
manager_traits< ManagerType >
::dd_base 
polybori::cudd_generate_multiples (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish, MultReverseIterator multStart, MultReverseIterator multFinish)
 temporarily (needs to be more generic)
template<class ManagerType , class ReverseIterator >
manager_traits< ManagerType >
::dd_base 
polybori::cudd_generate_divisors (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish)
 temporarily (needs to be more generic)
template<class Iterator , class SizeType >
Iterator polybori::bounded_max_element (Iterator start, Iterator finish, SizeType bound)
template<class LhsType , class RhsType , class BinaryPredicate >
CTypes::comp_type polybori::generic_compare_3way (const LhsType &lhs, const RhsType &rhs, BinaryPredicate comp)
 defines lexicographic comparison for variable indices
template<class IteratorLike , class ForwardIteratorTag >
IteratorLike polybori::increment_iteratorlike (IteratorLike iter, ForwardIteratorTag)
template<class IteratorLike >
IteratorLike polybori::increment_iteratorlike (IteratorLike iter, navigator_tag)
template<class IteratorLike >
IteratorLike polybori::increment_iteratorlike (IteratorLike iter)
DdNode * polybori::pboriCuddZddUnionXor__ (DdManager *, DdNode *, DdNode *)
template<class MgrType , class NodeType >
NodeType polybori::pboriCuddZddUnionXor (MgrType zdd, NodeType P, NodeType Q)
template<class MgrType , class NodeType >
NodeType polybori::pboriCudd_zddUnionXor (MgrType dd, NodeType P, NodeType Q)
template<class NaviType >
bool polybori::dd_is_singleton (NaviType navi)
template<class NaviType , class BooleConstant >
BooleConstant polybori::dd_pair_check (NaviType navi, BooleConstant allowSingleton)
template<class NaviType >
bool polybori::dd_is_singleton_or_pair (NaviType navi)
template<class NaviType >
bool polybori::dd_is_pair (NaviType navi)
template<class SetType >
void polybori::combine_sizes (const SetType &bset, double &init)
template<class SetType >
void polybori::combine_sizes (const SetType &bset, typename SetType::size_type &init)
template<class SizeType , class IdxType , class NaviType , class SetType >
SizeType & polybori::count_index (SizeType &size, IdxType idx, NaviType navi, const SetType &init)
template<class SizeType , class IdxType , class SetType >
SizeType & polybori::count_index (SizeType &size, IdxType idx, const SetType &bset)


Detailed Description

Author:
Alexander Dreyer
Date:
2006-04-07
This file includes some templates of simple transformations and similar procedures.

Note:
This file carries pure template routines. Algorithms, which make explicite use of PolyBoRi classes can be found in pbori_algorithms.h
Copyright:
(c) 2006 by The PolyBoRi Team

Generated on Thu Mar 5 02:30:40 2009 for PolyBoRi by  doxygen 1.5.8