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 Tue May 6 05:19:58 2008 for PolyBoRi by  doxygen 1.5.5