pbori_algorithms.h File Reference

#include <numeric>
#include "pbori_defs.h"
#include "pbori_algo.h"
#include "BoolePolynomial.h"
#include "BooleMonomial.h"
#include "CGenericIter.h"

Go to the source code of this file.

Functions

BEGIN_NAMESPACE_PBORI
BoolePolynomial 
spoly (const BoolePolynomial &first, const BoolePolynomial &second)
template<class NaviType , class LowerIterator , class ValueType >
ValueType lower_term_accumulate (NaviType navi, LowerIterator lstart, LowerIterator lfinish, ValueType init)
template<class UpperIterator , class NaviType , class ValueType >
ValueType upper_term_accumulate (UpperIterator ustart, UpperIterator ufinish, NaviType navi, ValueType init)
template<class UpperIterator , class NaviType , class LowerIterator , class ValueType >
ValueType term_accumulate (UpperIterator ustart, UpperIterator ufinish, NaviType navi, LowerIterator lstart, LowerIterator lfinish, ValueType init)
template<class InputIterator , class ValueType >
ValueType term_accumulate (InputIterator first, InputIterator last, ValueType init)
template<class CacheType , class NaviType , class SetType >
SetType dd_mapping (const CacheType &cache, NaviType navi, NaviType map, SetType init)
template<class PolyType , class MapType >
PolyType apply_mapping (const PolyType &poly, const MapType &map)
template<class MonomType , class PolyType >
PolyType generate_mapping (MonomType &fromVars, MonomType &toVars, PolyType init)
template<class PolyType , class MonomType >
PolyType mapping (PolyType poly, MonomType fromVars, MonomType toVars)

Detailed Description

Author:
Alexander Dreyer
Date:
2007-05-11

This file contains algorithmic procedures, which can be used together with PolyBoRi classes.

Note:
This file depends on several PolyBoRi classes, so it should not be included by PolyBoRi headers (excl. polybori.h), because this would lead to curious dependencies. Several templates, which do not depend on PolyBoRi classes can be found in pbori_algo.h.
Copyright:
(c) 2007 by The PolyBoRi Team

Function Documentation

template<class PolyType , class MapType >
PolyType apply_mapping ( const PolyType &  poly,
const MapType &  map 
) [inline]

References dd_mapping().

Referenced by mapping().

template<class CacheType , class NaviType , class SetType >
SetType dd_mapping ( const CacheType &  cache,
NaviType  navi,
NaviType  map,
SetType  init 
) [inline]

Referenced by apply_mapping().

template<class MonomType , class PolyType >
PolyType generate_mapping ( MonomType &  fromVars,
MonomType &  toVars,
PolyType  init 
) [inline]

Referenced by mapping().

template<class NaviType , class LowerIterator , class ValueType >
ValueType lower_term_accumulate ( NaviType  navi,
LowerIterator  lstart,
LowerIterator  lfinish,
ValueType  init 
) [inline]

Todo:
Maybe recursive caching is efficient here.

References CDDInterface< CuddLikeZDD >::change().

Referenced by term_accumulate().

template<class PolyType , class MonomType >
PolyType mapping ( PolyType  poly,
MonomType  fromVars,
MonomType  toVars 
) [inline]
BEGIN_NAMESPACE_PBORI BoolePolynomial spoly ( const BoolePolynomial first,
const BoolePolynomial second 
) [inline]

spoly Compute spoly of two polynomials

References BoolePolynomial::lead().

Referenced by IJPairData::extract(), nf1(), nf2(), nf2_short(), nf3_db(), nf3_short(), nf_delaying(), and nf_delaying_exchanging().

template<class InputIterator , class ValueType >
ValueType term_accumulate ( InputIterator  first,
InputIterator  last,
ValueType  init 
) [inline]

term_accumulate Routine for adding all terms given by iterators

Note:
: This line always uses the active manager!
Todo:
: check correct manager

References term_accumulate(), and upper_term_accumulate().

template<class UpperIterator , class NaviType , class LowerIterator , class ValueType >
ValueType term_accumulate ( UpperIterator  ustart,
UpperIterator  ufinish,
NaviType  navi,
LowerIterator  lstart,
LowerIterator  lfinish,
ValueType  init 
) [inline]
Note:
: assuming lstart .. lfinish *not* marking the term one

References CDDInterface< CuddLikeZDD >::change(), lower_term_accumulate(), and upper_term_accumulate().

Referenced by LexHelper::sum_range(), and term_accumulate().

template<class UpperIterator , class NaviType , class ValueType >
ValueType upper_term_accumulate ( UpperIterator  ustart,
UpperIterator  ufinish,
NaviType  navi,
ValueType  init 
) [inline]

Referenced by term_accumulate().

Generated on Tue May 4 10:44:27 2010 for PolyBoRi by  doxygen 1.6.3