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

 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