#include "pbori_defs.h"
#include "CIdxVariable.h"
#include "CacheManager.h"
#include "CDDOperations.h"
Go to the source code of this file.
Functions | |
template<class Iterator > | |
BEGIN_NAMESPACE_PBORI Iterator::value_type | index_vector_hash (Iterator start, Iterator finish) |
template<class DegreeCacher , class NaviType > | |
NaviType::deg_type | dd_cached_degree (const DegreeCacher &cache, NaviType navi) |
template<class DegreeCacher , class NaviType , class SizeType > | |
NaviType::deg_type | dd_cached_degree (const DegreeCacher &cache, NaviType navi, SizeType bound) |
template<class Iterator , class NameGenerator , class Separator , class EmptySetType , class OStreamType > | |
void | dd_print_term (Iterator start, Iterator finish, const NameGenerator &get_name, const Separator &sep, const EmptySetType &emptyset, OStreamType &os) |
template<class TermType , class NameGenerator , class Separator , class EmptySetType , class OStreamType > | |
void | dd_print_term (const TermType &term, const NameGenerator &get_name, const Separator &sep, const EmptySetType &emptyset, OStreamType &os) |
template<class Iterator , class NameGenerator , class Separator , class InnerSeparator , class EmptySetType , class OStreamType > | |
void | dd_print_terms (Iterator start, Iterator finish, const NameGenerator &get_name, const Separator &sep, const InnerSeparator &innersep, const EmptySetType &emptyset, OStreamType &os) |
template<bool use_fast, class CacheType , class NaviType , class PolyType > | |
PolyType | dd_multiply (const CacheType &cache_mgr, NaviType firstNavi, NaviType secondNavi, PolyType init) |
template<class CacheType , class NaviType , class PolyType > | |
PolyType | dd_multiply_recursively (const CacheType &cache_mgr, NaviType firstNavi, NaviType secondNavi, PolyType init) |
template<class CacheType , class NaviType , class PolyType > | |
PolyType | dd_multiply_recursively_monom (const CacheType &cache_mgr, NaviType monomNavi, NaviType navi, PolyType init) |
template<class DDGenerator , class Iterator , class NaviType , class PolyType > | |
PolyType | dd_multiply_recursively_exp (const DDGenerator &ddgen, Iterator start, Iterator finish, NaviType navi, PolyType init) |
template<class DegCacheMgr , class NaviType , class SizeType > | |
bool | max_degree_on_then (const DegCacheMgr °_mgr, NaviType navi, SizeType degree, valid_tag is_descending) |
template<class DegCacheMgr , class NaviType , class SizeType > | |
bool | max_degree_on_then (const DegCacheMgr °_mgr, NaviType navi, SizeType degree, invalid_tag non_descending) |
template<class CacheType , class DegCacheMgr , class NaviType , class TermType , class SizeType , class DescendingProperty > | |
TermType | dd_recursive_degree_lead (const CacheType &cache_mgr, const DegCacheMgr °_mgr, NaviType navi, TermType init, SizeType degree, DescendingProperty prop) |
template<class CacheType , class DegCacheMgr , class NaviType , class TermType , class DescendingProperty > | |
TermType | dd_recursive_degree_lead (const CacheType &cache_mgr, const DegCacheMgr °_mgr, NaviType navi, TermType init, DescendingProperty prop) |
template<class CacheType , class DegCacheMgr , class NaviType , class TermType , class SizeType , class DescendingProperty > | |
TermType & | dd_recursive_degree_leadexp (const CacheType &cache_mgr, const DegCacheMgr °_mgr, NaviType navi, TermType &result, SizeType degree, DescendingProperty prop) |
template<class CacheType , class DegCacheMgr , class NaviType , class TermType , class DescendingProperty > | |
TermType & | dd_recursive_degree_leadexp (const CacheType &cache_mgr, const DegCacheMgr °_mgr, NaviType navi, TermType &result, DescendingProperty prop) |
template<class CacheType , class NaviType , class TermType > | |
TermType | dd_existential_abstraction (const CacheType &cache_mgr, NaviType varsNavi, NaviType navi, TermType init) |
template<class CacheType , class NaviType , class PolyType > | |
PolyType | dd_divide_recursively (const CacheType &cache_mgr, NaviType navi, NaviType monomNavi, PolyType init) |
template<class DDGenerator , class Iterator , class NaviType , class PolyType > | |
PolyType | dd_divide_recursively_exp (const DDGenerator &ddgen, NaviType navi, Iterator start, Iterator finish, PolyType init) |
template<class CacheType , class NaviType , class MonomType > | |
MonomType | cached_used_vars (const CacheType &cache, NaviType navi, MonomType init) |
template<class NaviType , class Iterator > | |
bool | dd_owns (NaviType navi, Iterator start, Iterator finish) |
template<class NaviType , class MonomIterator > | |
bool | dd_contains_divs_of_dec_deg (NaviType navi, MonomIterator start, MonomIterator finish) |
template<class CacheType , class NaviType , class DegType , class SetType > | |
SetType | dd_graded_part (const CacheType &cache, NaviType navi, DegType deg, SetType init) |
template<class CacheManager , class NaviType , class SetType > | |
SetType | dd_first_divisors_of (CacheManager cache_mgr, NaviType navi, NaviType rhsNavi, SetType init) |
template<class CacheType , class NaviType , class SetType > | |
SetType | dd_first_multiples_of (const CacheType &cache_mgr, NaviType navi, NaviType rhsNavi, SetType init) |
template<class MapType , class NaviType , class PolyType > | |
PolyType | substitute_variables__ (const MapType &idx2poly, NaviType navi, const PolyType &zero) |
template<class MapType , class PolyType > | |
PolyType | substitute_variables (const MapType &idx2poly, const PolyType &poly) |
This file includes files, which defines miscellaneous function templates.
MonomType cached_used_vars | ( | const CacheType & | cache, | |
NaviType | navi, | |||
MonomType | init | |||
) | [inline] |
Function templates for determining the used variables of a decision diagram with the help of cache
Referenced by CDDOperations< DDType, MonomType >::usedVariables().
NaviType::deg_type dd_cached_degree | ( | const DegreeCacher & | cache, | |
NaviType | navi, | |||
SizeType | bound | |||
) | [inline] |
Function templates for determining the degree of a decision diagram with the help of cache (e. g. CDegreeCache) Variant *with* given upper bound Assumming that the bound is valid!
References dd_cached_degree().
NaviType::deg_type dd_cached_degree | ( | const DegreeCacher & | cache, | |
NaviType | navi | |||
) | [inline] |
Function templates for determining the degree of a decision diagram with the help of cache (e. g. CDegreeCache)
Referenced by dd_cached_degree(), dd_recursive_degree_lead(), dd_recursive_degree_leadexp(), BoolePolynomial::deg(), DegRevLexAscOrder::lead(), DegLexOrder::lead(), DegRevLexAscOrder::leadExp(), DegLexOrder::leadExp(), max_degree_on_then(), and cached_deg< navigator >::operator()().
bool dd_contains_divs_of_dec_deg | ( | NaviType | navi, | |
MonomIterator | start, | |||
MonomIterator | finish | |||
) | [inline] |
Test whether a set of monomials contains all divisors of degree - 1 of a given monomial
References dd_owns(), and owns_one().
Referenced by BooleSet::containsDivisorsOfDecDeg().
PolyType dd_divide_recursively | ( | const CacheType & | cache_mgr, | |
NaviType | navi, | |||
NaviType | monomNavi, | |||
PolyType | init | |||
) | [inline] |
Referenced by BoolePolynomial::operator/=().
PolyType dd_divide_recursively_exp | ( | const DDGenerator & | ddgen, | |
NaviType | navi, | |||
Iterator | start, | |||
Iterator | finish, | |||
PolyType | init | |||
) | [inline] |
Referenced by BoolePolynomial::operator/=().
TermType dd_existential_abstraction | ( | const CacheType & | cache_mgr, | |
NaviType | varsNavi, | |||
NaviType | navi, | |||
TermType | init | |||
) | [inline] |
Referenced by BooleSet::existAbstract().
SetType dd_first_divisors_of | ( | CacheManager | cache_mgr, | |
NaviType | navi, | |||
NaviType | rhsNavi, | |||
SetType | init | |||
) | [inline] |
Function templates extracting the terms of a given decision diagram contain which contains only indices from first lexicographical path in Note: Replacement for dd_intersect_some_index
Referenced by BooleSet::firstDivisorsOf().
SetType dd_first_multiples_of | ( | const CacheType & | cache_mgr, | |
NaviType | navi, | |||
NaviType | rhsNavi, | |||
SetType | init | |||
) | [inline] |
Referenced by BooleSet::multiplesOf().
SetType dd_graded_part | ( | const CacheType & | cache, | |
NaviType | navi, | |||
DegType | deg, | |||
SetType | init | |||
) | [inline] |
Referenced by BoolePolynomial::gradedPart().
PolyType dd_multiply | ( | const CacheType & | cache_mgr, | |
NaviType | firstNavi, | |||
NaviType | secondNavi, | |||
PolyType | init | |||
) | [inline] |
PolyType dd_multiply_recursively | ( | const CacheType & | cache_mgr, | |
NaviType | firstNavi, | |||
NaviType | secondNavi, | |||
PolyType | init | |||
) | [inline] |
Referenced by BoolePolynomial::operator*=().
PolyType dd_multiply_recursively_exp | ( | const DDGenerator & | ddgen, | |
Iterator | start, | |||
Iterator | finish, | |||
NaviType | navi, | |||
PolyType | init | |||
) | [inline] |
Referenced by BoolePolynomial::operator*=().
PolyType dd_multiply_recursively_monom | ( | const CacheType & | cache_mgr, | |
NaviType | monomNavi, | |||
NaviType | navi, | |||
PolyType | init | |||
) | [inline] |
Referenced by BoolePolynomial::operator*=().
bool dd_owns | ( | NaviType | navi, | |
Iterator | start, | |||
Iterator | finish | |||
) | [inline] |
Referenced by dd_contains_divs_of_dec_deg(), and BooleSet::owns().
void dd_print_term | ( | const TermType & | term, | |
const NameGenerator & | get_name, | |||
const Separator & | sep, | |||
const EmptySetType & | emptyset, | |||
OStreamType & | os | |||
) | [inline] |
References dd_print_term().
void dd_print_term | ( | Iterator | start, | |
Iterator | finish, | |||
const NameGenerator & | get_name, | |||
const Separator & | sep, | |||
const EmptySetType & | emptyset, | |||
OStreamType & | os | |||
) | [inline] |
Referenced by dd_print_term(), and dd_print_terms().
void dd_print_terms | ( | Iterator | start, | |
Iterator | finish, | |||
const NameGenerator & | get_name, | |||
const Separator & | sep, | |||
const InnerSeparator & | innersep, | |||
const EmptySetType & | emptyset, | |||
OStreamType & | os | |||
) | [inline] |
References dd_print_term().
Referenced by BooleSet::print(), and BoolePolynomial::print().
TermType dd_recursive_degree_lead | ( | const CacheType & | cache_mgr, | |
const DegCacheMgr & | deg_mgr, | |||
NaviType | navi, | |||
TermType | init, | |||
DescendingProperty | prop | |||
) | [inline] |
References dd_cached_degree(), and dd_recursive_degree_lead().
TermType dd_recursive_degree_lead | ( | const CacheType & | cache_mgr, | |
const DegCacheMgr & | deg_mgr, | |||
NaviType | navi, | |||
TermType | init, | |||
SizeType | degree, | |||
DescendingProperty | prop | |||
) | [inline] |
References max_degree_on_then().
Referenced by dd_recursive_degree_lead(), DegRevLexAscOrder::lead(), and DegLexOrder::lead().
TermType& dd_recursive_degree_leadexp | ( | const CacheType & | cache_mgr, | |
const DegCacheMgr & | deg_mgr, | |||
NaviType | navi, | |||
TermType & | result, | |||
DescendingProperty | prop | |||
) | [inline] |
References dd_cached_degree(), and dd_recursive_degree_leadexp().
TermType& dd_recursive_degree_leadexp | ( | const CacheType & | cache_mgr, | |
const DegCacheMgr & | deg_mgr, | |||
NaviType | navi, | |||
TermType & | result, | |||
SizeType | degree, | |||
DescendingProperty | prop | |||
) | [inline] |
References max_degree_on_then().
Referenced by dd_recursive_degree_leadexp(), DegRevLexAscOrder::leadExp(), and DegLexOrder::leadExp().
BEGIN_NAMESPACE_PBORI Iterator::value_type index_vector_hash | ( | Iterator | start, | |
Iterator | finish | |||
) | [inline] |
bool max_degree_on_then | ( | const DegCacheMgr & | deg_mgr, | |
NaviType | navi, | |||
SizeType | degree, | |||
invalid_tag | non_descending | |||
) | [inline] |
References dd_cached_degree().
bool max_degree_on_then | ( | const DegCacheMgr & | deg_mgr, | |
NaviType | navi, | |||
SizeType | degree, | |||
valid_tag | is_descending | |||
) | [inline] |
References dd_cached_degree().
Referenced by dd_recursive_degree_lead(), and dd_recursive_degree_leadexp().
PolyType substitute_variables | ( | const MapType & | idx2poly, | |
const PolyType & | poly | |||
) | [inline] |
Maps a polynomial from one ring to another, using a given map old_index -> new_polynomial
References substitute_variables__().
PolyType substitute_variables__ | ( | const MapType & | idx2poly, | |
NaviType | navi, | |||
const PolyType & | zero | |||
) | [inline] |
Internal variant: Maps a polynomial from one ring to another, using a given map old_index -> new_polynomial
Referenced by substitute_variables().