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

| 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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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. More...
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) More...
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) More...
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 More...
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