PolyBoRi
Namespaces | Functions
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