50 template <
class Value,
class Key,
class HashFcn,
51 class ExtractKey,
class SetKey,
class EqualKey,
class Alloc>
52 friend class google::sparse_hashtable;
140 virtual size_t hash()
const = 0;
AdditiveMap< GHom, MLHom > HomHomMap
Definition: MLHom.h:33
AdditiveMap< GHom, GDDD > HomNodeMap
Definition: MLHom.h:29
MLHom operator+(const MLHom &, const MLHom &)
Composition by union of two homomorphisms.
Definition: MLHom.cpp:279
Definition: AdditiveMap.hpp:8
This class is the base class representing a Data Decision Diagram.
Definition: DDD.h:49
This class is the base class representing a homomorphism over DDD.
Definition: Hom.h:55
HomNodeMap eval(const GDDD &d) const
The computation function responsible for evaluation over a node.
Definition: MLHom.cpp:229
bool operator==(const MLHom &h) const
Definition: MLHom.h:84
const _MLHom * concret
The real implementation class.
Definition: MLHom.h:46
MLHom()
Default public constructor.
Definition: MLHom.h:63
bool operator<(const MLHom &h) const
Definition: MLHom.h:83
static const MLHom id
Elementary homomorphism Identity, defined as a constant.
Definition: MLHom.h:59
size_t hash() const
Hash key computation.
Definition: MLHom.h:89
virtual ~MLHom()
Definition: MLHom.cpp:219
HomNodeMap operator()(const GDDD &) const
cache calls to eval
Definition: MLHom.cpp:233
static void garbage()
Collects and destroys unused homomorphisms.
Definition: MLHom.cpp:286
friend MLHom operator+(const MLHom &, const MLHom &)
By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ;.
Definition: MLHom.cpp:279
HomNodeMap eval(const GDDD &) const
Definition: MLHom.cpp:247
virtual HomNodeMap phiOne() const =0
bool operator==(const _MLHom &h) const
Definition: MLHom.cpp:242
virtual bool operator==(const StrongMLHom &) const =0
virtual HomHomMap phi(int var, int val) const =0
User defined behavior is input through this function.
virtual void mark() const
For garbage collection. Used in first phase of garbage collection.
Definition: MLHom.h:127
bool marking
For garbage collection.
Definition: MLHom.h:121
virtual size_t hash() const =0
unique table trivia
virtual bool shouldCache() const
test if caching should be done : default means should cache
Definition: MLHom.h:133
virtual ~_MLHom()
Virtual Destructor.
Definition: MLHom.h:136
virtual _MLHom * clone() const =0
int refCounter
For garbage collection.
Definition: MLHom.h:116
virtual bool operator==(const _MLHom &h) const =0
virtual HomNodeMap eval(const GDDD &) const =0
_MLHom(int ref=0)
Definition: MLHom.h:131
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73