95 virtual void mark()
const{};
108 virtual size_t hash()
const = 0;
AdditiveMap< GShom, GSDD > SHomNodeMap
Definition: MLSHom.h:7
MLShom operator+(const MLShom &, const MLShom &)
Composition by union of two homomorphisms.
Definition: MLSHom.cpp:239
AdditiveMap< GShom, MLShom > SHomHomMap
Definition: MLSHom.h:10
Definition: AdditiveMap.hpp:8
This class is an abstraction of a set of data.
Definition: DataSet.h:44
This class is the base class representing a hierarchical Set Decision Diagram.
Definition: SDD.h:49
This class is the base class for Homomorphisms over SDD.
Definition: SHom.h:57
static const MLShom id
Elementary homomorphism Identity, defined as a constant.
Definition: MLSHom.h:27
static void garbage()
Collects and destroys unused homomorphisms.
Definition: MLSHom.cpp:246
MLShom()
Default public constructor.
Definition: MLSHom.h:31
SHomNodeMap eval(const GSDD &) const
The computation function responsible for evaluation over a node.
const _MLShom * concret
The real implementation class.
Definition: MLSHom.h:21
SHomNodeMap operator()(const GSDD &) const
cache calls to eval
Definition: MLSHom.cpp:195
size_t hash() const
Hash key computation.
Definition: MLSHom.h:57
friend MLShom operator+(const MLShom &, const MLShom &)
By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and ...
Definition: MLSHom.cpp:239
bool operator==(const MLShom &h) const
Definition: MLSHom.h:52
bool operator<(const MLShom &h) const
Definition: MLSHom.h:51
virtual ~MLShom()
Definition: MLSHom.cpp:185
virtual bool operator==(const StrongMLShom &) const =0
virtual SHomHomMap phi(int var, const DataSet &val) const =0
User defined behavior is input through this function.
bool operator==(const _MLShom &h) const
Definition: MLSHom.cpp:202
SHomNodeMap eval(const GSDD &) const
Definition: MLSHom.cpp:207
virtual SHomNodeMap phiOne() const =0
virtual bool shouldCache() const
test if caching should be done : default means should cache
Definition: MLSHom.h:101
virtual void mark() const
For garbage collection. Used in first phase of garbage collection.
Definition: MLSHom.h:95
_MLShom(int ref=0)
Definition: MLSHom.h:99
virtual size_t hash() const =0
unique table trivia
int refCounter
For garbage collection.
Definition: MLSHom.h:84
virtual bool operator==(const _MLShom &h) const =0
bool marking
For garbage collection.
Definition: MLSHom.h:89
virtual _MLShom * clone() const =0
virtual ~_MLShom()
Virtual Destructor.
Definition: MLSHom.h:104
virtual SHomNodeMap eval(const GSDD &) const =0
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73