62 void print(std::ostream& os,std::string s)
const;
66 typedef std::vector<std::pair<DataSet *,GSDD> >
Valuation;
170 unsigned long int size()
const;
173 std::pair<unsigned long int,unsigned long int>
node_size()
const;
181 short int getHeight ()
const;
186 int getMinDistance ()
const;
187 GSDD normalizeDistance (
int n)
const;
213 static void pstats(
bool reinit=
true);
215 static size_t peak();
249 void set_print (std::ostream &os)
const { os << *
this; }
315 virtual DataSet *normalizeDistance(
int n)
const {
return new SDD(GSDD::normalizeDistance(n)); }
316 virtual int getMinDistance()
const {
return GSDD::getMinDistance();}
GSDD operator+(const GSDD &, const GSDD &)
Operator for union of DDD.
Definition: SDED.cpp:717
GSDD operator*(const GSDD &, const GSDD &)
Operator for intersection of DDD.
Definition: SDED.cpp:721
GSDD operator-(const GSDD &, const GSDD &)
Operator for set difference of DDD.
Definition: SDED.cpp:729
std::ostream & operator<<(std::ostream &, const GSDD &)
Textual output of SDD into a stream in (relatively) human readable format.
Definition: SDD.cpp:319
GSDD operator^(const GSDD &, const GSDD &)
Operator for concatenation of two SDD.
Definition: SDED.cpp:725
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
friend class SDD
Open access to concret for reference counting in DDD.
Definition: SDD.h:55
DataSet * set_intersect(const DataSet &b) const
Compute intersection of two SDD.
Definition: SDD.cpp:663
std::pair< unsigned long int, unsigned long int > node_size() const
Definition: SDD.cpp:490
GSDD(int var, const class SDD &val, const GSDD &d=one)
DataSet * set_minus(const DataSet &b) const
Compute set difference of two SDD.
Definition: SDD.cpp:669
static unsigned int statistics()
Returns unicity table current size. Gives the number of different nodes created and not yet destroyed...
Definition: SDD.cpp:255
bool set_equal(const DataSet &b) const
Compares to DataSet for equality.
Definition: SDD.cpp:681
void print(std::ostream &os, std::string s) const
Internal function used in recursion for textual printing of GDDD.
Definition: SDD.cpp:296
bool operator!=(const GSDD &g) const
Comparison between DDD.
Definition: SDD.h:154
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: SDD.cpp:281
bool set_less_than(const DataSet &b) const
Compares two sets with a total order.
Definition: SDD.cpp:685
unsigned long int size() const
Returns the size in number of nodes of a SDD structure.
Definition: SDD.cpp:501
GSDD()
Default constructor creates the empty set SDD.
Definition: SDD.h:101
static const GSDD one
The accepting terminal. This is the basic leaf for accepted sequences.
Definition: SDD.h:133
DataSet * empty_set() const
Returns a pointer to GSDD::null.
Definition: SDD.cpp:677
const_iterator end() const
API for iterating over the arcs of a DDD manually.
Definition: SDD.cpp:400
int variable() const
Returns a node's variable.
Definition: SDD.cpp:377
friend std::ostream & operator<<(std::ostream &os, const GSDD &g)
A textual output.
Definition: SDD.cpp:319
Valuation::const_iterator const_iterator
To hide how arcs are stored.
Definition: SDD.h:70
const_iterator begin() const
API for iterating over the arcs of a DDD manually.
Definition: SDD.cpp:396
long double nbStates() const
Returns the number of states or paths represented by a given node.
Definition: SDD.cpp:552
bool empty() const
Return true if this is the empty set.
Definition: SDD.cpp:673
GSDD(_GSDD *_g)
UNIMPLEMENTED DELIBERATELY: see SHom.h for details.
static size_t peak()
Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageColle...
Definition: SDD.cpp:274
void set_print(std::ostream &os) const
Textual (human readable) output of a SDD.
Definition: SDD.h:249
long double set_size() const
Compares to DataSet for equality.
Definition: SDD.cpp:689
bool operator<(const GSDD &g) const
Total ordering function between DDD.
Definition: SDD.cpp:381
bool operator==(const GSDD &g) const
Comparison between DDD.
Definition: SDD.h:150
static void garbage()
For garbage collection, do not call this directly, use MemoryManager::garbage() instead.
Definition: SDD.cpp:558
unsigned int refCounter() const
Returns current reference count of a node.
Definition: SDD.cpp:405
size_t nbsons() const
Returns the number of successors of a given node. This is the size of the arc array of the node.
Definition: SDD.cpp:386
const _GSDD * concret
The real implementation class.
Definition: SDD.h:60
size_t set_hash() const
Returns a hash key for the SDD.
Definition: SDD.cpp:691
std::vector< std::pair< DataSet *, GSDD > > Valuation
To hide how arcs are actually stored. Use GSDD::Valuation to refer to arcs type.
Definition: SDD.h:67
DataSet * newcopy() const
Return a new copy of a SDD.
Definition: SDD.h:229
size_t hash() const
For storage in a hash table.
Definition: SDD.h:204
DataSet * set_union(const DataSet &b) const
Compute union of two SDD.
Definition: SDD.cpp:666
static const GSDD top
The approximation terminal.
Definition: SDD.h:140
void mark() const
For garbage collection internals.
Definition: SDD.cpp:260
static const GSDD null
The non-accepting terminal.
Definition: SDD.h:136
This class is the public interface for manipulating Data Decision Diagrams.
Definition: SDD.h:279
virtual ~SDD()
Destructor, maintains refCount.
Definition: SDD.cpp:622
SDD & operator=(const GSDD &)
Overloaded behavior for assignment operator, maintains reference counting.
Definition: SDD.cpp:628
This class implements a unicity table mechanism, based on an STL hash_set.
Definition: UniqueTable.h:43
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73
Namespace declared to hide these functions.
Definition: SDD.cpp:222
void foreachTable(void(*foo)(const GSDD &g))
Iterator over the entries of the table, applies foo to each entry in the table.
Definition: SDD.cpp:228
UniqueTable< _GSDD > * getTable()
accessor to UniqueTable instance declared in cpp file, (hem, please don't touch it).
Definition: SDD.cpp:224
bool operator()(const GSDD &g1, const GSDD &g2) const
Definition: SDD.h:340