pbori_algo.h File Reference

#include <polybori/pbori_defs.h>
#include "pbori_func.h"
#include <polybori/common/traits.h>
#include <polybori/cudd/cudd.h>
#include <polybori/ring/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>
bool polybori::owns_one (NaviType navi)
 Test whether the empty set is included.
template<class CacheMgr, class NaviType, class SetType>
SetType polybori::dd_modulo_monomials (const CacheMgr &cache_mgr, NaviType navi, NaviType rhs, const SetType &init)
template<class CacheMgr, class ModMonCacheMgr, class NaviType, class SetType>
SetType polybori::dd_minimal_elements (const CacheMgr &cache_mgr, const ModMonCacheMgr &modmon_mgr, NaviType navi, const SetType &init)
 Get minimal elements with respect to inclusion.
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)
template<class ManagerType, class ReverseIterator, class MultReverseIterator, class DDBase>
DDBase polybori::cudd_generate_multiples (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish, MultReverseIterator multStart, MultReverseIterator multFinish, type_tag< DDBase >)
 temporarily (needs to be more generic) (similar fct in CCuddDDFacade.h)
template<class ManagerType, class ReverseIterator, class DDBase>
DDBase polybori::cudd_generate_divisors (const ManagerType &mgr, ReverseIterator start, ReverseIterator finish, type_tag< DDBase >)
 temporarily (needs to be more generic) (similar fct in CCuddDDFacade.h)
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)
template<class InIter, class OutIter, class Object, class MemberFuncPtr>
OutIter polybori::transform (InIter start, InIter finish, OutIter result, Object &obj, MemberFuncPtr func)
template<class InIter, class Object, class MemberFuncPtr>
void polybori::for_each (InIter start, InIter finish, Object &obj, MemberFuncPtr func)
template<class InIter, class Object, class MemberFuncPtr>
void polybori::for_each (InIter start, InIter finish, const Object &obj, MemberFuncPtr func)
template<class Type, class Type1>
const Type & polybori::which (bool condition, const Type1 &value1, const Type &value)
template<class Type, class Type1, class Type2>
const Type & polybori::which (bool cond1, const Type1 &value1, bool cond2, const Type2 &value2, const Type &value)
template<class Type, class Type1, class Type2, class Type3>
const Type & polybori::which (bool cond1, const Type1 &value1, bool cond2, const Type2 &value2, bool cond3, const Type3 &value3, const Type &value)
template<class IDType, class Iterator>
bool polybori::same_rings (const IDType &id, Iterator start, Iterator finish)
template<class Iterator>
bool polybori::same_rings (Iterator start, Iterator finish)


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 Wed Jan 30 16:39:51 2013 for PolyBoRi by  doxygen 1.5.6