diff --git a/ddd-1.9.0.20230925141806.tar.gz b/ddd-1.9.0.20230925141806.tar.gz new file mode 100644 index 000000000..0c65db2ac Binary files /dev/null and b/ddd-1.9.0.20230925141806.tar.gz differ diff --git a/index.html b/index.html new file mode 100644 index 000000000..fe648f7b0 --- /dev/null +++ b/index.html @@ -0,0 +1,34 @@ +

Download page for LibDDD

+ +

+Our main page is still hosted at lip6 : DDD homepage +

+ +

+Download the latest distribution here : ddd-1.9.0 latest +

+ +

+Developer documentation with Doxygen is published here. +

+ +

+Download the latest artifacts here (result of make install) : +

+

+ +

This page and these artifacts are built using GitHub Actions. We thank GitHub for providing hosting and compilation time for these artifacts.

+ +

This software is made available under the terms of Gnu LGPL

+ +

Contact author : Yann .Thierry-Mieg@lip6.fr

diff --git a/libddd.html/AdditiveMap_8hpp.html b/libddd.html/AdditiveMap_8hpp.html new file mode 100644 index 000000000..75418d446 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp.html @@ -0,0 +1,99 @@ + + + + + + + +DDD: AdditiveMap.hpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
AdditiveMap.hpp File Reference
+
+
+
#include <vector>
+#include "ddd/util/hash_support.hh"
+
+Include dependency graph for AdditiveMap.hpp:
+
+
+ + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  AdditiveMap< K, V, EqualKey >
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/AdditiveMap_8hpp__dep__incl.map b/libddd.html/AdditiveMap_8hpp__dep__incl.map new file mode 100644 index 000000000..892841b31 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp__dep__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/libddd.html/AdditiveMap_8hpp__dep__incl.md5 b/libddd.html/AdditiveMap_8hpp__dep__incl.md5 new file mode 100644 index 000000000..9de9b10a7 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +7a81dba5e0e36d640ec841d76c6a66d6 \ No newline at end of file diff --git a/libddd.html/AdditiveMap_8hpp__dep__incl.png b/libddd.html/AdditiveMap_8hpp__dep__incl.png new file mode 100644 index 000000000..636f2a81d Binary files /dev/null and b/libddd.html/AdditiveMap_8hpp__dep__incl.png differ diff --git a/libddd.html/AdditiveMap_8hpp__incl.map b/libddd.html/AdditiveMap_8hpp__incl.map new file mode 100644 index 000000000..919a9a951 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/libddd.html/AdditiveMap_8hpp__incl.md5 b/libddd.html/AdditiveMap_8hpp__incl.md5 new file mode 100644 index 000000000..631f3c960 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp__incl.md5 @@ -0,0 +1 @@ +f74531a18e9d6bc16e972cb01e2e02af \ No newline at end of file diff --git a/libddd.html/AdditiveMap_8hpp__incl.png b/libddd.html/AdditiveMap_8hpp__incl.png new file mode 100644 index 000000000..13325b1ee Binary files /dev/null and b/libddd.html/AdditiveMap_8hpp__incl.png differ diff --git a/libddd.html/AdditiveMap_8hpp_source.html b/libddd.html/AdditiveMap_8hpp_source.html new file mode 100644 index 000000000..df44aa923 --- /dev/null +++ b/libddd.html/AdditiveMap_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +DDD: AdditiveMap.hpp Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
AdditiveMap.hpp
+
+
+Go to the documentation of this file.
1 #ifndef __ADDITIVEMAP_HH__
+
2 #define __ADDITIVEMAP_HH__
+
3 
+
4 #include <vector>
+ +
6 
+
7 template<typename K, typename V, typename EqualKey = d3::util::equal<K> >
+
8 class AdditiveMap {
+
9 
+
10  typedef std::vector<std::pair<K,V> > mapType;
+
11 
+ +
13 
+
14 public:
+
15  typedef typename mapType::value_type value_type;
+
16  typedef typename mapType::const_iterator const_iterator;
+
17  typedef typename mapType::iterator iterator;
+ +
19 
+
20  // delegate iterator operations to map
+
21  const_iterator end() const { return map.end(); }
+
22  const_iterator begin() const { return map.begin();}
+
23 
+
24  iterator find (const K & key) {
+
25  iterator res = map.begin();
+
26  while (res != map.end()) {
+
27  if (EqualKey () (res->first,key))
+
28  return res;
+
29  ++res;
+
30  }
+
31  return res;
+
32  }
+
33 
+
34  int addAll (const AdditiveMap<K,V> & other) {
+
35  return addAll(other.begin(),other.end());
+
36  }
+
37 
+
38  // adds a set of mappings
+
39  // returns the number of sums computed
+ +
41  int count = 0;
+
42  for ( ; begin != end ; ++ begin ) {
+
43  const value_type & val = *begin;
+
44  if (add (val.first,val.second) )
+
45  ++count;
+
46  }
+
47  return count;
+
48  }
+
49 
+
50  // adds value to the value mapped to key
+
51  // returns true if sum was actually used, false if normal insertion performed
+
52  bool add (const K & key, const V & value) {
+
53  typename mapType::iterator it = find(key);
+
54  if ( it != map.end() ) {
+
55  // found it
+
56  it->second = it->second + value ;
+
57  return true;
+
58  } else {
+
59  map.push_back(std::make_pair(key,value));
+
60  return false;
+
61  }
+
62  }
+
63  // removes value to the value mapped to key
+
64  // returns true if difference - was actually used, false if nothing performed
+
65  bool remove (const K & key, const V & value) {
+
66  typename mapType::iterator it = find(key);
+
67  if ( it != map.end() ) {
+
68  // found it
+
69  it->second = it->second - value ;
+
70  return true;
+
71  } else {
+
72  return false;
+
73  }
+
74  }
+
75 };
+
76 
+
77 #endif
+
Definition: AdditiveMap.hpp:8
+
mapType map
Definition: AdditiveMap.hpp:12
+
int addAll(const AdditiveMap< K, V > &other)
Definition: AdditiveMap.hpp:34
+
mapType::const_iterator const_iterator
Definition: AdditiveMap.hpp:16
+
AdditiveMap()
Definition: AdditiveMap.hpp:18
+
bool remove(const K &key, const V &value)
Definition: AdditiveMap.hpp:65
+
const_iterator begin() const
Definition: AdditiveMap.hpp:22
+
std::vector< std::pair< K, V > > mapType
Definition: AdditiveMap.hpp:10
+
bool add(const K &key, const V &value)
Definition: AdditiveMap.hpp:52
+
iterator find(const K &key)
Definition: AdditiveMap.hpp:24
+
const_iterator end() const
Definition: AdditiveMap.hpp:21
+
mapType::iterator iterator
Definition: AdditiveMap.hpp:17
+
int addAll(const_iterator begin, const_iterator end)
Definition: AdditiveMap.hpp:40
+
mapType::value_type value_type
Definition: AdditiveMap.hpp:15
+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Cache_8hh.html b/libddd.html/Cache_8hh.html new file mode 100644 index 000000000..d68ccd99f --- /dev/null +++ b/libddd.html/Cache_8hh.html @@ -0,0 +1,105 @@ + + + + + + + +DDD: Cache.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
Cache.hh File Reference
+
+
+
#include "ddd/util/configuration.hh"
+
+Include dependency graph for Cache.hh:
+
+
+ + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  Cache< FuncType, ParamType, ResType, EvalFunc >
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Cache_8hh__dep__incl.map b/libddd.html/Cache_8hh__dep__incl.map new file mode 100644 index 000000000..2f6e4f566 --- /dev/null +++ b/libddd.html/Cache_8hh__dep__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/libddd.html/Cache_8hh__dep__incl.md5 b/libddd.html/Cache_8hh__dep__incl.md5 new file mode 100644 index 000000000..9f915c5ca --- /dev/null +++ b/libddd.html/Cache_8hh__dep__incl.md5 @@ -0,0 +1 @@ +3baeeb786b9f9785ef84e55d96a0d639 \ No newline at end of file diff --git a/libddd.html/Cache_8hh__dep__incl.png b/libddd.html/Cache_8hh__dep__incl.png new file mode 100644 index 000000000..5f7800b4c Binary files /dev/null and b/libddd.html/Cache_8hh__dep__incl.png differ diff --git a/libddd.html/Cache_8hh__incl.map b/libddd.html/Cache_8hh__incl.map new file mode 100644 index 000000000..ecafbf45c --- /dev/null +++ b/libddd.html/Cache_8hh__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/libddd.html/Cache_8hh__incl.md5 b/libddd.html/Cache_8hh__incl.md5 new file mode 100644 index 000000000..609b9d284 --- /dev/null +++ b/libddd.html/Cache_8hh__incl.md5 @@ -0,0 +1 @@ +2d9f379db9aeecf6d285e18de59e2a2c \ No newline at end of file diff --git a/libddd.html/Cache_8hh__incl.png b/libddd.html/Cache_8hh__incl.png new file mode 100644 index 000000000..b6f59db93 Binary files /dev/null and b/libddd.html/Cache_8hh__incl.png differ diff --git a/libddd.html/Cache_8hh_source.html b/libddd.html/Cache_8hh_source.html new file mode 100644 index 000000000..3b3c15409 --- /dev/null +++ b/libddd.html/Cache_8hh_source.html @@ -0,0 +1,162 @@ + + + + + + + +DDD: Cache.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Cache.hh
+
+
+Go to the documentation of this file.
1 #ifndef _CACHE_HH_
+
2 #define _CACHE_HH_
+
3 
+ +
5 
+
6 template
+
7  <
+
8  typename FuncType
+
9  , typename ParamType
+
10  , typename ResType
+
11  , typename EvalFunc=int
+
12  >
+
13 class Cache
+
14 {
+
15 private:
+
16  mutable size_t peak_;
+
17 
+
18  typedef typename hash_map< std::pair<FuncType, ParamType>, ResType >::type
+ + +
21 
+
22 public:
+
23  Cache () : peak_ (0) {};
+
24  Cache (size_t s) : peak_ (0), cache_ (s) {};
+
25 
+
27  void clear (bool keepstats = false) {
+
28  peak();
+
29  cache_.clear();
+
30  }
+
31 
+
32  size_t peak () const {
+
33  size_t s = size();
+
34  if ( peak_ < s )
+
35  peak_ = s;
+
36  return peak_;
+
37  }
+
38 
+
39 
+
40  size_t size () const {
+
41  return cache_.size();
+
42  }
+
43 
+
44  ResType eval (const FuncType & func, const ParamType & param) const {
+
45  return func.eval(param);
+
46  }
+
47 
+
48  bool
+
49  should_insert (const FuncType & ) const
+
50  {
+
51  return true;
+
52  }
+
53 
+
54  std::pair<bool,ResType>
+
55  insert(const FuncType& hom, const ParamType& node)
+
56  {
+
57  bool found;
+
58 
+
59  { // lock on current bucket
+
60  typename hash_map::const_accessor access;
+
61  found = cache_.find ( access, std::make_pair(hom,node));
+
62  if (found)
+
63  return std::make_pair(false, access->second);
+
64  } // end of lock on the current bucket
+
65 
+
66  // wasn't in cache
+
67  ResType result = eval(hom, node);
+
68  if (should_insert (hom))
+
69  {
+
70  // lock on current bucket
+
71  typename hash_map::accessor access;
+
72  bool insertion = cache_.insert ( access, std::make_pair(hom,node));
+
73  if (insertion) {
+
74  // should happen except in MT case
+
75  access->second = result;
+
76  }
+
77  return std::make_pair(insertion,result);
+
78  }
+
79  else
+
80  return std::make_pair (false, result);
+
81  }
+
82 
+
83 #ifdef HASH_STAT
+
84  std::map<std::string, size_t> get_hits() const { return cache_.get_hits(); }
+
85  std::map<std::string, size_t> get_misses() const { return cache_.get_misses(); }
+
86  std::map<std::string, size_t> get_bounces() const { return cache_.get_bounces(); }
+
87 #endif // HASH_STAT
+
88 };
+
89 
+
90 #endif /* _CACHE_HH_ */
+
Definition: Cache.hh:14
+
size_t peak_
Definition: Cache.hh:16
+
bool should_insert(const FuncType &) const
Definition: Cache.hh:49
+
size_t peak() const
Definition: Cache.hh:32
+
hash_map< std::pair< FuncType, ParamType >, ResType >::type hash_map
Definition: Cache.hh:19
+
std::pair< bool, ResType > insert(const FuncType &hom, const ParamType &node)
Definition: Cache.hh:55
+
void clear(bool keepstats=false)
clear the cache, discarding all values.
Definition: Cache.hh:27
+
hash_map cache_
Definition: Cache.hh:20
+
Cache(size_t s)
Definition: Cache.hh:24
+
Cache()
Definition: Cache.hh:23
+
ResType eval(const FuncType &func, const ParamType &param) const
Definition: Cache.hh:44
+
size_t size() const
Definition: Cache.hh:40
+
Definition: ext_hash_map.hh:96
+
Definition: ext_hash_map.hh:38
+
Definition: ext_hash_map.hh:21
+
size_type size() const
Definition: ext_hash_map.hh:199
+
bool find(accessor &result, const Key &key)
Definition: ext_hash_map.hh:217
+
bool insert(accessor &result, const Key &key)
Definition: ext_hash_map.hh:235
+
void clear()
Definition: ext_hash_map.hh:211
+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DDD_8cpp.html b/libddd.html/DDD_8cpp.html new file mode 100644 index 000000000..e0a29c0ef --- /dev/null +++ b/libddd.html/DDD_8cpp.html @@ -0,0 +1,276 @@ + + + + + + + +DDD: DDD.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Typedefs | +Functions | +Variables
+
+
DDD.cpp File Reference
+
+
+
#include <cstdlib>
+#include <cstring>
+#include <string>
+#include <iostream>
+#include <vector>
+#include <set>
+#include <cassert>
+#include <map>
+#include <sstream>
+#include <limits>
+#include "ddd/util/configuration.hh"
+#include "ddd/DDD.h"
+#include "ddd/UniqueTableId.hh"
+#include "ddd/DED.h"
+#include "MemoryManager.h"
+
+Include dependency graph for DDD.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + +

+Classes

class  _GDDD
 
struct  _GDDD::custom_new_t
 an empty struct tag type used to disambiguate between different variants of the operator new for _GDDD. More...
 
class  MySize
 
class  MyNbStates
 
+ + + +

+Typedefs

typedef UniqueTableId< _GDDD, GDDD::id_tDDDutable
 
+ + + + + + + + +

+Functions

std::ostream & operator<< (std::ostream &os, const GDDD &g)
 Textual output of DDD into a stream in (relatively) human readable format. More...
 
void saveDDD (std::ostream &os, std::vector< DDD > list)
 
void loadDDD (std::istream &is, std::vector< DDD > &list)
 
+ + + +

+Variables

std::map< int, std::string > mapVarName
 
+

Typedef Documentation

+ +

◆ DDDutable

+ +
+
+ + + + +
typedef UniqueTableId<_GDDD,GDDD::id_t> DDDutable
+
+ +
+
+

Function Documentation

+ +

◆ loadDDD()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void loadDDD (std::istream & is,
std::vector< DDD > & list 
)
+
+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GDDDg 
)
+
+ +

Textual output of DDD into a stream in (relatively) human readable format.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ saveDDD()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void saveDDD (std::ostream & os,
std::vector< DDDlist 
)
+
+ +
+
+

Variable Documentation

+ +

◆ mapVarName

+ +
+
+ + + + +
std::map<int,std::string> mapVarName
+
+ +

Referenced by GDDD::getvarName(), and GDDD::varName().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DDD_8cpp__incl.map b/libddd.html/DDD_8cpp__incl.map new file mode 100644 index 000000000..620a9b4d9 --- /dev/null +++ b/libddd.html/DDD_8cpp__incl.map @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/DDD_8cpp__incl.md5 b/libddd.html/DDD_8cpp__incl.md5 new file mode 100644 index 000000000..0da29c9de --- /dev/null +++ b/libddd.html/DDD_8cpp__incl.md5 @@ -0,0 +1 @@ +c54fe5bd8cde4222010b4ac39f96f477 \ No newline at end of file diff --git a/libddd.html/DDD_8cpp__incl.png b/libddd.html/DDD_8cpp__incl.png new file mode 100644 index 000000000..85493742a Binary files /dev/null and b/libddd.html/DDD_8cpp__incl.png differ diff --git a/libddd.html/DDD_8h.html b/libddd.html/DDD_8h.html new file mode 100644 index 000000000..caad4a530 --- /dev/null +++ b/libddd.html/DDD_8h.html @@ -0,0 +1,307 @@ + + + + + + + +DDD: DDD.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions
+
+
DDD.h File Reference
+
+
+
#include <iosfwd>
+#include <string>
+#include <vector>
+#include "ddd/DataSet.h"
+#include "ddd/hashfunc.hh"
+
+Include dependency graph for DDD.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Classes

class  GDDD
 This class is the base class representing a Data Decision Diagram. More...
 
class  DDD
 This class is the public interface for manipulating Data Decision Diagrams. More...
 
struct  std::less< GDDD >
 Compares two DDD in hash tables. More...
 
+ + + +

+Namespaces

 std
 
+ + + + + + + + + + + + + + + + +

+Functions

std::ostream & operator<< (std::ostream &, const GDDD &)
 Textual output of DDD into a stream in (relatively) human readable format. More...
 
GDDD operator^ (const GDDD &, const GDDD &)
 Operator for concatenation of DDD. More...
 
GDDD operator+ (const GDDD &, const GDDD &)
 Operator for union of DDD. More...
 
GDDD operator* (const GDDD &, const GDDD &)
 Operator for intersection of DDD. More...
 
GDDD operator- (const GDDD &, const GDDD &)
 Operator for set difference of DDD. More...
 
+

Function Documentation

+ +

◆ operator*()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator* (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for intersection of DDD.

+

Semantics : d1 * d2 designates the intersection of the two sets

+ +

References _DED_Mult::create().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator+ (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for union of DDD.

+

Semantics : d1 + d2 produces the union d1 and d2

+ +

References DED::add().

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator- (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for set difference of DDD.

+

Semantics : d1 - d2 contains elements in d1 and not in d2

+ +

References _DED_Minus::create().

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GDDDg 
)
+
+ +

Textual output of DDD into a stream in (relatively) human readable format.

+

A textual output.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ operator^()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator^ (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for concatenation of DDD.

+

Semantics : d1 ^ d2 replaces "one" terminals of d1 by d2

+ +

References _DED_Concat::create().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DDD_8h__dep__incl.map b/libddd.html/DDD_8h__dep__incl.map new file mode 100644 index 000000000..2cfe811a3 --- /dev/null +++ b/libddd.html/DDD_8h__dep__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/DDD_8h__dep__incl.md5 b/libddd.html/DDD_8h__dep__incl.md5 new file mode 100644 index 000000000..5f64e2132 --- /dev/null +++ b/libddd.html/DDD_8h__dep__incl.md5 @@ -0,0 +1 @@ +0dc5c1c08249deac22b57ee96f992e73 \ No newline at end of file diff --git a/libddd.html/DDD_8h__dep__incl.png b/libddd.html/DDD_8h__dep__incl.png new file mode 100644 index 000000000..7cb0b99a3 Binary files /dev/null and b/libddd.html/DDD_8h__dep__incl.png differ diff --git a/libddd.html/DDD_8h__incl.map b/libddd.html/DDD_8h__incl.map new file mode 100644 index 000000000..054c3c83c --- /dev/null +++ b/libddd.html/DDD_8h__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/DDD_8h__incl.md5 b/libddd.html/DDD_8h__incl.md5 new file mode 100644 index 000000000..3cc9d46ad --- /dev/null +++ b/libddd.html/DDD_8h__incl.md5 @@ -0,0 +1 @@ +8d0cbfa43ad43be90e44aea7f97e7706 \ No newline at end of file diff --git a/libddd.html/DDD_8h__incl.png b/libddd.html/DDD_8h__incl.png new file mode 100644 index 000000000..0549e84c9 Binary files /dev/null and b/libddd.html/DDD_8h__incl.png differ diff --git a/libddd.html/DDD_8h_source.html b/libddd.html/DDD_8h_source.html new file mode 100644 index 000000000..879612b9d --- /dev/null +++ b/libddd.html/DDD_8h_source.html @@ -0,0 +1,302 @@ + + + + + + + +DDD: DDD.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DDD.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef DDD_H
+
25 #define DDD_H
+
26 
+
27 #include <iosfwd>
+
28 #include <string>
+
29 #include <vector>
+
30 
+
31 #include "ddd/DataSet.h"
+
32 #include "ddd/hashfunc.hh"
+
33 
+
35 class _GDDD;
+
36 
+
38 class DDD;
+
39 
+
48 class GDDD
+
49 {
+
50 public:
+
51  typedef unsigned int id_t;
+
52 private:
+
55  friend std::ostream& operator<<(std::ostream &os,const GDDD &g);
+
57  friend class DDD;
+
58 
+ +
64  GDDD(const id_t &_g);
+
67  GDDD(_GDDD *_g);
+
69  void print(std::ostream& os,std::string s) const;
+
71  void saveNode(std::ostream&, std::vector<id_t>& )const;
+
73  unsigned long int nodeIndex(const std::vector<id_t> &)const;
+
74 
+
75 public:
+
77 
+
78  typedef short val_t;
+
81  typedef unsigned short valsz_t;
+
83  typedef std::pair<val_t,GDDD> edge_t;
+
85  typedef std::vector<edge_t > Valuation;
+
88  typedef const edge_t * const_iterator;
+
90  int variable() const;
+
91 
+
98  const_iterator begin() const;
+
105  const_iterator end() const;
+
107 
+
109 
+
110  GDDD(int variable,const Valuation & value);
+ +
125  GDDD(int var,val_t val,const GDDD &d=one );
+
133  GDDD(int var,val_t val1,val_t val2,const GDDD &d=one); //var-[val1,var2]->d
+
135 
+
136 
+
138 
+
139  static const GDDD one;
+
143  static const GDDD null;
+
146  static const GDDD top;
+
148 
+
150 
+
151  bool operator==(const GDDD& g) const{return concret==g.concret;};
+
158  bool operator!=(const GDDD& g) const{return concret!=g.concret;};
+
163  bool operator<(const GDDD& g) const;
+
165 
+
166  /* Accessors */
+
170  unsigned int refCounter() const;
+
172  unsigned long int size() const;
+
174  size_t nbsons () const;
+
176  long double nbStates() const;
+
178  long double noSharedSize() const;
+
179 #ifdef EVDDD
+
181  int getMinDistance () const;
+
182  GDDD normalizeDistance (int n) const;
+
183 #endif
+
184 
+
185 
+
187 
+
188  static void varName( int var, const std::string& name );
+
197  static const std::string getvarName( int var );
+
199 
+
201 
+
202  static unsigned int statistics();
+
206  void mark() const;
+
208  size_t hash () const {
+
209  return ddd::int32_hash(concret);
+
210  }
+
213  static void garbage();
+
217  static void pstats(bool reinit=true);
+
219  static size_t peak();
+
221 
+
223  friend void saveDDD(std::ostream&, std::vector<DDD>);
+
226  friend void loadDDD(std::istream&, std::vector<DDD>&);
+
228 };
+
229 
+
230 
+
232 std::ostream& operator<<(std::ostream &,const GDDD &);
+
233 /* Binary operators */
+
236 GDDD operator^(const GDDD&,const GDDD&);
+
239 GDDD operator+(const GDDD&,const GDDD&);
+
242 GDDD operator*(const GDDD&,const GDDD&);
+
245 GDDD operator-(const GDDD&,const GDDD&);
+
246 
+
247 
+
248 
+
254 class DDD : public GDDD, public DataSet
+
255 {
+
256 public:
+
257  /* Constructors */
+
260  DDD(const DDD &);
+
263  DDD(const GDDD &g=GDDD::null);
+
264 
+
273  DDD(int var,val_t val,const GDDD &d=one );
+
281  DDD(int var,val_t val1,val_t val2,const GDDD &d=one);
+
285  ~DDD();
+
286 
+
288 
+
289  DDD &operator=(const GDDD&);
+
292  DDD &operator=(const DDD&);
+
294 
+
302 
+
303 
+
305  DataSet *newcopy () const { return new DDD(*this); }
+
307  DataSet *set_intersect (const DataSet & b) const ;
+
309  DataSet *set_union (const DataSet & b) const;
+
311  DataSet *set_minus (const DataSet & b) const;
+
313  bool empty() const;
+
315  DataSet *empty_set() const;
+
317  bool set_equal(const DataSet & b) const;
+
319  bool set_less_than (const DataSet & b) const ;
+
321  long double set_size() const;
+
323  size_t set_hash() const;
+
325  void set_print (std::ostream &os) const { os << *this; }
+
327  void mark() const { GDDD::mark(); }
+
328 #ifdef EVDDD
+
329  DataSet *normalizeDistance(int n) const { return new DDD(GDDD::normalizeDistance(n)); }
+
330  int getMinDistance() const { return GDDD::getMinDistance();}
+
331 #endif
+
332 
+
334 
+
335 
+
336 }; // DDD class
+
337 
+
338 
+
339 
+
340 namespace std {
+
343  template<>
+
344  struct less<GDDD> {
+
345  bool operator()(const GDDD &g1,const GDDD &g2) const{
+
346  return g1<g2;
+
347  }
+
348  };
+
349 }
+
350 
+
351 
+
352 #ifdef EVDDD
+
353 // the variable id of distance nodes
+
354 #define DISTANCE -3
+
355 #endif
+
356 
+
357 #endif
+
358 
+
359 
+
360 
+
361 
+
362 
+
363 
+
GDDD operator-(const GDDD &, const GDDD &)
Operator for set difference of DDD.
Definition: DED.cpp:663
+
GDDD operator*(const GDDD &, const GDDD &)
Operator for intersection of DDD.
Definition: DED.cpp:655
+
GDDD operator^(const GDDD &, const GDDD &)
Operator for concatenation of DDD.
Definition: DED.cpp:659
+
std::ostream & operator<<(std::ostream &, const GDDD &)
Textual output of DDD into a stream in (relatively) human readable format.
Definition: DDD.cpp:352
+
GDDD operator+(const GDDD &, const GDDD &)
Operator for union of DDD.
Definition: DED.cpp:648
+ +
This class is the public interface for manipulating Data Decision Diagrams.
Definition: DDD.h:255
+
DataSet * empty_set() const
Returns a pointer to GDDD::null.
Definition: DDD.cpp:649
+
bool empty() const
Return true if this is the empty set.
Definition: DDD.cpp:645
+
DDD & operator=(const GDDD &)
Overloaded behavior for assignment operator, maintains reference counting.
Definition: DDD.cpp:573
+
bool set_less_than(const DataSet &b) const
Compares two sets with a total order.
Definition: DDD.cpp:657
+
long double set_size() const
Compares to DataSet for equality.
Definition: DDD.cpp:662
+
void set_print(std::ostream &os) const
Textual (human readable) output of a DDD.
Definition: DDD.h:325
+
DataSet * set_union(const DataSet &b) const
Compute union of two DDD.
Definition: DDD.cpp:638
+
DataSet * set_minus(const DataSet &b) const
Compute set difference of two DDD.
Definition: DDD.cpp:641
+
bool set_equal(const DataSet &b) const
Compares to DataSet for equality.
Definition: DDD.cpp:653
+
DataSet * newcopy() const
Return a new copy of a DDD.
Definition: DDD.h:305
+
~DDD()
Destructor, maintains refCount.
Definition: DDD.cpp:569
+
size_t set_hash() const
Returns a hash key for the DDD.
Definition: DDD.cpp:664
+
void mark() const
mark() from DataSet interface
Definition: DDD.h:327
+
DataSet * set_intersect(const DataSet &b) const
Compute intersection of two DDD.
Definition: DDD.cpp:635
+
This class is an abstraction of a set of data.
Definition: DataSet.h:44
+
This class is the base class representing a Data Decision Diagram.
Definition: DDD.h:49
+
static const GDDD top
The approximation terminal.
Definition: DDD.h:146
+
bool operator==(const GDDD &g) const
Comparison between DDD.
Definition: DDD.h:154
+
friend void loadDDD(std::istream &, std::vector< DDD > &)
Function for deserialization. Load a set of DDD from a stream.
Definition: DDD.cpp:734
+
void print(std::ostream &os, std::string s) const
Internal function used in recursion for textual printing of GDDD.
Definition: DDD.cpp:335
+
void mark() const
For garbage collection internals.
Definition: DDD.cpp:308
+
static unsigned int statistics()
Returns unicity table current size. Gives the number of different nodes created and not yet destroyed...
Definition: DDD.cpp:303
+
static void garbage()
For garbage collection, do not call this directly, use MemoryManager::garbage() instead.
Definition: DDD.cpp:498
+
unsigned short valsz_t
A type wide enough to count how many outgoing edges a DDD node has, should be congruent to val_t.
Definition: DDD.h:81
+
static const GDDD one
The accepting terminal. This is the basic leaf for accepted sequences.
Definition: DDD.h:140
+
unsigned int refCounter() const
Returns current reference count of a node.
+
unsigned long int size() const
Returns the size in number of nodes of a DDD structure.
Definition: DDD.cpp:428
+
const_iterator begin() const
API for iterating over the arcs of a DDD manually.
Definition: DDD.cpp:386
+
std::vector< edge_t > Valuation
To hide how arcs are actually stored. Use GDDD::Valuation to refer to arcs type.
Definition: DDD.h:85
+
const_iterator end() const
API for iterating over the arcs of a DDD manually.
Definition: DDD.cpp:390
+
static void varName(int var, const std::string &name)
Sets a variable's name.
Definition: DDD.cpp:588
+
const edge_t * const_iterator
To hide how arcs are stored.
Definition: DDD.h:88
+
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: DDD.cpp:382
+
friend class DDD
Open access to concret for reference counting in DDD.
Definition: DDD.h:57
+
long double noSharedSize() const
Returns the number of nodes that would be used to represent a DDD if no unicity table was used.
Definition: DDD.cpp:492
+
unsigned int id_t
Definition: DDD.h:51
+
GDDD()
Default constructor creates the empty set DDD.
Definition: DDD.h:117
+
unsigned long int nodeIndex(const std::vector< id_t > &) const
Another function used in serialization.
Definition: DDD.cpp:673
+
friend void saveDDD(std::ostream &, std::vector< DDD >)
Function for serialization. Save a set of DDD to a stream.
Definition: DDD.cpp:706
+
GDDD(_GDDD *_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: DDD.cpp:313
+
bool operator!=(const GDDD &g) const
Comparison between DDD.
Definition: DDD.h:158
+
int variable() const
Returns a node's variable.
Definition: DDD.cpp:378
+
static const GDDD null
The non-accepting terminal.
Definition: DDD.h:143
+
friend std::ostream & operator<<(std::ostream &os, const GDDD &g)
A textual output.
Definition: DDD.cpp:352
+
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: DDD.cpp:318
+
long double nbStates() const
Returns the number of states or paths represented by a given node.
Definition: DDD.cpp:482
+
void saveNode(std::ostream &, std::vector< id_t > &) const
A function for DDD serialization (beta).
Definition: DDD.cpp:683
+
id_t concret
The real implementation class.
Definition: DDD.h:61
+
short val_t
The type used as values of variables in a DDD.
Definition: DDD.h:79
+
size_t hash() const
For storage in a hash table.
Definition: DDD.h:208
+
static const std::string getvarName(int var)
Gets a variable's name.
Definition: DDD.cpp:592
+
bool operator<(const GDDD &g) const
Total ordering function between DDD.
Definition: DDD.cpp:375
+
std::pair< val_t, GDDD > edge_t
An edge is a pair <value,child node>
Definition: DDD.h:83
+
Definition: DDD.cpp:57
+
uint32_t int32_hash(uint32_t a)
Another of Wang's fast hash with a magic number.
Definition: hashfunc.hh:56
+ +
Definition: DDD.h:340
+
bool operator()(const GDDD &g1, const GDDD &g2) const
Definition: DDD.h:345
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DED_8cpp.html b/libddd.html/DED_8cpp.html new file mode 100644 index 000000000..d55dbaa2b --- /dev/null +++ b/libddd.html/DED_8cpp.html @@ -0,0 +1,438 @@ + + + + + + + +DDD: DED.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Typedefs | +Functions | +Variables
+
+
DED.cpp File Reference
+
+
+
#include <set>
+#include <iostream>
+#include <map>
+#include <cassert>
+#include <typeinfo>
+#include "ddd/util/configuration.hh"
+#include "ddd/util/set.hh"
+#include "ddd/DDD.h"
+#include "ddd/DED.h"
+#include "ddd/Hom.h"
+#include "ddd/UniqueTable.h"
+
+Include dependency graph for DED.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + +

+Classes

class  _DED
 
class  _DED_Add
 
class  _DED_Mult
 
class  _DED_Minus
 
class  _DED_Concat
 
class  _DED_Hom
 
+ + + +

+Namespaces

 DED
 
+ + + +

+Typedefs

typedef UniqueTable< _DEDDEDtable
 
+ + + + + + + + + + + + + + + + + + + + + +

+Functions

static GDDD compute (const _DED &op)
 
size_t DED::peak ()
 
void DED::garbage ()
 
GDDD DED::add (const std::set< GDDD > &s)
 
GDDD operator+ (const GDDD &g1, const GDDD &g2)
 Operator for union of DDD. More...
 
GDDD operator* (const GDDD &g1, const GDDD &g2)
 Operator for intersection of DDD. More...
 
GDDD operator^ (const GDDD &g1, const GDDD &g2)
 Operator for concatenation of DDD. More...
 
GDDD operator- (const GDDD &g1, const GDDD &g2)
 Operator for set difference of DDD. More...
 
+ + + + + + + + + +

+Variables

static DEDtable uniqueDED
 
static int Hits =0
 
static int Misses =0
 
static size_t DEDpeak = 0
 
+

Typedef Documentation

+ +

◆ DEDtable

+ +
+
+ + + + +
typedef UniqueTable<_DED> DEDtable
+
+ +
+
+

Function Documentation

+ +

◆ compute()

+ +
+
+ + + + + +
+ + + + + + + + +
static GDDD compute (const _DEDop)
+
+static
+
+
+ +

◆ operator*()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator* (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for intersection of DDD.

+

Semantics : d1 * d2 designates the intersection of the two sets

+ +

References _DED_Mult::create().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator+ (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for union of DDD.

+

Semantics : d1 + d2 produces the union d1 and d2

+ +

References DED::add().

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator- (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for set difference of DDD.

+

Semantics : d1 - d2 contains elements in d1 and not in d2

+ +

References _DED_Minus::create().

+ +
+
+ +

◆ operator^()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD operator^ (const GDDDg1,
const GDDDg2 
)
+
+ +

Operator for concatenation of DDD.

+

Semantics : d1 ^ d2 replaces "one" terminals of d1 by d2

+ +

References _DED_Concat::create().

+ +
+
+

Variable Documentation

+ +

◆ DEDpeak

+ +
+
+ + + + + +
+ + + + +
size_t DEDpeak = 0
+
+static
+
+ +

Referenced by DED::garbage(), and DED::peak().

+ +
+
+ +

◆ Hits

+ +
+
+ + + + + +
+ + + + +
int Hits =0
+
+static
+
+ +

Referenced by DED::pstats().

+ +
+
+ +

◆ Misses

+ +
+
+ + + + + +
+ + + + +
int Misses =0
+
+static
+
+ +

Referenced by DED::pstats().

+ +
+
+ +

◆ uniqueDED

+ +
+
+ + + + + +
+ + + + +
DEDtable uniqueDED
+
+static
+
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DED_8cpp__incl.map b/libddd.html/DED_8cpp__incl.map new file mode 100644 index 000000000..2545428c5 --- /dev/null +++ b/libddd.html/DED_8cpp__incl.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/DED_8cpp__incl.md5 b/libddd.html/DED_8cpp__incl.md5 new file mode 100644 index 000000000..e4907f54a --- /dev/null +++ b/libddd.html/DED_8cpp__incl.md5 @@ -0,0 +1 @@ +5452fb4ded7521e248540d0cdb0b0695 \ No newline at end of file diff --git a/libddd.html/DED_8cpp__incl.png b/libddd.html/DED_8cpp__incl.png new file mode 100644 index 000000000..1d7e5e79c Binary files /dev/null and b/libddd.html/DED_8cpp__incl.png differ diff --git a/libddd.html/DED_8h.html b/libddd.html/DED_8h.html new file mode 100644 index 000000000..d7084319c --- /dev/null +++ b/libddd.html/DED_8h.html @@ -0,0 +1,125 @@ + + + + + + + +DDD: DED.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Namespaces | +Functions
+
+
DED.h File Reference
+
+
+
#include <set>
+#include "ddd/DDD.h"
+#include "ddd/Hom.h"
+#include "ddd/util/hash_support.hh"
+
+Include dependency graph for DED.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 DED
 
+ + + + + + + + + + + +

+Functions

GDDD DED::add (const d3::set< GDDD >::type &)
 
unsigned int DED::statistics ()
 
void DED::pstats (bool reinit=true)
 
size_t DED::peak ()
 
void DED::garbage ()
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DED_8h__dep__incl.map b/libddd.html/DED_8h__dep__incl.map new file mode 100644 index 000000000..da36e64c5 --- /dev/null +++ b/libddd.html/DED_8h__dep__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/libddd.html/DED_8h__dep__incl.md5 b/libddd.html/DED_8h__dep__incl.md5 new file mode 100644 index 000000000..36f8ba4d4 --- /dev/null +++ b/libddd.html/DED_8h__dep__incl.md5 @@ -0,0 +1 @@ +9a0fa4948303bf967c46ad6d5e9ca227 \ No newline at end of file diff --git a/libddd.html/DED_8h__dep__incl.png b/libddd.html/DED_8h__dep__incl.png new file mode 100644 index 000000000..efa34db53 Binary files /dev/null and b/libddd.html/DED_8h__dep__incl.png differ diff --git a/libddd.html/DED_8h__incl.map b/libddd.html/DED_8h__incl.map new file mode 100644 index 000000000..82bb1592d --- /dev/null +++ b/libddd.html/DED_8h__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/DED_8h__incl.md5 b/libddd.html/DED_8h__incl.md5 new file mode 100644 index 000000000..9ca0febe7 --- /dev/null +++ b/libddd.html/DED_8h__incl.md5 @@ -0,0 +1 @@ +b16ab4815bd9e94046bba235747a83ce \ No newline at end of file diff --git a/libddd.html/DED_8h__incl.png b/libddd.html/DED_8h__incl.png new file mode 100644 index 000000000..6625460ee Binary files /dev/null and b/libddd.html/DED_8h__incl.png differ diff --git a/libddd.html/DED_8h_source.html b/libddd.html/DED_8h_source.html new file mode 100644 index 000000000..6c407524f --- /dev/null +++ b/libddd.html/DED_8h_source.html @@ -0,0 +1,124 @@ + + + + + + + +DDD: DED.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DED.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef DED_H
+
25 #define DED_H
+
26 
+
27 #include <set>
+
28 #include "ddd/DDD.h"
+
29 #include "ddd/Hom.h"
+
30 #include "ddd/util/hash_support.hh"
+
31 
+
32 class _DED;
+
33 class GDDD;
+
34 class GHom;
+
35 
+
36 /******************************************************************************/
+
37 namespace DED {
+ +
39 
+
40  /* Memory Manager */
+
41  unsigned int statistics();
+
42  void pstats(bool reinit=true);
+
43  size_t peak();
+
44  void garbage();
+
45 };
+
46 
+
47 
+
48 #ifdef EVDDD
+
49 GHom pushEVDDD(int v);
+
50 #endif
+
51 
+
52 #endif
+
53 
+
54 
+
55 
+
56 
+
57 
+
58 
+ + +
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
+
Definition: DED.cpp:73
+ +
Definition: DED.cpp:612
+
size_t peak()
Definition: DED.cpp:614
+
void garbage()
Definition: DED.cpp:620
+
unsigned int statistics()
Definition: DED.cpp:573
+
void pstats(bool reinit=true)
Definition: DED.cpp:577
+
GDDD add(const std::set< GDDD > &s)
Definition: DED.cpp:636
+
std::set< Key, Compare, Allocator > type
Definition: set.hh:18
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DataSet_8h.html b/libddd.html/DataSet_8h.html new file mode 100644 index 000000000..4a8b15111 --- /dev/null +++ b/libddd.html/DataSet_8h.html @@ -0,0 +1,107 @@ + + + + + + + +DDD: DataSet.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
DataSet.h File Reference
+
+
+
#include <iosfwd>
+
+Include dependency graph for DataSet.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  DataSet
 This class is an abstraction of a set of data. More...
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/DataSet_8h__dep__incl.map b/libddd.html/DataSet_8h__dep__incl.map new file mode 100644 index 000000000..718157bbd --- /dev/null +++ b/libddd.html/DataSet_8h__dep__incl.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/DataSet_8h__dep__incl.md5 b/libddd.html/DataSet_8h__dep__incl.md5 new file mode 100644 index 000000000..37bc5e36c --- /dev/null +++ b/libddd.html/DataSet_8h__dep__incl.md5 @@ -0,0 +1 @@ +c38f0ce7c386f48341f7db36947adcd1 \ No newline at end of file diff --git a/libddd.html/DataSet_8h__dep__incl.png b/libddd.html/DataSet_8h__dep__incl.png new file mode 100644 index 000000000..907258732 Binary files /dev/null and b/libddd.html/DataSet_8h__dep__incl.png differ diff --git a/libddd.html/DataSet_8h__incl.map b/libddd.html/DataSet_8h__incl.map new file mode 100644 index 000000000..3afb7c476 --- /dev/null +++ b/libddd.html/DataSet_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/DataSet_8h__incl.md5 b/libddd.html/DataSet_8h__incl.md5 new file mode 100644 index 000000000..db8c4fd7a --- /dev/null +++ b/libddd.html/DataSet_8h__incl.md5 @@ -0,0 +1 @@ +969616e459a9368a0f6e53717bf938d7 \ No newline at end of file diff --git a/libddd.html/DataSet_8h__incl.png b/libddd.html/DataSet_8h__incl.png new file mode 100644 index 000000000..538f8794d Binary files /dev/null and b/libddd.html/DataSet_8h__incl.png differ diff --git a/libddd.html/DataSet_8h_source.html b/libddd.html/DataSet_8h_source.html new file mode 100644 index 000000000..62ccf3487 --- /dev/null +++ b/libddd.html/DataSet_8h_source.html @@ -0,0 +1,119 @@ + + + + + + + +DDD: DataSet.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DataSet.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 #ifndef __DATASET_H__
+
24 #define __DATASET_H__
+
25 
+
26 #include <iosfwd>
+
27 
+
43 class DataSet
+
44 {
+
45  public :
+
47  virtual ~DataSet() {};
+
49  virtual DataSet *newcopy () const = 0;
+
51  virtual DataSet *set_intersect (const DataSet & b) const = 0;
+
53  virtual DataSet *set_union (const DataSet & b) const = 0;
+
55  virtual DataSet *set_minus (const DataSet & b) const = 0;
+
57  virtual bool empty() const = 0;
+
59  virtual DataSet *empty_set() const = 0;
+
61  virtual bool set_equal(const DataSet & b) const =0;
+
63  virtual bool set_less_than (const DataSet & b) const =0;
+
65  virtual long double set_size() const = 0;
+
67  virtual size_t set_hash() const =0;
+
69  virtual void set_print (std::ostream &os) const =0;
+
71  virtual void mark() const = 0;
+
72 #ifdef EVDDD
+
73  virtual DataSet *normalizeDistance(int n) const =0;
+
74  virtual int getMinDistance() const = 0;
+
75 #endif
+
76 
+
77 };
+
78 
+
79 
+
80 #endif
+
This class is an abstraction of a set of data.
Definition: DataSet.h:44
+
virtual bool set_less_than(const DataSet &b) const =0
Compares two sets with a total order.
+
virtual DataSet * set_union(const DataSet &b) const =0
returns a new instance with elements = this union b
+
virtual void mark() const =0
for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing
+
virtual bool empty() const =0
returns true if this is the empty set
+
virtual void set_print(std::ostream &os) const =0
returns a formatted string description of the set
+
virtual ~DataSet()
destructor
Definition: DataSet.h:47
+
virtual DataSet * set_minus(const DataSet &b) const =0
returns a new instance with elements = this setminus b
+
virtual size_t set_hash() const =0
returns a hash function, used in the SDD hash function computation
+
virtual DataSet * set_intersect(const DataSet &b) const =0
returns a new instance with elements = this inter b
+
virtual DataSet * newcopy() const =0
returns a new instance copy of this
+
virtual DataSet * empty_set() const =0
returns a pointer to an instance of the empty set
+
virtual bool set_equal(const DataSet &b) const =0
Compares two sets for equality.
+
virtual long double set_size() const =0
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/FixObserver_8cpp.html b/libddd.html/FixObserver_8cpp.html new file mode 100644 index 000000000..75dae2f5b --- /dev/null +++ b/libddd.html/FixObserver_8cpp.html @@ -0,0 +1,93 @@ + + + + + + + +DDD: FixObserver.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions | +Variables
+
+
FixObserver.cpp File Reference
+
+
+
#include "FixObserver.hh"
+#include <cstddef>
+
+Include dependency graph for FixObserver.cpp:
+
+
+ + + + + +
+
+ + + +

+Classes

class  fobs::DefaultObserver
 
+ + + +

+Namespaces

 fobs
 
+ + + + + +

+Functions

void fobs::set_fixobserver (FixObserver *o)
 
FixObserver * fobs::get_fixobserver ()
 
+ + + +

+Variables

static FixObserver * fobs::obs = NULL
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/FixObserver_8cpp__incl.map b/libddd.html/FixObserver_8cpp__incl.map new file mode 100644 index 000000000..7c3f60472 --- /dev/null +++ b/libddd.html/FixObserver_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/FixObserver_8cpp__incl.md5 b/libddd.html/FixObserver_8cpp__incl.md5 new file mode 100644 index 000000000..33fd93fc9 --- /dev/null +++ b/libddd.html/FixObserver_8cpp__incl.md5 @@ -0,0 +1 @@ +d243c9750977aeef50ead2cacea62d9a \ No newline at end of file diff --git a/libddd.html/FixObserver_8cpp__incl.png b/libddd.html/FixObserver_8cpp__incl.png new file mode 100644 index 000000000..6d59ef79f Binary files /dev/null and b/libddd.html/FixObserver_8cpp__incl.png differ diff --git a/libddd.html/FixObserver_8hh.html b/libddd.html/FixObserver_8hh.html new file mode 100644 index 000000000..b1cbf2b57 --- /dev/null +++ b/libddd.html/FixObserver_8hh.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: FixObserver.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions
+
+
FixObserver.hh File Reference
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  fobs::FixObserver
 
+ + + +

+Namespaces

 fobs
 
+ + + + + +

+Functions

FixObserver * fobs::get_fixobserver ()
 
void fobs::set_fixobserver (FixObserver *o)
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/FixObserver_8hh__dep__incl.map b/libddd.html/FixObserver_8hh__dep__incl.map new file mode 100644 index 000000000..516529fb4 --- /dev/null +++ b/libddd.html/FixObserver_8hh__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/FixObserver_8hh__dep__incl.md5 b/libddd.html/FixObserver_8hh__dep__incl.md5 new file mode 100644 index 000000000..908852f74 --- /dev/null +++ b/libddd.html/FixObserver_8hh__dep__incl.md5 @@ -0,0 +1 @@ +f59350fa67a45df340e6983be2b77542 \ No newline at end of file diff --git a/libddd.html/FixObserver_8hh__dep__incl.png b/libddd.html/FixObserver_8hh__dep__incl.png new file mode 100644 index 000000000..449d6c6f3 Binary files /dev/null and b/libddd.html/FixObserver_8hh__dep__incl.png differ diff --git a/libddd.html/FixObserver_8hh_source.html b/libddd.html/FixObserver_8hh_source.html new file mode 100644 index 000000000..e4b8d832e --- /dev/null +++ b/libddd.html/FixObserver_8hh_source.html @@ -0,0 +1,95 @@ + + + + + + + +DDD: FixObserver.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
FixObserver.hh
+
+
+Go to the documentation of this file.
1 #ifndef FIXOBSERVER_HH_
+
2 #define FIXOBSERVER_HH_
+
3 
+
5 class GSDD;
+
6 class GDDD;
+
7 
+
8 namespace fobs {
+
9 
+
10 class FixObserver {
+
11 public:
+ +
13  virtual ~FixObserver () {}
+
14 
+
20  virtual bool should_interrupt (const GSDD & after, const GSDD & before) = 0;
+
21  virtual bool should_interrupt (const GDDD & after, const GDDD & before) = 0;
+
22  virtual bool was_interrupted () const = 0;
+
23  virtual void update (const GSDD & after, const GSDD & before) = 0;
+
24  virtual void update (const GDDD & after, const GDDD & before) = 0;
+
25 };
+
26 
+ + +
29 
+
30 void
+ +
32 
+
33 }
+
34 
+
35 #endif
+
This class is the base class representing a Data Decision Diagram.
Definition: DDD.h:49
+
This class is the base class representing a hierarchical Set Decision Diagram.
Definition: SDD.h:49
+
Definition: FixObserver.hh:10
+
virtual void update(const GSDD &after, const GSDD &before)=0
+
virtual void update(const GDDD &after, const GDDD &before)=0
+
virtual bool should_interrupt(const GSDD &after, const GSDD &before)=0
+
virtual ~FixObserver()
Definition: FixObserver.hh:13
+
virtual bool should_interrupt(const GDDD &after, const GDDD &before)=0
+
FixObserver()
Definition: FixObserver.hh:12
+
virtual bool was_interrupted() const =0
+
Definition: FixObserver.cpp:5
+
void set_fixobserver(FixObserver *o)
Definition: FixObserver.cpp:21
+
FixObserver * get_fixobserver()
Definition: FixObserver.cpp:28
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom_8cpp.html b/libddd.html/Hom_8cpp.html new file mode 100644 index 000000000..20fc63a0f --- /dev/null +++ b/libddd.html/Hom_8cpp.html @@ -0,0 +1,1008 @@ + + + + + + + +DDD: Hom.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Typedefs | +Functions | +Variables
+
+
Hom.cpp File Reference
+
+
+
#include <typeinfo>
+#include <iostream>
+#include <cassert>
+#include <map>
+#include <algorithm>
+#include "ddd/util/set.hh"
+#include "ddd/Hom.h"
+#include "ddd/DDD.h"
+#include "ddd/DED.h"
+#include "ddd/UniqueTable.h"
+#include "ddd/MLHom.h"
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/configuration.hh"
+#include "ddd/Cache.hh"
+#include "ddd/MemoryManager.h"
+#include "ddd/FixObserver.hh"
+
+Include dependency graph for Hom.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  d3::util::equal< _GHom * >
 
class  Identity
 
class  Constant
 
class  Apply2k
 
class  DomExtract
 Extractor of variable domains for invert computations. More...
 
class  Mult
 
class  Inter
 
class  NotCond
 
class  Add
 
class  Monotonic
 
class  Compose
 
class  And
 A commutative composition of n homomorphisms. More...
 
class  LeftConcat
 
class  RightConcat
 
class  Minus
 
class  Fixpoint
 
class  MLHomAdapter
 
+ + + + + +

+Namespaces

 d3
 
 d3::util
 
+ + + + + +

+Typedefs

typedef Cache< GHom, GDDD, GDDDHomCache
 
typedef Cache< GHom, GDDD, GDDD, char > ImgHomCache
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool testWasInterrupt (bool can_garbage, const GDDD &d1, const GDDD &d2)
 
bool testShouldInterrupt (bool can_garbage, const GDDD &d1, const GDDD &d2)
 
GDDD computeDomain (int var, const GDDD &d)
 Return the domain of the first variable bearing the provided index in the provided DDD Useful for invert computations. More...
 
static bool notInRange (const GHom::range_t &h1r, const GHom &h2)
 
bool commutative (const GHom &h1, const GHom &h2)
 return true if the provided operations are commutative More...
 
GHom fixpoint (const GHom &h, bool is_top_level)
 Apply a homomorphism until fixpoint is reached. More...
 
GHom monotonic (const d3::set< GHom >::type &set)
 
static void printCondError (const GHom &cond)
 
GHom ITE (const GHom &cond, const GHom &iftrue, const GHom &iffalse)
 An IF-THEN-ELSE construct. More...
 
GHom operator! (const GHom &cond)
 A negation/complement constructor for selector homomophisms. More...
 
static void addCompositionParameter (const GHom &h, And::parameters_t &args)
 
GHom operator& (const GHom &h1, const GHom &h2)
 Composition by circ (rond) of homomorphisms. More...
 
GHom operator+ (const GHom &h1, const GHom &h2)
 Composition by union of two homomorphisms. More...
 
GHom operator* (const GDDD &d, const GHom &h)
 Intersection with a constant DDD. More...
 
GHom operator* (const GHom &h, const GDDD &d)
 Intersection with a constant SDD. More...
 
GHom operator* (const GHom &h, const GHom &cond)
 Intersection with a selector Hom. More...
 
GHom operator^ (const GDDD &d, const GHom &h)
 Left Concatenation of a constant SDD. More...
 
GHom operator^ (const GHom &h, const GDDD &d)
 Right Concatenation of a constant SDD. More...
 
GHom operator- (const GHom &h, const GDDD &d)
 Set difference. More...
 
GHom apply2k (const GDDD &d)
 Apply a 2 level DDD representing a transition relation to current variable. More...
 
std::ostream & operator<< (std::ostream &os, const GHom &h)
 
+ + + + + + + +

+Variables

static UniqueTable< _GHomcanonical
 
static HomCache cache
 
static ImgHomCache imgcache
 
+

Typedef Documentation

+ +

◆ HomCache

+ +
+
+ + + + +
typedef Cache<GHom,GDDD,GDDD> HomCache
+
+ +
+
+ +

◆ ImgHomCache

+ +
+
+ + + + +
typedef Cache<GHom,GDDD,GDDD,char> ImgHomCache
+
+ +
+
+

Function Documentation

+ +

◆ addCompositionParameter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void addCompositionParameter (const GHomh,
And::parameters_targs 
)
+
+static
+
+ +

References commutative(), and _GHom::get_concret().

+ +
+
+ +

◆ apply2k()

+ +
+
+ + + + + + + + +
GHom apply2k (const GDDDd)
+
+ +

Apply a 2 level DDD representing a transition relation to current variable.

+ +

References GDDD::null, GDDD::one, and GDDD::top.

+ +
+
+ +

◆ commutative()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool commutative (const GHomh1,
const GHomh2 
)
+
+ +

return true if the provided operations are commutative

+ +

References GHom::get_range(), GHom::is_selector(), and notInRange().

+ +

Referenced by addCompositionParameter().

+ +
+
+ +

◆ computeDomain()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD computeDomain (int var,
const GDDDd 
)
+
+ +

Return the domain of the first variable bearing the provided index in the provided DDD Useful for invert computations.

+ +

Referenced by _setVarConst::invert(), and _incVar::invert().

+ +
+
+ +

◆ fixpoint()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom fixpoint (const GHomh,
bool is_top_level 
)
+
+ +

Apply a homomorphism until fixpoint is reached.

+

Application consists in : while ( h(d) != d ) d = h(d); Where d is a DDD and h a homomorphism.

+ +

Referenced by Fixpoint::eval(), Fixpoint::has_image(), and Fixpoint::invert().

+ +
+
+ +

◆ ITE()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GHom ITE (const GHomcond,
const GHomiftrue,
const GHomiffalse 
)
+
+ +

An IF-THEN-ELSE construct.

+

The behavior of the condition must be a selection, as indicated by its isSelector() flag. PITFALL : Otherwise an assertion violation will be raised (with an explicit stderr message)

+

Semantics : ITE ( cond, iftrue, iffalse) (d) = (iftrue & cond(d)) + (iffalse & !cond(d))
+

+ +

References GHom::is_selector(), and printCondError().

+ +
+
+ +

◆ monotonic()

+ +
+
+ + + + + + + + +
GHom monotonic (const d3::set< GHom >::type & set)
+
+

Similar to the fixpoint, but we suppose here that the parameters are commutative And that any application order converges to the same result Typically this is the property of a base of monotonic< permutations.

+ +

Referenced by Monotonic::skip_variable().

+ +
+
+ +

◆ notInRange()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool notInRange (const GHom::range_th1r,
const GHomh2 
)
+
+static
+
+ +

References GHom::get_range().

+ +

Referenced by commutative().

+ +
+
+ +

◆ operator!()

+ +
+
+ + + + + + + + +
GHom operator! (const GHomcond)
+
+ +

A negation/complement constructor for selector homomophisms.

+

Let cond be a selector, !cond(d) = d - cond(d) PITFALL : Raises an assert violation if is_selector() returns false !

+ +
+
+ +

◆ operator&()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator& (const GHomh1,
const GHomh2 
)
+
+ +

Composition by circ (rond) of homomorphisms.

+

(h & g) (d) = h( g(d) ) ; Where g,h are homomorphisms and d is a DDD.

+ +
+
+ +

◆ operator*() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GDDDd,
const GHomh 
)
+
+ +

Intersection with a constant DDD.

+

(d1 * h) (d2) = d1 * h(d2) ; Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator*() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GHomh,
const GDDDd 
)
+
+ +

Intersection with a constant SDD.

+

(h * d1) (d2) = h(d2) * d1 ; Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator*() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GHomh,
const GHomcond 
)
+
+ +

Intersection with a selector Hom.

+

Semantics : (d1 * sel) (d) = d1 (d) * sel (d) WARNING : assert failure if 2nd argument is not a selector.

+ +

References GHom::is_selector(), and GDDD::null.

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator+ (const GHomh1,
const GHomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a DDD.

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator- (const GHomh,
const GDDDd 
)
+
+ +

Set difference.

+

(h - d1) (d2) = h(d2) - d1 Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GHomh 
)
+
+ +
+
+ +

◆ operator^() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GDDDd,
const GHomh 
)
+
+ +

Left Concatenation of a constant SDD.

+

(d1 ^ h) (d2) = d1 ^ h(d2) Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator^() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GHomh,
const GDDDd 
)
+
+ +

Right Concatenation of a constant SDD.

+

(h ^ d1) (d2) = h(d1) ^ d2 Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ printCondError()

+ +
+
+ + + + + +
+ + + + + + + + +
static void printCondError (const GHomcond)
+
+static
+
+ +

Referenced by ITE().

+ +
+
+ +

◆ testShouldInterrupt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool testShouldInterrupt (bool can_garbage,
const GDDDd1,
const GDDDd2 
)
+
+ +

Referenced by Fixpoint::eval().

+ +
+
+ +

◆ testWasInterrupt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool testWasInterrupt (bool can_garbage,
const GDDDd1,
const GDDDd2 
)
+
+
+

Variable Documentation

+ +

◆ cache

+ +
+
+ + + + + +
+ + + + +
HomCache cache
+
+static
+
+
+ +

◆ canonical

+ +
+
+ + + + + +
+ + + + +
UniqueTable<_GHom> canonical
+
+static
+
+
+ +

◆ imgcache

+ +
+
+ + + + + +
+ + + + +
ImgHomCache imgcache
+
+static
+
+ +

Referenced by GHom::garbage(), and GHom::has_image().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom_8cpp__incl.map b/libddd.html/Hom_8cpp__incl.map new file mode 100644 index 000000000..a1ec38868 --- /dev/null +++ b/libddd.html/Hom_8cpp__incl.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/Hom_8cpp__incl.md5 b/libddd.html/Hom_8cpp__incl.md5 new file mode 100644 index 000000000..c078637be --- /dev/null +++ b/libddd.html/Hom_8cpp__incl.md5 @@ -0,0 +1 @@ +09f8e56e294f2e8b7d42a172b0f4c799 \ No newline at end of file diff --git a/libddd.html/Hom_8cpp__incl.png b/libddd.html/Hom_8cpp__incl.png new file mode 100644 index 000000000..3d36b9ebb Binary files /dev/null and b/libddd.html/Hom_8cpp__incl.png differ diff --git a/libddd.html/Hom_8h.html b/libddd.html/Hom_8h.html new file mode 100644 index 000000000..3f3d13046 --- /dev/null +++ b/libddd.html/Hom_8h.html @@ -0,0 +1,644 @@ + + + + + + + +DDD: Hom.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces
+
+
Hom.h File Reference
+
+
+
#include "ddd/DDD.h"
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/set.hh"
+#include <map>
+#include <cassert>
+#include <iostream>
+
+Include dependency graph for Hom.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Classes

class  GHom
 This class is the base class representing a homomorphism over DDD. More...
 
class  Hom
 This is the user interface class to manipulate homomorphisms. More...
 
struct  std::less< GHom >
 Compares two GHom in hash tables. More...
 
class  _GHom
 The concrete data class for Homomorphisms. More...
 
class  StrongHom
 The abstract base class for user defined operations. More...
 
class  MyGHom
 Unknown function for this class. More...
 
+ + + +

+Namespaces

 std
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

Composition operators between DDD homomorphisms.
GHom fixpoint (const GHom &, bool is_top_level=false)
 Apply a homomorphism until fixpoint is reached. More...
 
GHom operator! (const GHom &cond)
 A negation/complement constructor for selector homomophisms. More...
 
GHom ITE (const GHom &cond, const GHom &iftrue, const GHom &iffalse)
 An IF-THEN-ELSE construct. More...
 
GHom operator+ (const GHom &, const GHom &)
 Composition by union of two homomorphisms. More...
 
GHom operator& (const GHom &, const GHom &)
 Composition by circ (rond) of homomorphisms. More...
 
GHom operator* (const GDDD &, const GHom &)
 Intersection with a constant DDD. More...
 
GHom operator* (const GHom &, const GDDD &)
 Intersection with a constant SDD. More...
 
GHom operator* (const GHom &, const GHom &)
 Intersection with a selector Hom. More...
 
GHom operator^ (const GDDD &, const GHom &)
 Left Concatenation of a constant SDD. More...
 
GHom operator^ (const GHom &, const GDDD &)
 Right Concatenation of a constant SDD. More...
 
GHom operator- (const GHom &, const GDDD &)
 Set difference. More...
 
GHom apply2k (const GDDD &)
 Apply a 2 level DDD representing a transition relation to current variable. More...
 
GDDD computeDomain (int var, const GDDD &)
 Return the domain of the first variable bearing the provided index in the provided DDD Useful for invert computations. More...
 
bool commutative (const GHom &h1, const GHom &h2)
 return true if the provided operations are commutative More...
 
+

Function Documentation

+ +

◆ apply2k()

+ +
+
+ + + + + + + + +
GHom apply2k (const GDDDd)
+
+ +

Apply a 2 level DDD representing a transition relation to current variable.

+ +

References GDDD::null, GDDD::one, and GDDD::top.

+ +
+
+ +

◆ commutative()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool commutative (const GHomh1,
const GHomh2 
)
+
+ +

return true if the provided operations are commutative

+ +

References GHom::get_range(), GHom::is_selector(), and notInRange().

+ +

Referenced by addCompositionParameter().

+ +
+
+ +

◆ computeDomain()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD computeDomain (int var,
const GDDDd 
)
+
+ +

Return the domain of the first variable bearing the provided index in the provided DDD Useful for invert computations.

+ +

Referenced by _setVarConst::invert(), and _incVar::invert().

+ +
+
+ +

◆ fixpoint()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom fixpoint (const GHomh,
bool is_top_level 
)
+
+ +

Apply a homomorphism until fixpoint is reached.

+

This operator applies its argument to a node until a fixpoint is reached.

+

This new unary operator is introduced to implement local saturation in transition relation evaluation. Proper use of fixpoint allows to effectively tackle the intermediate size problem of decision diagram based representations. Note that evaluation simply iterates until a fixpoint is reached, thus to cumulate new states with previously reached it should be combined with GShom::id as in

+

fixpoint ( h + GShom::id )

+

Application consists in : while ( h(d) != d ) d = h(d); Where d is a DDD and h a homomorphism.

+ +

Referenced by Fixpoint::eval(), Fixpoint::has_image(), and Fixpoint::invert().

+ +
+
+ +

◆ ITE()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GHom ITE (const GHomcond,
const GHomiftrue,
const GHomiffalse 
)
+
+ +

An IF-THEN-ELSE construct.

+

The behavior of the condition must be a selection, as indicated by its isSelector() flag. PITFALL : Otherwise an assertion violation will be raised (with an explicit stderr message)

+

Semantics : ITE ( cond, iftrue, iffalse) (d) = (iftrue & cond(d)) + (iffalse & !cond(d))
+

+ +

References GHom::is_selector(), and printCondError().

+ +
+
+ +

◆ operator!()

+ +
+
+ + + + + + + + +
GHom operator! (const GHomcond)
+
+ +

A negation/complement constructor for selector homomophisms.

+

Let cond be a selector, !cond(d) = d - cond(d) PITFALL : Raises an assert violation if is_selector() returns false !

+ +
+
+ +

◆ operator&()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator& (const GHomh1,
const GHomh2 
)
+
+ +

Composition by circ (rond) of homomorphisms.

+

This operator creates an operation that is the composition of two operations.

+

Semantics : (h1 & h2) (d) = h1( h2(d) ).

+

(h & g) (d) = h( g(d) ) ; Where g,h are homomorphisms and d is a DDD.

+ +
+
+ +

◆ operator*() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GDDDd,
const GHomh 
)
+
+ +

Intersection with a constant DDD.

+

This operator creates an operation that is the intersection of an operation and a constant DDD.

+

Semantics : (h * d1) (d) = h(d) * d1

+

(d1 * h) (d2) = d1 * h(d2) ; Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator*() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GHomh,
const GDDDd 
)
+
+ +

Intersection with a constant SDD.

+

This operator creates an operation that is the intersection of an operation and a constant DDD.

+

Semantics : (d1 * h) (d) = d1 * h(d)

+

(h * d1) (d2) = h(d2) * d1 ; Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator*() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GHomh,
const GHomcond 
)
+
+ +

Intersection with a selector Hom.

+

Semantics : (d1 * sel) (d) = d1 (d) * sel (d) WARNING : assert failure if 2nd argument is not a selector.

+ +

References GHom::is_selector(), and GDDD::null.

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator+ (const GHomh1,
const GHomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

This operator creates an operation that is the union of two operations.

+

See also GShom::add(). This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a DDD.

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator- (const GHomh,
const GDDDd 
)
+
+ +

Set difference.

+

This is a set difference constructor, only available for (hom - ddd), not hom - hom as that might not preserve linearity.

+

Note that this operation is not commutative, nor is it linear. This means the difference of two linear homomorphisms is not necessarily linear; (h1 - h2) (d) is not necessarily equal to h1(d) - h2(d). Therefore this operator is not defined for composition of two homomorphisms, only for a constant and a homomorphism.

+

Semantics : (h - d1) (d) = h(d) - d1

+

(h - d1) (d2) = h(d2) - d1 Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator^() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GDDDd,
const GHomh 
)
+
+ +

Left Concatenation of a constant SDD.

+

This is the left concatenantion operator, that adds a constant DDD above the operation.

+

Note that this is inherently inefficient, the nodes of d1 are constructed, but the result a priori will not contain them, unless h(d) == GSDD::one.

+

Semantics : (d1 ^ h) (d) = d1 ^ h(d)

+

(d1 ^ h) (d2) = d1 ^ h(d2) Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+ +

◆ operator^() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GHomh,
const GDDDd 
)
+
+ +

Right Concatenation of a constant SDD.

+

This is the right concatenantion operator, that adds a constant DDD below the operation.

+

This is used to construct new nodes, and has the same efficiency issue as left concatenation.

+

Semantics : (h ^ d1) (d) = h(d) ^ d1

+

(h ^ d1) (d2) = h(d1) ^ d2 Where h is a homomorphism and d1, d2 are DDD.

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom_8h__dep__incl.map b/libddd.html/Hom_8h__dep__incl.map new file mode 100644 index 000000000..c6cb5ad69 --- /dev/null +++ b/libddd.html/Hom_8h__dep__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/Hom_8h__dep__incl.md5 b/libddd.html/Hom_8h__dep__incl.md5 new file mode 100644 index 000000000..69b82889c --- /dev/null +++ b/libddd.html/Hom_8h__dep__incl.md5 @@ -0,0 +1 @@ +d6b5de5292dc294c2444b4bd3671b8f1 \ No newline at end of file diff --git a/libddd.html/Hom_8h__dep__incl.png b/libddd.html/Hom_8h__dep__incl.png new file mode 100644 index 000000000..15bca9b95 Binary files /dev/null and b/libddd.html/Hom_8h__dep__incl.png differ diff --git a/libddd.html/Hom_8h__incl.map b/libddd.html/Hom_8h__incl.map new file mode 100644 index 000000000..c7a3379cc --- /dev/null +++ b/libddd.html/Hom_8h__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/Hom_8h__incl.md5 b/libddd.html/Hom_8h__incl.md5 new file mode 100644 index 000000000..bb7d284db --- /dev/null +++ b/libddd.html/Hom_8h__incl.md5 @@ -0,0 +1 @@ +49434ca5b7395b18e60550ad76d767c3 \ No newline at end of file diff --git a/libddd.html/Hom_8h__incl.png b/libddd.html/Hom_8h__incl.png new file mode 100644 index 000000000..d8cae264d Binary files /dev/null and b/libddd.html/Hom_8h__incl.png differ diff --git a/libddd.html/Hom_8h_source.html b/libddd.html/Hom_8h_source.html new file mode 100644 index 000000000..1f520b045 --- /dev/null +++ b/libddd.html/Hom_8h_source.html @@ -0,0 +1,438 @@ + + + + + + + +DDD: Hom.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Hom.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef HOM_H_
+
25 #define HOM_H_
+
26 
+
27 #include "ddd/DDD.h"
+
28 #include "ddd/util/hash_support.hh"
+
29 #include "ddd/util/set.hh"
+
30 
+
31 #include <map>
+
32 #include <cassert>
+
33 #include <iostream>
+
34 /**********************************************************************/
+
35 
+
37 class _GHom;
+
39 class StrongHom;
+
41 class MyGHom;
+
43 class MLHom;
+
44 
+
55 class GHom {
+
56 private:
+
58  friend class Hom;
+
60  friend class _GHom;
+
64  friend GHom fixpoint(const GHom &, bool);
+
69  friend GHom monotonic(const d3::set<GHom>::type & set);
+
73  friend GHom operator+(const GHom &,const GHom &);
+
77  friend GHom operator&(const GHom &,const GHom &);
+
81  friend GHom operator*(const GDDD &,const GHom &);
+
85  friend GHom operator*(const GHom &,const GDDD &);
+
89  friend GHom operator^(const GDDD &,const GHom &);
+
93  friend GHom operator^(const GHom &,const GDDD &);
+
97  friend GHom operator-(const GHom &,const GDDD &);
+
98 
+
99 #ifdef HASH_STAT
+
100  // open access to instrumented hashtable
+
101  template <class Value, class Key, class HashFcn,
+
102  class ExtractKey, class SetKey, class EqualKey, class Alloc>
+
103  friend class google::sparse_hashtable;
+
104 #endif
+
105 
+
108  const _GHom* concret;
+
109 public:
+
110  typedef GDDD NodeType;
+
114  GHom(const _GHom *_h):concret(_h){};
+
115 
+
124  GHom(_GHom *_h);
+
125 
+
128  GHom(const _GHom &_h);
+
130 
+
131  GHom():concret(id.concret){};
+
134 
+
136  GHom(const MLHom &);
+
137 
+
142  GHom(const GDDD& d);
+
149  GHom(int var, int val, const GHom &h=GHom::id);
+
151 
+
154  static const GHom id;
+
155 
+
157 
+
158  bool operator==(const GHom &h) const{return concret==h.concret;};
+
165  bool operator!=(const GHom &h) const{return concret!=h.concret;};
+
172  bool operator<(const GHom &h) const;
+
174  bool is_selector() const;
+
176 
+ +
178  typedef range_t::const_iterator range_it;
+
180  const range_t get_range () const;
+
182  static const range_t full_range;
+
183 
+
185  GHom invert (const GDDD & pot) const;
+
186 
+
188  GDDD has_image (const GDDD & d) const;
+
189 
+
191  GHom negate () const;
+
192 
+
197  GDDD operator()(const GDDD &d) const;
+
202  GDDD eval(const GDDD &d) const;
+
203 
+
204  bool skip_variable(int var) const ;
+
205 
+
206  GHom compose (const GHom &r) const ;
+
207 
+
210  int refCounter() const;
+
211 
+
218  static GHom add(const d3::set<GHom>::type & set);
+
219 
+
224  static GHom ccompose(const d3::set<GHom>::type & set);
+
225 
+
226 
+
227  // pretty print of homomorphisms
+
228  friend std::ostream & operator << (std::ostream & os, const GHom & h);
+
229 
+
231 
+
232  static unsigned int statistics();
+
236  static void pstats(bool reinit=true);
+
238  void mark()const;
+
240  size_t hash () const {
+
241  return ddd::knuth32_hash(reinterpret_cast<size_t>(concret));
+
242  }
+
250  static void garbage();
+
252 };
+
253 
+
254 
+
255 
+
256 /* Operations */
+
258 
+
259 GHom fixpoint(const GHom &, bool is_top_level=false);
+
272 GHom operator! (const GHom & cond);
+
278 GHom ITE (const GHom & cond, const GHom & iftrue, const GHom & iffalse);
+
279 
+
285 GHom operator+(const GHom &,const GHom &);
+
289 GHom operator&(const GHom &,const GHom &); // composition
+
292 GHom operator*(const GDDD &,const GHom &);
+
295 GHom operator*(const GHom &,const GDDD &);
+
299 GHom operator*(const GHom &,const GHom &);
+
305 GHom operator^(const GDDD &,const GHom &);
+
311 GHom operator^(const GHom &,const GDDD &);
+
319 GHom operator-(const GHom &,const GDDD &);
+
320 
+
322 GHom apply2k (const GDDD &);
+
323 
+
326 GDDD computeDomain (int var, const GDDD& );
+
327 
+
329 bool commutative (const GHom & h1, const GHom & h2);
+
330 
+
331 
+
333 
+
334 
+
335 
+
339 class Hom:public GHom /*, public DataSet*/ {
+
340  public:
+
341  /* Constructor */
+
344 
+
345  Hom(const GHom &h=GHom::id);
+
348  Hom(const Hom &h);
+
350  Hom(const GDDD& d); // constant
+
358  Hom(int var, int val, const GHom &h=GHom::id); // var -- val -> Id
+
361  ~Hom();
+
363 
+
365 
+
366  Hom &operator=(const GHom &);
+
369  Hom &operator=(const Hom &);
+
371 };
+
372 
+
373 /******************************************************************************/
+
374 
+
375 namespace std {
+
378  template<>
+
379  struct less<GHom> {
+
380  bool operator()(const GHom &g1,const GHom &g2) const{
+
381  return g1<g2;
+
382  }
+
383  };
+
384 }
+
385 
+
386 /**********************************************************************/
+
390 class _GHom{
+
391 private:
+
393  friend class GHom;
+
395  friend class Hom;
+
398  mutable int refCounter;
+
403  mutable bool marking;
+
407  mutable bool immediat;
+ +
411 
+
412  GDDD eval_skip(const GDDD &) const;
+
413 public:
+
414  // made public ONLY for the cache, not part of normal API, use GHom has_image instead (cache etc...).
+
415  GDDD has_image_skip(const GDDD &) const;
+
416 
+
417 
+
421  virtual bool
+
422  skip_variable(int) const
+
423  {
+
424  return false;
+
425  }
+
428  virtual bool
+
429  is_selector() const
+
430  {
+
431  return false;
+
432  }
+
433 
+
435  virtual const GHom::range_t get_range () const
+
436  {
+
437  return GHom::full_range;
+
438  }
+
439 
+
441  virtual GHom invert (const GDDD & ) const {
+
442  // default = raise assert
+
443  if ( is_selector() ) {
+
444  // A default implementation is provided for selector homomorphisms, overloadable.
+
445  return this;
+
446  }
+
447  // No default implem if ! is_selector
+
448  std::cerr << "Cannot invert homomorphism : " ;
+
449  print (std::cerr);
+
450  std::cerr << std::endl ;
+
451  assert(0);
+
452  return GHom(GDDD::null);
+
453  }
+
454 
+
455 
+
458  _GHom(int ref=0,bool im=false):refCounter(ref),marking(false),immediat(im){
+
459  // creation counter
+
460  static size_t counter = 0;
+
461  creation_counter = counter++;
+
462  }
+
464  virtual ~_GHom(){};
+
465 
+
466 
+
470  virtual bool operator==(const _GHom &h) const=0;
+
472  bool operator< (const _GHom &h) const;
+
477  virtual size_t hash() const=0;
+
478 
+
479  // for use by unique table : return new MyConcreteClassName(*this);
+
480  virtual _GHom * clone () const =0 ;
+
481 
+
485  virtual GDDD eval(const GDDD &)const=0;
+
486 
+
488  virtual void mark() const{};
+
489 
+
490  virtual GDDD has_image(const GDDD &) const;
+
492  virtual GHom negate () const;
+
493 
+
494 
+
495  virtual GHom compose (const GHom &r) const ;
+
496 
+
497  virtual void print (std::ostream & os) const = 0;
+
498 
+
499  // Enable access to the concrete GHom for _GHom homorphisms
+
500  static const _GHom*
+
501  get_concret(const GHom& ghom)
+
502  {
+
503  return ghom.concret;
+
504  }
+
505 
+
506 
+
507 };
+
508 
+ +
518  :
+
519  public _GHom
+
520 {
+
521 public:
+ +
527  virtual ~StrongHom(){};
+
531  virtual GDDD phiOne() const{return GDDD::top;};
+
536  virtual GHom phi(int var,int val) const=0;
+
538  virtual bool operator==(const StrongHom &h) const=0;
+
539 
+
543  bool operator==(const _GHom &h) const;
+
544 
+
546  virtual void print (std::ostream & os) const ;
+
547 
+
548 
+
555  GDDD eval(const GDDD &)const;
+
556 
+
557  virtual GDDD has_image (const GDDD &) const;
+
558 
+
559 };
+
560 
+
561 
+
564 class MyGHom:public _GHom{};
+
565 
+
566 #endif /* HOM_H_ */
+ +
GHom operator!(const GHom &cond)
A negation/complement constructor for selector homomophisms.
Definition: Hom.cpp:2284
+
GHom ITE(const GHom &cond, const GHom &iftrue, const GHom &iffalse)
An IF-THEN-ELSE construct.
Definition: Hom.cpp:2274
+
GHom fixpoint(const GHom &, bool is_top_level=false)
Apply a homomorphism until fixpoint is reached.
Definition: Hom.cpp:2099
+
GHom operator^(const GDDD &, const GHom &)
Left Concatenation of a constant SDD.
Definition: Hom.cpp:2425
+
GHom apply2k(const GDDD &)
Apply a 2 level DDD representing a transition relation to current variable.
Definition: Hom.cpp:2437
+
GHom operator&(const GHom &, const GHom &)
Composition by circ (rond) of homomorphisms.
Definition: Hom.cpp:2363
+
GHom operator-(const GHom &, const GDDD &)
Set difference.
Definition: Hom.cpp:2433
+
GHom operator*(const GDDD &, const GHom &)
Intersection with a constant DDD.
Definition: Hom.cpp:2402
+
bool commutative(const GHom &h1, const GHom &h2)
return true if the provided operations are commutative
Definition: Hom.cpp:1894
+
GHom operator+(const GHom &, const GHom &)
Composition by union of two homomorphisms.
Definition: Hom.cpp:2394
+
GDDD computeDomain(int var, const GDDD &)
Return the domain of the first variable bearing the provided index in the provided DDD Useful for inv...
Definition: Hom.cpp:316
+
This class is the base class representing a Data Decision Diagram.
Definition: DDD.h:49
+
static const GDDD top
The approximation terminal.
Definition: DDD.h:146
+
static const GDDD null
The non-accepting terminal.
Definition: DDD.h:143
+
This class is the base class representing a homomorphism over DDD.
Definition: Hom.h:55
+
range_t::const_iterator range_it
Definition: Hom.h:178
+
GHom(_GHom *_h)
THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote ...
+
GDDD eval(const GDDD &d) const
Evaluation function : users should use operator() instead of this.
Definition: Hom.cpp:1971
+
friend std::ostream & operator<<(std::ostream &os, const GHom &h)
Definition: Hom.cpp:2483
+
GHom negate() const
returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)
Definition: Hom.cpp:1914
+
static const range_t full_range
The full_range : that targets everyone.
Definition: Hom.h:182
+
bool skip_variable(int var) const
Definition: Hom.cpp:1864
+
static GHom add(const d3::set< GHom >::type &set)
A constructor for a union of several homomorphisms.
Definition: Hom.cpp:1981
+
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: Hom.cpp:2452
+
bool operator<(const GHom &h) const
Total ordering function between Hom.
Definition: Hom.cpp:1860
+
static void garbage()
For garbage collection.
Definition: Hom.cpp:2023
+
GHom compose(const GHom &r) const
Definition: Hom.cpp:1906
+
GDDD operator()(const GDDD &d) const
Evaluation operator.
Definition: Hom.cpp:1941
+
static unsigned int statistics()
Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed...
Definition: Hom.cpp:2011
+
friend GHom operator^(const GDDD &, const GHom &)
This is the left concatenantion operator, that adds a constant DDD above the operation.
Definition: Hom.cpp:2425
+
GHom invert(const GDDD &pot) const
returns the predescessor homomorphism, using pot to determine variable domains
Definition: Hom.cpp:1910
+
void mark() const
For garbage collection internals. Marks a GHom as in use in garbage collection phase.
Definition: Hom.cpp:2016
+
GDDD NodeType
Definition: Hom.h:110
+
GHom()
Default public constructor.
Definition: Hom.h:133
+
size_t hash() const
For storage in a hash table.
Definition: Hom.h:240
+
friend GHom operator&(const GHom &, const GHom &)
This operator creates an operation that is the composition of two operations.
Definition: Hom.cpp:2363
+
friend GHom operator-(const GHom &, const GDDD &)
This is a set difference constructor, only available for (hom - ddd), not hom - hom as that might not...
Definition: Hom.cpp:2433
+
bool operator!=(const GHom &h) const
Comparison between Homomorphisms.
Definition: Hom.h:165
+
GDDD has_image(const GDDD &d) const
returns true if and only if h(d) != SDD::null
Definition: Hom.cpp:1960
+
GHom(const _GHom *_h)
A uncontrolled constructor used in internals.
Definition: Hom.h:114
+
friend GHom operator*(const GDDD &, const GHom &)
This operator creates an operation that is the intersection of an operation and a constant DDD.
Definition: Hom.cpp:2402
+
friend GHom fixpoint(const GHom &, bool)
This operator applies its argument to a node until a fixpoint is reached.
Definition: Hom.cpp:2099
+
bool operator==(const GHom &h) const
Comparison between Homomorphisms.
Definition: Hom.h:161
+
friend GHom operator+(const GHom &, const GHom &)
This operator creates an operation that is the union of two operations.
Definition: Hom.cpp:2394
+
friend GHom monotonic(const d3::set< GHom >::type &set)
This operator applies its arguments to a node until a fixpoint is reached.
Definition: Hom.cpp:2260
+
friend class Hom
Open access to Hom derived class.
Definition: Hom.h:58
+
bool is_selector() const
This predicate is true if the homomorphism global behavior is only to prune some paths.
Definition: Hom.cpp:2093
+
const _GHom * concret
The real implementation class.
Definition: Hom.h:108
+
static GHom ccompose(const d3::set< GHom >::type &set)
A constructor for a commutative composition of several homomorphisms.
Definition: Hom.cpp:1995
+
static const GHom id
Elementary homomorphism Identity, defined as a constant.
Definition: Hom.h:154
+
const range_t get_range() const
Returns the range for this homomorphism, i.e. the dual of skip_variable.
Definition: Hom.cpp:1868
+
int refCounter() const
Accessor to visualize the reference count of the concret instance.
Definition: Hom.cpp:1977
+
d3::set< int >::type range_t
Definition: Hom.h:177
+
This is the user interface class to manipulate homomorphisms.
Definition: Hom.h:339
+
~Hom()
Destructor maintains reference counting.
Definition: Hom.cpp:2069
+
Hom & operator=(const GHom &)
Overloaded behavior for assignment operator, maintains reference counting.
Definition: Hom.cpp:2084
+
Definition: MLHom.h:39
+
Unknown function for this class.
Definition: Hom.h:564
+
The abstract base class for user defined operations.
Definition: Hom.h:520
+
virtual void print(std::ostream &os) const
pretty print
Definition: Hom.cpp:1841
+
virtual ~StrongHom()
Default destructor.
Definition: Hom.h:527
+
virtual GDDD phiOne() const
Evaluation over terminal GDDD::one.
Definition: Hom.h:531
+
virtual bool operator==(const StrongHom &h) const =0
Comparator is pure virtual. Define a behavior in user homomorphisms.
+
GDDD eval(const GDDD &) const
The evaluation mechanism of strong homomorphisms.
Definition: Hom.cpp:1811
+
virtual GHom phi(int var, int val) const =0
Evaluation over an arbitrary arc of a SDD.
+
StrongHom()
Default constructor.
Definition: Hom.h:524
+
virtual GDDD has_image(const GDDD &) const
Definition: Hom.cpp:1780
+
The concrete data class for Homomorphisms.
Definition: Hom.h:390
+
virtual GHom invert(const GDDD &) const
returns the predescessor homomorphism, using pot to determine variable domains
Definition: Hom.h:441
+
virtual _GHom * clone() const =0
+
GDDD eval_skip(const GDDD &) const
Definition: Hom.cpp:1682
+
virtual bool operator==(const _GHom &h) const =0
Comparator.
+
size_t creation_counter
Counter of objects created (see constructors).
Definition: Hom.h:410
+
virtual size_t hash() const =0
Hash key computation.
+
virtual GHom compose(const GHom &r) const
Definition: Hom.cpp:1621
+
virtual GDDD has_image(const GDDD &) const
Definition: Hom.cpp:1647
+
virtual const GHom::range_t get_range() const
The range returns the dual of skip_variable, default implem considers that all variables are affected...
Definition: Hom.h:435
+
virtual GHom negate() const
returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)
Definition: Hom.cpp:1640
+
bool operator<(const _GHom &h) const
Ordering between _GHom. It is the chronological ordering of creation.
Definition: Hom.cpp:2448
+
int refCounter
For garbage collection.
Definition: Hom.h:398
+
virtual void mark() const
For garbage collection. Used in first phase of garbage collection.
Definition: Hom.h:488
+
GDDD has_image_skip(const GDDD &) const
Definition: Hom.cpp:1652
+
virtual void print(std::ostream &os) const =0
+
static const _GHom * get_concret(const GHom &ghom)
Definition: Hom.h:501
+
virtual bool is_selector() const
The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modification...
Definition: Hom.h:429
+
virtual GDDD eval(const GDDD &) const =0
The computation function responsible for evaluation over a node.
+
_GHom(int ref=0, bool im=false)
Constructor.
Definition: Hom.h:458
+
friend class GHom
open access to container class GHom.
Definition: Hom.h:393
+
bool marking
For garbage collection.
Definition: Hom.h:403
+
virtual ~_GHom()
Virtual Destructor. Default behavior.
Definition: Hom.h:464
+
virtual bool skip_variable(int) const
The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.
Definition: Hom.h:422
+
bool immediat
For operation cache management.
Definition: Hom.h:407
+
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73
+ +
Definition: DDD.h:340
+ +
std::set< Key, Compare, Allocator > type
Definition: set.hh:18
+
bool operator()(const GHom &g1, const GHom &g2) const
Definition: Hom.h:380
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom__Basic_8cpp.html b/libddd.html/Hom__Basic_8cpp.html new file mode 100644 index 000000000..c7cb1832f --- /dev/null +++ b/libddd.html/Hom__Basic_8cpp.html @@ -0,0 +1,937 @@ + + + + + + + +DDD: Hom_Basic.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Typedefs | +Enumerations | +Functions
+
+
Hom_Basic.cpp File Reference
+
+
+
#include "ddd/Hom_Basic.hh"
+
+Include dependency graph for Hom_Basic.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +

+Classes

class  _VarCompState
 
class  _setVarConst
 
class  _incVar
 
class  _VarCompVar
 
+ + + +

+Typedefs

typedef enum comparator comparator
 
+ + + +

+Enumerations

enum  comparator {
+  EQ +, NEQ +, LT +, GT +,
+  LEQ +, GEQ +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

std::string to_string (comparator comp)
 
static comparator negateComp (comparator comp)
 
GHom varCompState (int var, comparator c, int val)
 
GHom varEqState (int var, int val)
 
GHom varNeqState (int var, int val)
 
GHom varGtState (int var, int val)
 
GHom varLeqState (int var, int val)
 
GHom varLtState (int var, int val)
 
GHom varGeqState (int var, int val)
 
GHom setVarConst (int var, int val)
 
GHom incVar (int var, int val)
 
static comparator invertComp (comparator comp)
 
GHom varCompVar (int var, comparator c, int var2)
 
GHom varEqVar (int var, int var2)
 
GHom varNeqVar (int var, int var2)
 
GHom varGeqVar (int var, int var2)
 
GHom varGtVar (int var, int var2)
 
GHom varLeqVar (int var, int var2)
 
GHom varLtVar (int var, int var2)
 
void iterateDDD (const GDDD &node, callback_t *cb, std::vector< DDD::val_t > &prefix)
 
void iterateSDD (const GSDD &node, callback_t *cb, std::vector< GDDD::val_t > &prefix)
 
void iterate (const GDDD &node, callback_t *cb)
 Explicit conversion : visit every path in the DDD (variable ids are removed) More...
 
void iterate (const GSDD &node, callback_t *cb)
 Explicit conversion : visit every path in the DDD (variable ids are removed) More...
 
+

Typedef Documentation

+ +

◆ comparator

+ +
+
+ + + + +
typedef enum comparator comparator
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ comparator

+ +
+
+ + + + +
enum comparator
+
+ + + + + + + +
Enumerator
EQ 
NEQ 
LT 
GT 
LEQ 
GEQ 
+ +
+
+

Function Documentation

+ +

◆ incVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom incVar (int var,
int val 
)
+
+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ invertComp()

+ +
+
+ + + + + +
+ + + + + + + + +
static comparator invertComp (comparator comp)
+
+static
+
+ +

References EQ, GEQ, GT, LEQ, LT, and NEQ.

+ +

Referenced by _VarCompVar::phi().

+ +
+
+ +

◆ iterate() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void iterate (const GDDDnode,
callback_tcb 
)
+
+ +

Explicit conversion : visit every path in the DDD (variable ids are removed)

+ +

References iterateDDD().

+ +
+
+ +

◆ iterate() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void iterate (const GSDDnode,
callback_tcb 
)
+
+ +

Explicit conversion : visit every path in the DDD (variable ids are removed)

+ +

References iterateSDD().

+ +
+
+ +

◆ iterateDDD()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void iterateDDD (const GDDDnode,
callback_tcb,
std::vector< DDD::val_t > & prefix 
)
+
+ +

References GDDD::null, GDDD::one, and GDDD::top.

+ +

Referenced by iterate(), and iterateSDD().

+ +
+
+ +

◆ iterateSDD()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void iterateSDD (const GSDDnode,
callback_tcb,
std::vector< GDDD::val_t > & prefix 
)
+
+ +

References iterateDDD(), GSDD::null, GSDD::one, and GSDD::top.

+ +

Referenced by iterate().

+ +
+
+ +

◆ negateComp()

+ +
+
+ + + + + +
+ + + + + + + + +
static comparator negateComp (comparator comp)
+
+static
+
+ +

References EQ, GEQ, GT, LEQ, LT, and NEQ.

+ +

Referenced by _VarCompState::negate().

+ +
+
+ +

◆ setVarConst()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom setVarConst (int var,
int val 
)
+
+ +

Referenced by _setVarConst::invert().

+ +
+
+ +

◆ to_string()

+ +
+
+ + + + + + + + +
std::string to_string (comparator comp)
+
+ +

References EQ, GEQ, GT, LEQ, LT, and NEQ.

+ +

Referenced by _VarCompState::print(), and _VarCompVar::print().

+ +
+
+ +

◆ varCompState()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GHom varCompState (int var,
comparator c,
int val 
)
+
+
+ +

◆ varCompVar()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GHom varCompVar (int var,
comparator c,
int var2 
)
+
+
+ +

◆ varEqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varEqState (int var,
int val 
)
+
+ +

References EQ, and varCompState().

+ +

Referenced by _setVarConst::invert().

+ +
+
+ +

◆ varEqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varEqVar (int var,
int var2 
)
+
+ +

References EQ, GHom::id, and varCompVar().

+ +
+
+ +

◆ varGeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGeqState (int var,
int val 
)
+
+ +

References GEQ, and varCompState().

+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ varGeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGeqVar (int var,
int var2 
)
+
+ +

References GEQ, GHom::id, and varCompVar().

+ +
+
+ +

◆ varGtState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGtState (int var,
int val 
)
+
+ +

References GT, and varCompState().

+ +
+
+ +

◆ varGtVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGtVar (int var,
int var2 
)
+
+ +

References GT, GDDD::null, and varCompVar().

+ +
+
+ +

◆ varLeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLeqState (int var,
int val 
)
+
+ +

References LEQ, and varCompState().

+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ varLeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLeqVar (int var,
int var2 
)
+
+ +

References GHom::id, LEQ, and varCompVar().

+ +
+
+ +

◆ varLtState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLtState (int var,
int val 
)
+
+ +

References LT, and varCompState().

+ +
+
+ +

◆ varLtVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLtVar (int var,
int var2 
)
+
+ +

References LT, GDDD::null, and varCompVar().

+ +
+
+ +

◆ varNeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varNeqState (int var,
int val 
)
+
+ +

References NEQ, and varCompState().

+ +
+
+ +

◆ varNeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varNeqVar (int var,
int var2 
)
+
+ +

References NEQ, GDDD::null, and varCompVar().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom__Basic_8cpp__incl.map b/libddd.html/Hom__Basic_8cpp__incl.map new file mode 100644 index 000000000..dc63e333f --- /dev/null +++ b/libddd.html/Hom__Basic_8cpp__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/Hom__Basic_8cpp__incl.md5 b/libddd.html/Hom__Basic_8cpp__incl.md5 new file mode 100644 index 000000000..fea2db1f1 --- /dev/null +++ b/libddd.html/Hom__Basic_8cpp__incl.md5 @@ -0,0 +1 @@ +fb5d4c7ac7d0762260b73463cfe3b21f \ No newline at end of file diff --git a/libddd.html/Hom__Basic_8cpp__incl.png b/libddd.html/Hom__Basic_8cpp__incl.png new file mode 100644 index 000000000..96337dca0 Binary files /dev/null and b/libddd.html/Hom__Basic_8cpp__incl.png differ diff --git a/libddd.html/Hom__Basic_8hh.html b/libddd.html/Hom__Basic_8hh.html new file mode 100644 index 000000000..b3862a31d --- /dev/null +++ b/libddd.html/Hom__Basic_8hh.html @@ -0,0 +1,679 @@ + + + + + + + +DDD: Hom_Basic.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Typedefs | +Functions
+
+
Hom_Basic.hh File Reference
+
+
+
#include "ddd/DDD.h"
+#include "ddd/Hom.h"
+#include "ddd/SDD.h"
+#include "ddd/SHom.h"
+#include <functional>
+
+Include dependency graph for Hom_Basic.hh:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef std::vector< DDD::val_tstate_t
 an explicit representation of a state More...
 
typedef std::function< void(state_t &)> callback_t
 A visitor callback function. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GHom varEqState (int var, int val)
 
GHom varNeqState (int var, int val)
 
GHom varGtState (int var, int val)
 
GHom varLtState (int var, int val)
 
GHom varLeqState (int var, int val)
 
GHom varGeqState (int var, int val)
 
GHom setVarConst (int var, int val)
 
GHom incVar (int var, int val)
 
GHom varEqVar (int var, int var2)
 
GHom varNeqVar (int var, int var2)
 
GHom varGtVar (int var, int var2)
 
GHom varLtVar (int var, int var2)
 
GHom varLeqVar (int var, int var2)
 
GHom varGeqVar (int var, int var2)
 
void iterate (const GDDD &node, callback_t *cb)
 Explicit conversion : visit every path in the DDD (variable ids are removed) More...
 
void iterate (const GSDD &node, callback_t *cb)
 Explicit conversion : visit every path in the DDD (variable ids are removed) More...
 
+

Typedef Documentation

+ +

◆ callback_t

+ +
+
+ + + + +
typedef std::function<void(state_t &)> callback_t
+
+ +

A visitor callback function.

+ +
+
+ +

◆ state_t

+ +
+
+ + + + +
typedef std::vector<DDD::val_t> state_t
+
+ +

an explicit representation of a state

+ +
+
+

Function Documentation

+ +

◆ incVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom incVar (int var,
int val 
)
+
+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ iterate() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void iterate (const GDDDnode,
callback_tcb 
)
+
+ +

Explicit conversion : visit every path in the DDD (variable ids are removed)

+ +

References iterateDDD().

+ +
+
+ +

◆ iterate() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void iterate (const GSDDnode,
callback_tcb 
)
+
+ +

Explicit conversion : visit every path in the DDD (variable ids are removed)

+ +

References iterateSDD().

+ +
+
+ +

◆ setVarConst()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom setVarConst (int var,
int val 
)
+
+ +

Referenced by _setVarConst::invert().

+ +
+
+ +

◆ varEqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varEqState (int var,
int val 
)
+
+ +

References EQ, and varCompState().

+ +

Referenced by _setVarConst::invert().

+ +
+
+ +

◆ varEqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varEqVar (int var,
int var2 
)
+
+ +

References EQ, GHom::id, and varCompVar().

+ +
+
+ +

◆ varGeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGeqState (int var,
int val 
)
+
+ +

References GEQ, and varCompState().

+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ varGeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGeqVar (int var,
int var2 
)
+
+ +

References GEQ, GHom::id, and varCompVar().

+ +
+
+ +

◆ varGtState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGtState (int var,
int val 
)
+
+ +

References GT, and varCompState().

+ +
+
+ +

◆ varGtVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varGtVar (int var,
int var2 
)
+
+ +

References GT, GDDD::null, and varCompVar().

+ +
+
+ +

◆ varLeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLeqState (int var,
int val 
)
+
+ +

References LEQ, and varCompState().

+ +

Referenced by _incVar::invert().

+ +
+
+ +

◆ varLeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLeqVar (int var,
int var2 
)
+
+ +

References GHom::id, LEQ, and varCompVar().

+ +
+
+ +

◆ varLtState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLtState (int var,
int val 
)
+
+ +

References LT, and varCompState().

+ +
+
+ +

◆ varLtVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varLtVar (int var,
int var2 
)
+
+ +

References LT, GDDD::null, and varCompVar().

+ +
+
+ +

◆ varNeqState()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varNeqState (int var,
int val 
)
+
+ +

References NEQ, and varCompState().

+ +
+
+ +

◆ varNeqVar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GHom varNeqVar (int var,
int var2 
)
+
+ +

References NEQ, GDDD::null, and varCompVar().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/Hom__Basic_8hh__dep__incl.map b/libddd.html/Hom__Basic_8hh__dep__incl.map new file mode 100644 index 000000000..4101782df --- /dev/null +++ b/libddd.html/Hom__Basic_8hh__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/Hom__Basic_8hh__dep__incl.md5 b/libddd.html/Hom__Basic_8hh__dep__incl.md5 new file mode 100644 index 000000000..825d577dd --- /dev/null +++ b/libddd.html/Hom__Basic_8hh__dep__incl.md5 @@ -0,0 +1 @@ +1bf138d790f061e5db61eb7b838f48a8 \ No newline at end of file diff --git a/libddd.html/Hom__Basic_8hh__dep__incl.png b/libddd.html/Hom__Basic_8hh__dep__incl.png new file mode 100644 index 000000000..601ab09a8 Binary files /dev/null and b/libddd.html/Hom__Basic_8hh__dep__incl.png differ diff --git a/libddd.html/Hom__Basic_8hh__incl.map b/libddd.html/Hom__Basic_8hh__incl.map new file mode 100644 index 000000000..a1ea517ca --- /dev/null +++ b/libddd.html/Hom__Basic_8hh__incl.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/Hom__Basic_8hh__incl.md5 b/libddd.html/Hom__Basic_8hh__incl.md5 new file mode 100644 index 000000000..591ee4a1e --- /dev/null +++ b/libddd.html/Hom__Basic_8hh__incl.md5 @@ -0,0 +1 @@ +5097affe5d84849309e32705aa0d90aa \ No newline at end of file diff --git a/libddd.html/Hom__Basic_8hh__incl.png b/libddd.html/Hom__Basic_8hh__incl.png new file mode 100644 index 000000000..5f0c543ec Binary files /dev/null and b/libddd.html/Hom__Basic_8hh__incl.png differ diff --git a/libddd.html/Hom__Basic_8hh_source.html b/libddd.html/Hom__Basic_8hh_source.html new file mode 100644 index 000000000..c642f47d5 --- /dev/null +++ b/libddd.html/Hom__Basic_8hh_source.html @@ -0,0 +1,125 @@ + + + + + + + +DDD: Hom_Basic.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Hom_Basic.hh
+
+
+Go to the documentation of this file.
1 #ifndef __HOM_BASIC__H_
+
2 #define __HOM_BASIC__H_
+
3 
+
4 #include "ddd/DDD.h"
+
5 #include "ddd/Hom.h"
+
6 #include "ddd/SDD.h"
+
7 #include "ddd/SHom.h"
+
8 
+
9 
+
10 // keep paths where variable var is equal to val
+
11 GHom varEqState (int var, int val) ;
+
12 // keep paths where variable var is NOT equal to val
+
13 GHom varNeqState (int var, int val) ;
+
14 // keep paths where variable var is strictly greater than val
+
15 GHom varGtState (int var, int val) ;
+
16 // keep paths where variable var is strictly < val
+
17 GHom varLtState (int var, int val) ;
+
18 // keep paths where variable var is <= to val
+
19 GHom varLeqState (int var, int val) ;
+
20 // keep paths where variable var is >= to val
+
21 GHom varGeqState (int var, int val) ;
+
22 // set a var to a constant
+
23 GHom setVarConst (int var, int val) ;
+
24 // increment or decrement the value of var by val
+
25 GHom incVar (int var, int val) ;
+
26 
+
27 // keep paths where variable var is equal to val
+
28 GHom varEqVar (int var, int var2) ;
+
29 // keep paths where variable var is NOT equal to var2
+
30 GHom varNeqVar (int var, int var2) ;
+
31 // keep paths where variable var is strictly greater than var2
+
32 GHom varGtVar (int var, int var2) ;
+
33 // keep paths where variable var is strictly < var2
+
34 GHom varLtVar (int var, int var2) ;
+
35 // keep paths where variable var is <= to var2
+
36 GHom varLeqVar (int var, int var2) ;
+
37 // keep paths where variable var is >= to var2
+
38 GHom varGeqVar (int var, int var2) ;
+
39 
+
40 #include <functional>
+
41 
+
43 typedef std::vector<DDD::val_t> state_t;
+
45 typedef std::function<void(state_t &)> callback_t;
+
47 void iterate (const GDDD & node, callback_t * cb);
+
49 void iterate (const GSDD & node, callback_t * cb);
+
50 
+
51 
+
52 #endif
+ + +
GHom incVar(int var, int val)
Definition: Hom_Basic.cpp:331
+
GHom varGtVar(int var, int var2)
Definition: Hom_Basic.cpp:463
+
GHom varNeqVar(int var, int var2)
Definition: Hom_Basic.cpp:446
+
GHom varNeqState(int var, int val)
Definition: Hom_Basic.cpp:182
+
GHom setVarConst(int var, int val)
Definition: Hom_Basic.cpp:258
+
GHom varGeqVar(int var, int var2)
Definition: Hom_Basic.cpp:456
+
GHom varLeqState(int var, int val)
Definition: Hom_Basic.cpp:190
+
std::function< void(state_t &)> callback_t
A visitor callback function.
Definition: Hom_Basic.hh:45
+
GHom varLtVar(int var, int var2)
Definition: Hom_Basic.cpp:477
+
GHom varGtState(int var, int val)
Definition: Hom_Basic.cpp:186
+
GHom varGeqState(int var, int val)
Definition: Hom_Basic.cpp:198
+
void iterate(const GDDD &node, callback_t *cb)
Explicit conversion : visit every path in the DDD (variable ids are removed)
Definition: Hom_Basic.cpp:522
+
GHom varLeqVar(int var, int var2)
Definition: Hom_Basic.cpp:470
+
GHom varLtState(int var, int val)
Definition: Hom_Basic.cpp:194
+
GHom varEqState(int var, int val)
Definition: Hom_Basic.cpp:178
+
GHom varEqVar(int var, int var2)
Definition: Hom_Basic.cpp:436
+
std::vector< DDD::val_t > state_t
an explicit representation of a state
Definition: Hom_Basic.hh:43
+ + +
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
+
This class is the base class representing a hierarchical Set Decision Diagram.
Definition: SDD.h:49
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/IntDataSet_8cpp.html b/libddd.html/IntDataSet_8cpp.html new file mode 100644 index 000000000..e65e25fcc --- /dev/null +++ b/libddd.html/IntDataSet_8cpp.html @@ -0,0 +1,85 @@ + + + + + + + +DDD: IntDataSet.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
IntDataSet.cpp File Reference
+
+
+
#include "ddd/IntDataSet.h"
+
+Include dependency graph for IntDataSet.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/IntDataSet_8cpp__incl.map b/libddd.html/IntDataSet_8cpp__incl.map new file mode 100644 index 000000000..9d6471caa --- /dev/null +++ b/libddd.html/IntDataSet_8cpp__incl.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/IntDataSet_8cpp__incl.md5 b/libddd.html/IntDataSet_8cpp__incl.md5 new file mode 100644 index 000000000..2cedbb7ed --- /dev/null +++ b/libddd.html/IntDataSet_8cpp__incl.md5 @@ -0,0 +1 @@ +d95a9774cad4a0a4bc82376f2b41229e \ No newline at end of file diff --git a/libddd.html/IntDataSet_8cpp__incl.png b/libddd.html/IntDataSet_8cpp__incl.png new file mode 100644 index 000000000..42c8f2ac4 Binary files /dev/null and b/libddd.html/IntDataSet_8cpp__incl.png differ diff --git a/libddd.html/IntDataSet_8h.html b/libddd.html/IntDataSet_8h.html new file mode 100644 index 000000000..c8c4ea8fc --- /dev/null +++ b/libddd.html/IntDataSet_8h.html @@ -0,0 +1,117 @@ + + + + + + + +DDD: IntDataSet.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
IntDataSet.h File Reference
+
+
+
#include <vector>
+#include <algorithm>
+#include <iterator>
+#include <cassert>
+#include <iostream>
+#include "ddd/DataSet.h"
+#include "ddd/UniqueTable.h"
+#include "ddd/util/hash_support.hh"
+
+Include dependency graph for IntDataSet.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  IntDataSet
 This class is a very basic implementation of DataSet interface based on std::std::vector<int> and a unicity table. More...
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/IntDataSet_8h__dep__incl.map b/libddd.html/IntDataSet_8h__dep__incl.map new file mode 100644 index 000000000..6f8c14c92 --- /dev/null +++ b/libddd.html/IntDataSet_8h__dep__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/libddd.html/IntDataSet_8h__dep__incl.md5 b/libddd.html/IntDataSet_8h__dep__incl.md5 new file mode 100644 index 000000000..7679a8c56 --- /dev/null +++ b/libddd.html/IntDataSet_8h__dep__incl.md5 @@ -0,0 +1 @@ +851cc4849a2cb22037981ca92043e351 \ No newline at end of file diff --git a/libddd.html/IntDataSet_8h__dep__incl.png b/libddd.html/IntDataSet_8h__dep__incl.png new file mode 100644 index 000000000..f84eae2d7 Binary files /dev/null and b/libddd.html/IntDataSet_8h__dep__incl.png differ diff --git a/libddd.html/IntDataSet_8h__incl.map b/libddd.html/IntDataSet_8h__incl.map new file mode 100644 index 000000000..aeaac9e42 --- /dev/null +++ b/libddd.html/IntDataSet_8h__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/IntDataSet_8h__incl.md5 b/libddd.html/IntDataSet_8h__incl.md5 new file mode 100644 index 000000000..51ef58e53 --- /dev/null +++ b/libddd.html/IntDataSet_8h__incl.md5 @@ -0,0 +1 @@ +415adc0035f06e9aa36a893cb22d646a \ No newline at end of file diff --git a/libddd.html/IntDataSet_8h__incl.png b/libddd.html/IntDataSet_8h__incl.png new file mode 100644 index 000000000..661c175eb Binary files /dev/null and b/libddd.html/IntDataSet_8h__incl.png differ diff --git a/libddd.html/IntDataSet_8h_source.html b/libddd.html/IntDataSet_8h_source.html new file mode 100644 index 000000000..0e18a1f88 --- /dev/null +++ b/libddd.html/IntDataSet_8h_source.html @@ -0,0 +1,248 @@ + + + + + + + +DDD: IntDataSet.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
IntDataSet.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 #ifndef __INT_DATASET_H__
+
24 #define __INT_DATASET_H__
+
25 
+
26 #include <vector>
+
27 #include <algorithm>
+
28 #include <iterator>
+
29 #include <cassert>
+
30 #include <iostream>
+
31 
+
32 #include "ddd/DataSet.h"
+
33 #include "ddd/UniqueTable.h"
+
34 #include "ddd/util/hash_support.hh"
+
35 
+
38 class IntDataSet : public DataSet {
+ +
40  typedef canonical_t::Table::iterator canonical_it;
+ +
42 
+
43  typedef std::set<const std::vector<int> *> marktable_t;
+
44  typedef marktable_t::const_iterator marktable_it;
+ +
46 
+
47  static const std::vector<int> * empty_;
+
48 
+
49  const std::vector<int>* data;
+
50 
+
51 
+
52 
+
53  // private constructors
+
54  IntDataSet (const std::vector<int>* ddata): data(ddata) {};
+
55 
+
56 public :
+
58  typedef std::vector<int>::const_iterator const_iterator;
+
59 
+
61  const_iterator begin () const { return data->begin() ; }
+
62  const_iterator end () const { return data->end() ; }
+
63 
+
64 
+
66  IntDataSet (const std::vector<int> & ddata) {
+
67  std::vector<int> tmp = std::vector<int> (ddata);
+
68  sort( tmp.begin() , tmp.end() );
+
69  data = canonical( tmp );
+
70  }
+
71 
+
73  IntDataSet (const std::vector<int>::iterator & begin, const std::vector<int>::iterator & end) {
+
74  std::vector<int> ddata(begin,end);
+
75  std::vector<int> tmp = std::vector<int> (ddata);
+
76  sort( tmp.begin() , tmp.end() );
+
77  data = canonical( tmp );
+
78  }
+
79 
+ +
82  data = empty_ ;
+
83  }
+
84 
+
86  virtual ~IntDataSet() {};
+
88  DataSet *newcopy () const {
+
89  return new IntDataSet(data);
+
90  }
+
92  DataSet *set_intersect (const DataSet & b) const {
+
93  std::vector<int> res ;
+
94  const std::vector<int>* bvec = ((const IntDataSet &) b).data;
+
95  std::set_intersection(data->begin(), data->end(),bvec->begin(), bvec->end(),std::back_insert_iterator<std::vector<int> > (res));
+
96  // trim
+
97  std::vector<int> trimres = std::vector<int> (res);
+
98  assert (trimres.size() == trimres.capacity());
+
99  return new IntDataSet(canonical(trimres));
+
100  }
+
102  DataSet *set_union (const DataSet & b) const {
+
103  std::vector<int> res ;
+
104  const std::vector<int>* bvec = ((const IntDataSet &) b).data;
+
105  std::set_union(data->begin(), data->end(),bvec->begin(), bvec->end(),std::back_insert_iterator<std::vector<int> > (res));
+
106  // trim
+
107  std::vector<int> trimres = std::vector<int> (res);
+
108  assert (trimres.size() == trimres.capacity());
+
109  return new IntDataSet(canonical(trimres));
+
110  }
+
112  DataSet *set_minus (const DataSet & b) const {
+
113  std::vector<int> res ;
+
114  const std::vector<int>* bvec = ((const IntDataSet &) b).data;
+
115  std::set_difference(data->begin(), data->end(),bvec->begin(), bvec->end(),std::back_insert_iterator<std::vector<int> > (res));
+
116  // trim
+
117  std::vector<int> trimres = std::vector<int> (res);
+
118  assert (trimres.size() == trimres.capacity());
+
119  return new IntDataSet(canonical(trimres));
+
120  }
+
121 
+
123  bool empty() const {
+
124  return data == empty_;
+
125  }
+
127  DataSet *empty_set() const {
+
128  return new IntDataSet();
+
129  }
+
131  bool set_equal(const DataSet & b) const {
+
132  return data == ((const IntDataSet &) b).data;
+
133  }
+
135  bool set_less_than (const DataSet & b) const {
+
136  return data < ((const IntDataSet &) b).data;
+
137  }
+
139  long double set_size() const {
+
140  return data->size();
+
141  }
+
143  virtual size_t set_hash() const {
+
144  return d3::util::hash<std::vector<int>* > () (data);
+
145  }
+
147  virtual void set_print (std::ostream &os) const {
+
148  os << "[" ;
+
149  if (! data->empty() ) {
+
150  std::copy( data->begin(), --data->end(),
+
151  std::ostream_iterator<int>(os, ",") );
+
152  os << *(--data->end());
+
153  }
+
154  os << "]" ;
+
155  }
+
156 
+
157  // mark phase of mark and sweep : add the reference to the set of those that SHOULD NOT be collected
+
158  void mark() const { marktable.insert(data); }
+
159 
+
160 #ifdef EVDDD
+
161  DataSet *normalizeDistance(int n) const {
+
162  return new IntDataSet(data);
+
163  }
+
164  int getMinDistance() const {
+
165  return 0;
+
166  }
+
167 #endif
+
168 
+
169 
+
170  // Garbage collector
+
171  static void garbage () ;
+
172 
+
173 };
+
174 
+
175 
+
176 
+
177 
+
178 #endif // __INT_DATASET_H__
+ + +
This class is an abstraction of a set of data.
Definition: DataSet.h:44
+
This class is a very basic implementation of DataSet interface based on std::std::vector<int> and a u...
Definition: IntDataSet.h:38
+
IntDataSet(const std::vector< int >::iterator &begin, const std::vector< int >::iterator &end)
public constructor from iterator (begin,end)
Definition: IntDataSet.h:73
+
static void garbage()
Definition: IntDataSet.cpp:35
+
std::set< const std::vector< int > * > marktable_t
Definition: IntDataSet.h:43
+
IntDataSet(const std::vector< int > *ddata)
Definition: IntDataSet.h:54
+
std::vector< int >::const_iterator const_iterator
typedef IntDataSet::const_iterator
Definition: IntDataSet.h:54
+
bool empty() const
returns true if this is the empty set
Definition: IntDataSet.h:123
+
IntDataSet(const std::vector< int > &ddata)
public constructor from non unique std::vector<int>
Definition: IntDataSet.h:66
+
DataSet * set_union(const DataSet &b) const
returns a new instance with elements = this union b
Definition: IntDataSet.h:102
+
DataSet * newcopy() const
returns a new instance copy of this
Definition: IntDataSet.h:88
+
const_iterator end() const
Definition: IntDataSet.h:62
+
DataSet * empty_set() const
returns a pointer to an instance of the empty set
Definition: IntDataSet.h:127
+
static const std::vector< int > * empty_
Definition: IntDataSet.h:47
+
long double set_size() const
Definition: IntDataSet.h:139
+
virtual size_t set_hash() const
returns a hash function, used in the SDD hash function computation
Definition: IntDataSet.h:143
+
bool set_equal(const DataSet &b) const
Compares two sets for equality.
Definition: IntDataSet.h:131
+
marktable_t::const_iterator marktable_it
Definition: IntDataSet.h:44
+
bool set_less_than(const DataSet &b) const
Compares two sets for equality.
Definition: IntDataSet.h:135
+
void mark() const
for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing
Definition: IntDataSet.h:158
+
static marktable_t marktable
Definition: IntDataSet.h:45
+
const_iterator begin() const
read-only iterator interface
Definition: IntDataSet.h:61
+
virtual ~IntDataSet()
destructor
Definition: IntDataSet.h:86
+
const std::vector< int > * data
Definition: IntDataSet.h:49
+
IntDataSet()
public deafult constructor = empty set
Definition: IntDataSet.h:81
+
DataSet * set_intersect(const DataSet &b) const
returns a new instance with elements = this inter b
Definition: IntDataSet.h:92
+
DataSet * set_minus(const DataSet &b) const
returns a new instance with elements = this setminus b
Definition: IntDataSet.h:112
+
UniqueTable< std::vector< int > > canonical_t
Definition: IntDataSet.h:39
+
virtual void set_print(std::ostream &os) const
returns a formatted string description of the set
Definition: IntDataSet.h:147
+
canonical_t::Table::iterator canonical_it
Definition: IntDataSet.h:40
+
static canonical_t canonical
Definition: IntDataSet.h:41
+
This class implements a unicity table mechanism, based on an STL hash_set.
Definition: UniqueTable.h:43
+ +
Definition: hash_support.hh:40
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLCache_8hh.html b/libddd.html/MLCache_8hh.html new file mode 100644 index 000000000..4001a0eaf --- /dev/null +++ b/libddd.html/MLCache_8hh.html @@ -0,0 +1,94 @@ + + + + + + + +DDD: MLCache.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
MLCache.hh File Reference
+
+
+
#include "ddd/util/configuration.hh"
+
+Include dependency graph for MLCache.hh:
+
+
+ + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

class  MLCache< MLHomType, NodeType, HomNodeMapType >
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLCache_8hh__dep__incl.map b/libddd.html/MLCache_8hh__dep__incl.map new file mode 100644 index 000000000..3c615797d --- /dev/null +++ b/libddd.html/MLCache_8hh__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/MLCache_8hh__dep__incl.md5 b/libddd.html/MLCache_8hh__dep__incl.md5 new file mode 100644 index 000000000..02fe87c8a --- /dev/null +++ b/libddd.html/MLCache_8hh__dep__incl.md5 @@ -0,0 +1 @@ +d8142da221a1c1968c409e62170522bc \ No newline at end of file diff --git a/libddd.html/MLCache_8hh__dep__incl.png b/libddd.html/MLCache_8hh__dep__incl.png new file mode 100644 index 000000000..0377e5f85 Binary files /dev/null and b/libddd.html/MLCache_8hh__dep__incl.png differ diff --git a/libddd.html/MLCache_8hh__incl.map b/libddd.html/MLCache_8hh__incl.map new file mode 100644 index 000000000..0076e4f7a --- /dev/null +++ b/libddd.html/MLCache_8hh__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/libddd.html/MLCache_8hh__incl.md5 b/libddd.html/MLCache_8hh__incl.md5 new file mode 100644 index 000000000..017887e19 --- /dev/null +++ b/libddd.html/MLCache_8hh__incl.md5 @@ -0,0 +1 @@ +3c80faa34b0f854cf2208af0ea322ddd \ No newline at end of file diff --git a/libddd.html/MLCache_8hh__incl.png b/libddd.html/MLCache_8hh__incl.png new file mode 100644 index 000000000..d988543a9 Binary files /dev/null and b/libddd.html/MLCache_8hh__incl.png differ diff --git a/libddd.html/MLCache_8hh_source.html b/libddd.html/MLCache_8hh_source.html new file mode 100644 index 000000000..0d83734de --- /dev/null +++ b/libddd.html/MLCache_8hh_source.html @@ -0,0 +1,143 @@ + + + + + + + +DDD: MLCache.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLCache.hh
+
+
+Go to the documentation of this file.
1 #ifndef _MLCACHE_HH_
+
2 #define _MLCACHE_HH_
+
3 
+ +
5 
+
6 
+
7 template
+
8  <
+
9  typename MLHomType
+
10  , typename NodeType
+
11  , typename HomNodeMapType
+
12  >
+
13 class MLCache
+
14 {
+
15 private:
+
16  mutable size_t peak_;
+
17 
+
18  typedef typename hash_map< std::pair<MLHomType, NodeType>, HomNodeMapType >::type
+ + +
21 
+
22 public:
+
23  MLCache () : peak_ (0) {};
+
24 
+
26  void clear (bool keepstats = false) {
+
27  peak();
+
28  cache_.clear();
+
29  }
+
30 
+
31  size_t peak () const {
+
32  size_t s = size();
+
33  if ( peak_ < s )
+
34  peak_ = s;
+
35  return peak_;
+
36  }
+
37 
+
38 
+
39  size_t size () const {
+
40  return cache_.size();
+
41  }
+
42 
+
43  std::pair<bool,HomNodeMapType>
+
44  insert(const MLHomType& hom, const NodeType& node)
+
45  {
+
46  bool found;
+
47 
+
48  { // lock on current bucket
+
49  typename hash_map::const_accessor access;
+
50  found = cache_.find ( access, std::make_pair(hom,node));
+
51  if (found)
+
52  return std::make_pair(false, access->second);
+
53  } // end of lock on the current bucket
+
54 
+
55  // wasn't in cache
+
56  HomNodeMapType result = hom.eval(node);
+
57  // lock on current bucket
+
58  typename hash_map::accessor access;
+
59  bool insertion = cache_.insert ( access, std::make_pair(hom,node));
+
60  if (insertion) {
+
61  // should happen except in MT case
+
62  access->second = result;
+
63  }
+
64  return std::make_pair(insertion,result);
+
65  }
+
66 
+
67 #ifdef HASH_STAT
+
68  std::map<std::string, size_t> get_hits() const { return cache_.get_hits(); }
+
69  std::map<std::string, size_t> get_misses() const { return cache_.get_misses(); }
+
70  std::map<std::string, size_t> get_bounces() const { return cache_.get_bounces(); }
+
71 #endif // HASH_STAT
+
72 };
+
73 
+
74 #endif /* _MLCACHE_HH_ */
+
Definition: MLCache.hh:14
+
void clear(bool keepstats=false)
clear the cache, discarding all values.
Definition: MLCache.hh:26
+
hash_map cache_
Definition: MLCache.hh:20
+
size_t peak_
Definition: MLCache.hh:16
+
size_t peak() const
Definition: MLCache.hh:31
+
MLCache()
Definition: MLCache.hh:23
+
size_t size() const
Definition: MLCache.hh:39
+
std::pair< bool, HomNodeMapType > insert(const MLHomType &hom, const NodeType &node)
Definition: MLCache.hh:44
+
hash_map< std::pair< MLHomType, NodeType >, HomNodeMapType >::type hash_map
Definition: MLCache.hh:19
+
Definition: ext_hash_map.hh:96
+
Definition: ext_hash_map.hh:38
+
Definition: ext_hash_map.hh:21
+
size_type size() const
Definition: ext_hash_map.hh:199
+
bool find(accessor &result, const Key &key)
Definition: ext_hash_map.hh:217
+
bool insert(accessor &result, const Key &key)
Definition: ext_hash_map.hh:235
+
void clear()
Definition: ext_hash_map.hh:211
+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLHom_8cpp.html b/libddd.html/MLHom_8cpp.html new file mode 100644 index 000000000..e606eb7b0 --- /dev/null +++ b/libddd.html/MLHom_8cpp.html @@ -0,0 +1,199 @@ + + + + + + + +DDD: MLHom.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Typedefs | +Functions | +Variables
+
+
MLHom.cpp File Reference
+
+
+
#include "ddd/MLHom.h"
+#include "ddd/UniqueTable.h"
+#include <typeinfo>
+#include "ddd/util/set.hh"
+#include "ddd/MLCache.hh"
+
+Include dependency graph for MLHom.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + +

+Classes

struct  d3::util::equal< _MLHom * >
 
class  nsMLHom::Identity
 
class  nsMLHom::Add
 
class  nsMLHom::GHomAdapter
 
class  nsMLHom::ConstantUp
 
class  nsMLHom::LeftConcat
 
+ + + + + + + +

+Namespaces

 d3
 
 d3::util
 
 nsMLHom
 
+ + + +

+Typedefs

typedef MLCache< MLHom, GDDD, HomNodeMapnsMLHom::MLHomCache
 
+ + + + +

+Functions

MLHom operator+ (const MLHom &h1, const MLHom &h2)
 Composition by union of two homomorphisms. More...
 
+ + + + + +

+Variables

static UniqueTable< _MLHomcanonical
 
static MLHomCache nsMLHom::mlcache
 
+

Function Documentation

+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLHom operator+ (const MLHomh1,
const MLHomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

Where g,h are homomorphisms and d is a DDD.

+ +
+
+

Variable Documentation

+ +

◆ canonical

+ +
+
+ + + + + +
+ + + + +
UniqueTable<_MLHom> canonical
+
+static
+
+ +

Referenced by MLHom::garbage().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLHom_8cpp__incl.map b/libddd.html/MLHom_8cpp__incl.map new file mode 100644 index 000000000..598e26a00 --- /dev/null +++ b/libddd.html/MLHom_8cpp__incl.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/MLHom_8cpp__incl.md5 b/libddd.html/MLHom_8cpp__incl.md5 new file mode 100644 index 000000000..0961122b1 --- /dev/null +++ b/libddd.html/MLHom_8cpp__incl.md5 @@ -0,0 +1 @@ +8622272fdecc008f81d816c7e6f94383 \ No newline at end of file diff --git a/libddd.html/MLHom_8cpp__incl.png b/libddd.html/MLHom_8cpp__incl.png new file mode 100644 index 000000000..bf3a3a119 Binary files /dev/null and b/libddd.html/MLHom_8cpp__incl.png differ diff --git a/libddd.html/MLHom_8h.html b/libddd.html/MLHom_8h.html new file mode 100644 index 000000000..c999ded5e --- /dev/null +++ b/libddd.html/MLHom_8h.html @@ -0,0 +1,192 @@ + + + + + + + +DDD: MLHom.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Typedefs | +Functions
+
+
MLHom.h File Reference
+
+
+
#include "ddd/Hom.h"
+#include "ddd/AdditiveMap.hpp"
+
+Include dependency graph for MLHom.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  MLHom
 
class  _MLHom
 
class  StrongMLHom
 
+ + + + + +

+Typedefs

typedef AdditiveMap< GHom, GDDDHomNodeMap
 
typedef AdditiveMap< GHom, MLHomHomHomMap
 
+ + + + +

+Functions

MLHom operator+ (const MLHom &, const MLHom &)
 Composition by union of two homomorphisms. More...
 
+

Typedef Documentation

+ +

◆ HomHomMap

+ +
+
+ + + + +
typedef AdditiveMap<GHom,MLHom> HomHomMap
+
+ +
+
+ +

◆ HomNodeMap

+ +
+
+ + + + +
typedef AdditiveMap<GHom,GDDD> HomNodeMap
+
+ +
+
+

Function Documentation

+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLHom operator+ (const MLHomh1,
const MLHomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ;.

+

This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+

Where g,h are homomorphisms and d is a DDD.

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLHom_8h__dep__incl.map b/libddd.html/MLHom_8h__dep__incl.map new file mode 100644 index 000000000..909d9e085 --- /dev/null +++ b/libddd.html/MLHom_8h__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/MLHom_8h__dep__incl.md5 b/libddd.html/MLHom_8h__dep__incl.md5 new file mode 100644 index 000000000..7f1b6162a --- /dev/null +++ b/libddd.html/MLHom_8h__dep__incl.md5 @@ -0,0 +1 @@ +5fb4d3d7a7a7d0a9cad295293908ca83 \ No newline at end of file diff --git a/libddd.html/MLHom_8h__dep__incl.png b/libddd.html/MLHom_8h__dep__incl.png new file mode 100644 index 000000000..24b406e69 Binary files /dev/null and b/libddd.html/MLHom_8h__dep__incl.png differ diff --git a/libddd.html/MLHom_8h__incl.map b/libddd.html/MLHom_8h__incl.map new file mode 100644 index 000000000..53aad457b --- /dev/null +++ b/libddd.html/MLHom_8h__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/MLHom_8h__incl.md5 b/libddd.html/MLHom_8h__incl.md5 new file mode 100644 index 000000000..26199175f --- /dev/null +++ b/libddd.html/MLHom_8h__incl.md5 @@ -0,0 +1 @@ +8050041c619f0dee7b3409a5666baf3b \ No newline at end of file diff --git a/libddd.html/MLHom_8h__incl.png b/libddd.html/MLHom_8h__incl.png new file mode 100644 index 000000000..0381bae88 Binary files /dev/null and b/libddd.html/MLHom_8h__incl.png differ diff --git a/libddd.html/MLHom_8h_source.html b/libddd.html/MLHom_8h_source.html new file mode 100644 index 000000000..346b6e968 --- /dev/null +++ b/libddd.html/MLHom_8h_source.html @@ -0,0 +1,212 @@ + + + + + + + +DDD: MLHom.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLHom.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 #ifndef __MLHOM__H__
+
24 #define __MLHOM__H__
+
25 
+
26 #include "ddd/Hom.h"
+
27 #include "ddd/AdditiveMap.hpp"
+
28 
+
29 class MLHom;
+
30 
+ +
32 
+ +
34 
+
35 
+
36 class _MLHom;
+
37 class StrongMLHom;
+
38 
+
39 class MLHom {
+
40 
+
43  friend MLHom operator+(const MLHom &,const MLHom &);
+
46  const _MLHom* concret;
+
47 
+
48 #ifdef HASH_STAT
+
49  // open access to instrumented hashtable
+
50  template <class Value, class Key, class HashFcn,
+
51  class ExtractKey, class SetKey, class EqualKey, class Alloc>
+
52  friend class google::sparse_hashtable;
+
53 #endif
+
54 
+
55 public :
+
56 
+
59  static const MLHom id;
+
60 
+ +
64 
+
65  MLHom(const GHom &h);
+
66  MLHom (const GHom & up, const MLHom & down);
+
67  MLHom (const _MLHom &);
+ +
69  MLHom (const _MLHom *);
+
70 
+
71 
+
78  MLHom(int var, int val, const MLHom &h=MLHom::id);
+
79 
+
80  virtual ~MLHom();
+
81 
+
82 
+
83  bool operator<(const MLHom &h) const {return concret<h.concret;};
+
84  bool operator==(const MLHom &h) const {return concret==h.concret;};
+
89  size_t hash() const { return ddd::knuth32_hash(reinterpret_cast<size_t>(concret)); };
+
90 
+
94  HomNodeMap eval(const GDDD &d) const ;
+
96  HomNodeMap operator() (const GDDD &) const;
+
97 
+
98 
+
102  static void garbage();
+
103 
+
104 };
+
105 
+
111 MLHom operator+(const MLHom &,const MLHom &);
+
112 
+
113 class _MLHom {
+
116  mutable int refCounter;
+
121  mutable bool marking;
+
122 
+
124  friend class MLHom;
+
125 
+
127  virtual void mark() const{};
+
128 
+
129 
+
130 public:
+
131  _MLHom (int ref=0) : refCounter(ref),marking(false) {}
+
133  virtual bool shouldCache () const { return true ; }
+
134 
+
136  virtual ~_MLHom(){};
+
137  virtual HomNodeMap eval(const GDDD &) const = 0;
+
138 
+
140  virtual size_t hash() const = 0;
+
141  virtual bool operator==(const _MLHom &h) const=0;
+
142  // for use by unique table : return new MyConcreteClassName(*this);
+
143  virtual _MLHom * clone () const =0 ;
+
144 
+
145 };
+
146 
+
147 class StrongMLHom : public _MLHom {
+
148 public :
+
149 
+
150  bool operator==(const _MLHom &h) const;
+
151 
+
152  virtual bool operator==(const StrongMLHom &) const=0;
+
153 
+
154  HomNodeMap eval(const GDDD &) const ;
+
155 
+
157  virtual HomHomMap phi (int var,int val) const=0;
+
158  virtual HomNodeMap phiOne () const=0;
+
159 
+
160 };
+
161 
+
162 #endif
+ + +
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
+
Definition: MLHom.h:39
+
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
+
MLHom(_MLHom *)
+
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
+
Definition: MLHom.h:147
+
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.
+
Definition: MLHom.h:113
+
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
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLSHom_8cpp.html b/libddd.html/MLSHom_8cpp.html new file mode 100644 index 000000000..c72c3ecf7 --- /dev/null +++ b/libddd.html/MLSHom_8cpp.html @@ -0,0 +1,193 @@ + + + + + + + +DDD: MLSHom.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions | +Variables
+
+
MLSHom.cpp File Reference
+
+
+
#include "ddd/MLSHom.h"
+#include "ddd/UniqueTable.h"
+#include <typeinfo>
+
+Include dependency graph for MLSHom.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + +

+Classes

struct  d3::util::equal< _MLShom * >
 
class  nsMLShom::Identity
 
class  nsMLShom::Add
 
class  nsMLShom::GShomAdapter
 
class  nsMLShom::ConstantUp
 
class  nsMLShom::LeftConcat
 
+ + + + + + + +

+Namespaces

 d3
 
 d3::util
 
 nsMLShom
 
+ + + + +

+Functions

MLShom operator+ (const MLShom &h1, const MLShom &h2)
 Composition by union of two homomorphisms. More...
 
+ + + +

+Variables

static UniqueTable< _MLShomcanonical
 
+

Function Documentation

+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLShom operator+ (const MLShomh1,
const MLShomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a SDDD.

+

This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+

Variable Documentation

+ +

◆ canonical

+ +
+
+ + + + + +
+ + + + +
UniqueTable<_MLShom> canonical
+
+static
+
+ +

Referenced by MLShom::garbage().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLSHom_8cpp__incl.map b/libddd.html/MLSHom_8cpp__incl.map new file mode 100644 index 000000000..547a9eb83 --- /dev/null +++ b/libddd.html/MLSHom_8cpp__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/MLSHom_8cpp__incl.md5 b/libddd.html/MLSHom_8cpp__incl.md5 new file mode 100644 index 000000000..4e0f587b2 --- /dev/null +++ b/libddd.html/MLSHom_8cpp__incl.md5 @@ -0,0 +1 @@ +1a5c52d8e939ec6ce4c2bd818f69593c \ No newline at end of file diff --git a/libddd.html/MLSHom_8cpp__incl.png b/libddd.html/MLSHom_8cpp__incl.png new file mode 100644 index 000000000..cbd678ea0 Binary files /dev/null and b/libddd.html/MLSHom_8cpp__incl.png differ diff --git a/libddd.html/MLSHom_8h.html b/libddd.html/MLSHom_8h.html new file mode 100644 index 000000000..6b18b6b1b --- /dev/null +++ b/libddd.html/MLSHom_8h.html @@ -0,0 +1,193 @@ + + + + + + + +DDD: MLSHom.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Typedefs | +Functions
+
+
MLSHom.h File Reference
+
+
+
#include "ddd/AdditiveMap.hpp"
+#include "ddd/SHom.h"
+
+Include dependency graph for MLSHom.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  MLShom
 
class  _MLShom
 
class  StrongMLShom
 
+ + + + + +

+Typedefs

typedef AdditiveMap< GShom, GSDDSHomNodeMap
 
typedef AdditiveMap< GShom, MLShomSHomHomMap
 
+ + + + +

+Functions

MLShom operator+ (const MLShom &, const MLShom &)
 Composition by union of two homomorphisms. More...
 
+

Typedef Documentation

+ +

◆ SHomHomMap

+ +
+
+ + + + +
typedef AdditiveMap<GShom, MLShom> SHomHomMap
+
+ +
+
+ +

◆ SHomNodeMap

+ +
+
+ + + + +
typedef AdditiveMap<GShom, GSDD> SHomNodeMap
+
+ +
+
+

Function Documentation

+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLShom operator+ (const MLShomh1,
const MLShomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a SDDD.

+

This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MLSHom_8h__dep__incl.map b/libddd.html/MLSHom_8h__dep__incl.map new file mode 100644 index 000000000..d49227fbf --- /dev/null +++ b/libddd.html/MLSHom_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/MLSHom_8h__dep__incl.md5 b/libddd.html/MLSHom_8h__dep__incl.md5 new file mode 100644 index 000000000..ecf475e12 --- /dev/null +++ b/libddd.html/MLSHom_8h__dep__incl.md5 @@ -0,0 +1 @@ +ded7382d034f74c07a73e60b5fb19a4c \ No newline at end of file diff --git a/libddd.html/MLSHom_8h__dep__incl.png b/libddd.html/MLSHom_8h__dep__incl.png new file mode 100644 index 000000000..eb7b1e3e4 Binary files /dev/null and b/libddd.html/MLSHom_8h__dep__incl.png differ diff --git a/libddd.html/MLSHom_8h__incl.map b/libddd.html/MLSHom_8h__incl.map new file mode 100644 index 000000000..ddde66446 --- /dev/null +++ b/libddd.html/MLSHom_8h__incl.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/MLSHom_8h__incl.md5 b/libddd.html/MLSHom_8h__incl.md5 new file mode 100644 index 000000000..b6619ff9f --- /dev/null +++ b/libddd.html/MLSHom_8h__incl.md5 @@ -0,0 +1 @@ +99edbba9fc449b1666ce11c5853ab901 \ No newline at end of file diff --git a/libddd.html/MLSHom_8h__incl.png b/libddd.html/MLSHom_8h__incl.png new file mode 100644 index 000000000..e32295d48 Binary files /dev/null and b/libddd.html/MLSHom_8h__incl.png differ diff --git a/libddd.html/MLSHom_8h_source.html b/libddd.html/MLSHom_8h_source.html new file mode 100644 index 000000000..06f627c20 --- /dev/null +++ b/libddd.html/MLSHom_8h_source.html @@ -0,0 +1,181 @@ + + + + + + + +DDD: MLSHom.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLSHom.h
+
+
+Go to the documentation of this file.
1 #ifndef __MLSHOM__H__
+
2 #define __MLSHOM__H__
+
3 
+
4 #include "ddd/AdditiveMap.hpp"
+
5 #include "ddd/SHom.h"
+
6 
+
7 class MLShom;
+
8 
+ + +
11 
+
12 class _MLShom;
+
13 
+
14 class MLShom {
+
15 
+
18  friend MLShom operator+(const MLShom &,const MLShom &);
+
21  const _MLShom* concret;
+
22 
+
23  public :
+
24 
+
27  static const MLShom id;
+
28 
+ +
32 
+
33  MLShom(const GShom &h);
+
34  MLShom (const GShom & up, const MLShom & down);
+
35  MLShom (const _MLShom &);
+ +
37  MLShom (const _MLShom *);
+
38 
+
39 
+
46  MLShom(int var, const DataSet & val, const MLShom &h=MLShom::id);
+
47 
+
48  virtual ~MLShom();
+
49 
+
50 
+
51  bool operator<(const MLShom &h) const {return concret<h.concret;};
+
52  bool operator==(const MLShom &h) const {return concret==h.concret;};
+
57  size_t hash() const { return ddd::knuth32_hash(reinterpret_cast<const size_t>(concret)); };
+
58 
+
62  SHomNodeMap eval(const GSDD &) const ;
+
64  SHomNodeMap operator() (const GSDD &) const;
+
65 
+
66 
+
70  static void garbage();
+
71 
+
72 };
+
73 
+
79 MLShom operator+(const MLShom &,const MLShom &);
+
80 
+
81 class _MLShom {
+
84  mutable int refCounter;
+
89  mutable bool marking;
+
90 
+
92  friend class MLShom;
+
93 
+
95  virtual void mark() const{};
+
96 
+
97 
+
98 public:
+
99  _MLShom (int ref=0) : refCounter(ref),marking(false) {}
+
101  virtual bool shouldCache () const { return true ; }
+
102 
+
104  virtual ~_MLShom(){};
+
105  virtual SHomNodeMap eval(const GSDD &) const = 0;
+
106 
+
108  virtual size_t hash() const = 0;
+
109  virtual bool operator==(const _MLShom &h) const=0;
+
110  // for use by unique table : return new MyConcreteClassName(*this);
+
111  virtual _MLShom * clone () const =0 ;
+
112 
+
113 };
+
114 
+
115 class StrongMLShom : public _MLShom {
+
116  public :
+
117 
+
118  bool operator==(const _MLShom &h) const;
+
119 
+
120  virtual bool operator==(const StrongMLShom &) const=0;
+
121 
+
122  SHomNodeMap eval(const GSDD &) const ;
+
123 
+
125  virtual SHomHomMap phi (int var,const DataSet & val) const=0;
+
126  virtual SHomNodeMap phiOne () const=0;
+
127 
+
128 };
+
129 
+
130 #endif
+ +
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
+
Definition: MLSHom.h:14
+
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
+
MLShom(_MLShom *)
+
bool operator<(const MLShom &h) const
Definition: MLSHom.h:51
+
virtual ~MLShom()
Definition: MLSHom.cpp:185
+
Definition: MLSHom.h:115
+
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
+
Definition: MLSHom.h:81
+
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
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MemoryManager_8h.html b/libddd.html/MemoryManager_8h.html new file mode 100644 index 000000000..9f83d5473 --- /dev/null +++ b/libddd.html/MemoryManager_8h.html @@ -0,0 +1,131 @@ + + + + + + + +DDD: MemoryManager.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
MemoryManager.h File Reference
+
+
+
#include "ddd/DDD.h"
+#include "ddd/DED.h"
+#include "ddd/Hom.h"
+#include "ddd/SDD.h"
+#include "ddd/SDED.h"
+#include "ddd/SHom.h"
+#include "ddd/MLHom.h"
+#include "ddd/IntDataSet.h"
+#include "ddd/process.hpp"
+
+Include dependency graph for MemoryManager.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

class  GCHook
 
class  MemoryManager
 This class defines a few utility functions common to DDD. More...
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/MemoryManager_8h__dep__incl.map b/libddd.html/MemoryManager_8h__dep__incl.map new file mode 100644 index 000000000..77e552c17 --- /dev/null +++ b/libddd.html/MemoryManager_8h__dep__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/MemoryManager_8h__dep__incl.md5 b/libddd.html/MemoryManager_8h__dep__incl.md5 new file mode 100644 index 000000000..8398e2c0e --- /dev/null +++ b/libddd.html/MemoryManager_8h__dep__incl.md5 @@ -0,0 +1 @@ +8efeea7f988a0a7e8b0826c09de97b9f \ No newline at end of file diff --git a/libddd.html/MemoryManager_8h__dep__incl.png b/libddd.html/MemoryManager_8h__dep__incl.png new file mode 100644 index 000000000..fba95c3aa Binary files /dev/null and b/libddd.html/MemoryManager_8h__dep__incl.png differ diff --git a/libddd.html/MemoryManager_8h__incl.map b/libddd.html/MemoryManager_8h__incl.map new file mode 100644 index 000000000..3846368d4 --- /dev/null +++ b/libddd.html/MemoryManager_8h__incl.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/MemoryManager_8h__incl.md5 b/libddd.html/MemoryManager_8h__incl.md5 new file mode 100644 index 000000000..14ae00846 --- /dev/null +++ b/libddd.html/MemoryManager_8h__incl.md5 @@ -0,0 +1 @@ +d656a72260b6316ca8b4dda3caddb284 \ No newline at end of file diff --git a/libddd.html/MemoryManager_8h__incl.png b/libddd.html/MemoryManager_8h__incl.png new file mode 100644 index 000000000..0136e5006 Binary files /dev/null and b/libddd.html/MemoryManager_8h__incl.png differ diff --git a/libddd.html/MemoryManager_8h_source.html b/libddd.html/MemoryManager_8h_source.html new file mode 100644 index 000000000..97b87934d --- /dev/null +++ b/libddd.html/MemoryManager_8h_source.html @@ -0,0 +1,246 @@ + + + + + + + +DDD: MemoryManager.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MemoryManager.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef MEMORYMANAGER_H
+
25 #define MEMORYMANAGER_H
+
26 #include "ddd/DDD.h"
+
27 #include "ddd/DED.h"
+
28 #include "ddd/Hom.h"
+
29 #include "ddd/SDD.h"
+
30 #include "ddd/SDED.h"
+
31 #include "ddd/SHom.h"
+
32 #include "ddd/MLHom.h"
+
33 #include "ddd/IntDataSet.h"
+
34 
+
35 
+
36 #include "ddd/process.hpp"
+
37 
+
38 
+
39 class GCHook {
+
40  public:
+
41  virtual ~GCHook() {}
+
42  virtual void preGarbageCollect() =0;
+
43  virtual void postGarbageCollect() = 0;
+
44 
+
45 };
+
46 
+ +
53  typedef std::vector<GCHook*> hooks_t;
+
54  typedef hooks_t::iterator hooks_it;
+
55  // actually defined in DDD.cpp, bottom of file.
+
56  static hooks_t hooks_;
+
57 public:
+
58  /* Mesure*/
+
60  static unsigned int nbDDD(){return GDDD::statistics();};
+
62  static unsigned int nbDED(){return DED::statistics();};
+
64  static unsigned int nbHom(){return GHom::statistics();};
+
66  static unsigned int nbSDD(){return GSDD::statistics();};
+
68  static unsigned int nbSDED(){return SDED::statistics();};
+
70  static unsigned int nbShom(){return GShom::statistics();};
+
71  /* Garbage Collector */
+
74  static void mark(const GDDD &g){g.mark();};
+
77  static void mark(const GHom &h){h.mark();};
+
78 
+
80  static bool should_garbage() {
+
81  // trigger at rougly 5 million objects =1 Gig RAM
+
82  //return nbDED() + nbSDED() + nbShom() + nbSDD() > 3000000;
+
83  size_t mem = process::getResidentMemory();
+
84  if (mem == 0)
+
85  return true;
+
86  // add ten percent growth
+
87  if (mem > last_mem + last_mem / 10 ) {
+
88 /* std::cerr << "GC triggered at mem=" << mem << std::endl; */
+
89  last_mem = mem;
+
90  return true;
+
91  } else {
+
92 /* std::cerr << "GC not triggered mem=" << mem << std::endl; */
+
93  return false;
+
94  }
+
95  }
+
96 
+
100  static void garbage(){
+
101  for (hooks_it it = hooks_.begin(); it != hooks_.end() ; ++it) {
+
102  (*it)->preGarbageCollect();
+
103  }
+
104 
+
105  MLHom::garbage();
+
106  // FIXME : if you dont use SDD suppress the following
+
107  SDED::garbage();
+
108  GShom::garbage();
+
109  GSDD::garbage();
+
110  // clear the IntDataSet
+ +
112  // END FIXME
+
113  DED::garbage();
+
114  GHom::garbage();
+
115  GDDD::garbage();
+
116 
+
117  for (hooks_it it = hooks_.begin(); it != hooks_.end() ; ++it) {
+
118  (*it)->postGarbageCollect();
+
119  }
+
120  };
+
121 
+
123  static void pstats(bool reinit=true){
+
124  //cout << " Memory Usage " << MemUsage() << " %" << endl;
+
125 
+
126  // FIXME : if you dont use SDD suppress the following
+
127  SDED::pstats(reinit);
+
128  GShom::pstats(reinit);
+
129  GSDD::pstats(reinit);
+
130  // END FIXME
+
131 
+
132  DED::pstats(reinit);
+
133  GHom::pstats(reinit);
+
134  GDDD::pstats(reinit);
+
135  }
+
136 
+
137  static void setGCThreshold (size_t nbKbyte) {
+
138  last_mem = nbKbyte;
+
139  }
+
140 
+
141  static size_t getPeakMemory () {
+
142  should_garbage();
+
143  return last_mem;
+
144  }
+
145 
+
146  static void addHook (GCHook * hook) {
+
147  hooks_.push_back(hook);
+
148  }
+
149 
+
150  private :
+
151  // actually defined in DDD.cpp, bottom of file.
+
152  static size_t last_mem;
+
153 
+
154 
+
155 };
+
156 #endif
+ + + + + + + + +
Definition: MemoryManager.h:39
+
virtual ~GCHook()
Definition: MemoryManager.h:41
+
virtual void postGarbageCollect()=0
+
virtual void preGarbageCollect()=0
+
This class is the base class representing a Data Decision Diagram.
Definition: DDD.h:49
+
void mark() const
For garbage collection internals.
Definition: DDD.cpp:308
+
static unsigned int statistics()
Returns unicity table current size. Gives the number of different nodes created and not yet destroyed...
Definition: DDD.cpp:303
+
static void garbage()
For garbage collection, do not call this directly, use MemoryManager::garbage() instead.
Definition: DDD.cpp:498
+
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: DDD.cpp:318
+
This class is the base class representing a homomorphism over DDD.
Definition: Hom.h:55
+
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: Hom.cpp:2452
+
static void garbage()
For garbage collection.
Definition: Hom.cpp:2023
+
static unsigned int statistics()
Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed...
Definition: Hom.cpp:2011
+
void mark() const
For garbage collection internals. Marks a GHom as in use in garbage collection phase.
Definition: Hom.cpp:2016
+
static unsigned int statistics()
Returns unicity table current size. Gives the number of different nodes created and not yet destroyed...
Definition: SDD.cpp:255
+
static void pstats(bool reinit=true)
Prints some statistics to std::cout.
Definition: SDD.cpp:281
+
static void garbage()
For garbage collection, do not call this directly, use MemoryManager::garbage() instead.
Definition: SDD.cpp:558
+
static unsigned int statistics()
Return the current size of the unicity table for GShom.
Definition: SHom.cpp:2696
+
static void garbage()
Collects and destroys unused homomorphisms.
Definition: SHom.cpp:2716
+
static void pstats(bool reinit=true)
Print some usage statistics on Shom.
Definition: SHom.cpp:3336
+
static void garbage()
Definition: IntDataSet.cpp:35
+
static void garbage()
Collects and destroys unused homomorphisms.
Definition: MLHom.cpp:286
+
This class defines a few utility functions common to DDD.
Definition: MemoryManager.h:52
+
static unsigned int nbHom()
Returns the size of the unicity table for DDD Homomorphisms.
Definition: MemoryManager.h:64
+
static void addHook(GCHook *hook)
Definition: MemoryManager.h:146
+
static unsigned int nbSDED()
Returns the size of the cache unicity table for SDD.
Definition: MemoryManager.h:68
+
static void setGCThreshold(size_t nbKbyte)
Definition: MemoryManager.h:137
+
static void garbage()
Garbage collection function.
Definition: MemoryManager.h:100
+
static hooks_t hooks_
Definition: MemoryManager.h:56
+
static size_t last_mem
Definition: MemoryManager.h:152
+
static bool should_garbage()
tester for memory management routine triggering in a top level fixpoint
Definition: MemoryManager.h:80
+
static unsigned int nbSDD()
Returns the size of the unicity table for SDD.
Definition: MemoryManager.h:66
+
static unsigned int nbShom()
Returns the size of the unicity table for SDD Homomorphisms.
Definition: MemoryManager.h:70
+
static void mark(const GHom &h)
Convenience function to mark a Hom as non collectible.
Definition: MemoryManager.h:77
+
static size_t getPeakMemory()
Definition: MemoryManager.h:141
+
static void pstats(bool reinit=true)
Prints some statistics about use of unicity tables, also reinitializes peak sizes.
Definition: MemoryManager.h:123
+
static void mark(const GDDD &g)
Convenience function to mark a node as non collectible.
Definition: MemoryManager.h:74
+
static unsigned int nbDED()
Returns the size of the cache unicity table for DDD.
Definition: MemoryManager.h:62
+
std::vector< GCHook * > hooks_t
Definition: MemoryManager.h:53
+
hooks_t::iterator hooks_it
Definition: MemoryManager.h:54
+
static unsigned int nbDDD()
Returns the size of the unicity table for DDD.
Definition: MemoryManager.h:60
+
void garbage()
Definition: DED.cpp:620
+
unsigned int statistics()
Definition: DED.cpp:573
+
void pstats(bool reinit=true)
Definition: DED.cpp:577
+
void pstats(bool reinit=true)
Definition: SDED.cpp:673
+
unsigned int statistics()
Definition: SDED.cpp:668
+
void garbage()
Definition: SDED.cpp:694
+
size_t getResidentMemory()
in Bytes
Definition: process.cpp:120
+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDD_8cpp.html b/libddd.html/SDD_8cpp.html new file mode 100644 index 000000000..2ac6161ec --- /dev/null +++ b/libddd.html/SDD_8cpp.html @@ -0,0 +1,276 @@ + + + + + + + +DDD: SDD.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions | +Variables
+
+
SDD.cpp File Reference
+
+
+
#include <string>
+#include <iostream>
+#include <vector>
+#include "ddd/util/set.hh"
+#include <map>
+#include <sstream>
+#include <cassert>
+#include <typeinfo>
+#include "ddd/SDED.h"
+#include "ddd/SDD.h"
+#include "ddd/UniqueTable.h"
+#include "ddd/IntDataSet.h"
+#include "ddd/DDD.h"
+#include "ddd/SHom.h"
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/ext_hash_map.hh"
+
+Include dependency graph for SDD.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +

+Classes

class  _GSDD
 
class  SddSize
 
class  MySDDNbStates
 
+ + + + + + +

+Namespaces

 sns
 
 SDDutil
 Namespace declared to hide these functions.
 
+ + + + + + + + + + + + + + +

+Functions

static bool valsorter (const GSDD::Valuation::value_type &a, const GSDD::Valuation::value_type &b)
 
UniqueTable< _GSDD > * SDDutil::getTable ()
 accessor to UniqueTable instance declared in cpp file, (hem, please don't touch it). More...
 
void SDDutil::foreachTable (void(*foo)(const GSDD &g))
 Iterator over the entries of the table, applies foo to each entry in the table. More...
 
const _GShomsns::getIdentity ()
 
std::ostream & operator<< (std::ostream &os, const GSDD &g)
 Textual output of SDD into a stream in (relatively) human readable format. More...
 
+ + + + + + + +

+Variables

static size_t Max_SDD =0
 
static UniqueTable< _GSDDcanonical
 
UniqueTable< _GShomsns::canonical
 
+

Function Documentation

+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GSDDg 
)
+
+ +

Textual output of SDD into a stream in (relatively) human readable format.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ valsorter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool valsorter (const GSDD::Valuation::value_type & a,
const GSDD::Valuation::value_type & b 
)
+
+static
+
+ +

Referenced by _GSDD::_GSDD().

+ +
+
+

Variable Documentation

+ +

◆ canonical

+ +
+
+ + + + + +
+ + + + +
UniqueTable<_GSDD> canonical
+
+static
+
+
+ +

◆ Max_SDD

+ +
+
+ + + + + +
+ + + + +
size_t Max_SDD =0
+
+static
+
+ +

Referenced by GSDD::garbage(), and GSDD::peak().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDD_8cpp__incl.map b/libddd.html/SDD_8cpp__incl.map new file mode 100644 index 000000000..751bd4efd --- /dev/null +++ b/libddd.html/SDD_8cpp__incl.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SDD_8cpp__incl.md5 b/libddd.html/SDD_8cpp__incl.md5 new file mode 100644 index 000000000..40a378024 --- /dev/null +++ b/libddd.html/SDD_8cpp__incl.md5 @@ -0,0 +1 @@ +9906096fa24b952dba76cb1936523e93 \ No newline at end of file diff --git a/libddd.html/SDD_8cpp__incl.png b/libddd.html/SDD_8cpp__incl.png new file mode 100644 index 000000000..e4d35de04 Binary files /dev/null and b/libddd.html/SDD_8cpp__incl.png differ diff --git a/libddd.html/SDD_8h.html b/libddd.html/SDD_8h.html new file mode 100644 index 000000000..f4d347296 --- /dev/null +++ b/libddd.html/SDD_8h.html @@ -0,0 +1,322 @@ + + + + + + + +DDD: SDD.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Functions
+
+
SDD.h File Reference
+
+
+
#include <string>
+#include "ddd/UniqueTable.h"
+#include "ddd/DataSet.h"
+
+Include dependency graph for SDD.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + +

+Classes

class  GSDD
 This class is the base class representing a hierarchical Set Decision Diagram. More...
 
class  SDD
 This class is the public interface for manipulating Data Decision Diagrams. More...
 
struct  std::less< GSDD >
 Compares two SDD in hash tables. More...
 
+ + + + + + +

+Namespaces

 SDDutil
 Namespace declared to hide these functions.
 
 std
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

std::ostream & operator<< (std::ostream &, const GSDD &)
 Textual output of SDD into a stream in (relatively) human readable format. More...
 
GSDD operator^ (const GSDD &, const GSDD &)
 Operator for concatenation of two SDD. More...
 
GSDD operator+ (const GSDD &, const GSDD &)
 Operator for union of DDD. More...
 
GSDD operator* (const GSDD &, const GSDD &)
 Operator for intersection of DDD. More...
 
GSDD operator- (const GSDD &, const GSDD &)
 Operator for set difference of DDD. More...
 
UniqueTable< _GSDD > * SDDutil::getTable ()
 accessor to UniqueTable instance declared in cpp file, (hem, please don't touch it). More...
 
void SDDutil::foreachTable (void(*foo)(const GSDD &g))
 Iterator over the entries of the table, applies foo to each entry in the table. More...
 
+

Function Documentation

+ +

◆ operator*()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator* (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for intersection of DDD.

+

Semantics : d1 * d2 designates the intersection of the two sets

+ +

References _SDED_Mult::create().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator+ (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for union of DDD.

+

Semantics : d1 + d2 produces the union d1 and d2

+ +

References _SDED_Add::create().

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator- (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for set difference of DDD.

+

Semantics : d1 - d2 contains elements in d1 and not in d2

+ +

References _SDED_Minus::create().

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GSDDg 
)
+
+ +

Textual output of SDD into a stream in (relatively) human readable format.

+

A textual output.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ operator^()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator^ (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for concatenation of two SDD.

+

Semantics : d1 ^ d2 replaces "one" terminals of d1 by d2

+ +

References _SDED_Concat::create().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDD_8h__dep__incl.map b/libddd.html/SDD_8h__dep__incl.map new file mode 100644 index 000000000..ee6cf3758 --- /dev/null +++ b/libddd.html/SDD_8h__dep__incl.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SDD_8h__dep__incl.md5 b/libddd.html/SDD_8h__dep__incl.md5 new file mode 100644 index 000000000..55c762806 --- /dev/null +++ b/libddd.html/SDD_8h__dep__incl.md5 @@ -0,0 +1 @@ +41d4a77d72741354e52c5cb52a290485 \ No newline at end of file diff --git a/libddd.html/SDD_8h__dep__incl.png b/libddd.html/SDD_8h__dep__incl.png new file mode 100644 index 000000000..dc0bf69c4 Binary files /dev/null and b/libddd.html/SDD_8h__dep__incl.png differ diff --git a/libddd.html/SDD_8h__incl.map b/libddd.html/SDD_8h__incl.map new file mode 100644 index 000000000..445fca4e3 --- /dev/null +++ b/libddd.html/SDD_8h__incl.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SDD_8h__incl.md5 b/libddd.html/SDD_8h__incl.md5 new file mode 100644 index 000000000..d42d45486 --- /dev/null +++ b/libddd.html/SDD_8h__incl.md5 @@ -0,0 +1 @@ +ab599d620ee29f225048d8f3219b9041 \ No newline at end of file diff --git a/libddd.html/SDD_8h__incl.png b/libddd.html/SDD_8h__incl.png new file mode 100644 index 000000000..5e791f8d8 Binary files /dev/null and b/libddd.html/SDD_8h__incl.png differ diff --git a/libddd.html/SDD_8h_source.html b/libddd.html/SDD_8h_source.html new file mode 100644 index 000000000..8f261eecf --- /dev/null +++ b/libddd.html/SDD_8h_source.html @@ -0,0 +1,300 @@ + + + + + + + +DDD: SDD.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
SDD.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef SDD_H
+
25 #define SDD_H
+
26 
+
27 
+
28 #include <string>
+
29 
+
30 #include "ddd/UniqueTable.h"
+
31 #include "ddd/DataSet.h"
+
32 
+
33 
+
34 // #define HEIGHTSDD
+
35 
+
37 class _GSDD;
+
38 
+
39 /******************************************************************************/
+
49 class GSDD :public DataSet {
+
50 private:
+
53  friend std::ostream& operator<<(std::ostream &os,const GSDD &g);
+
55  friend class SDD;
+
57  friend class _GSDD;
+
60  const _GSDD *concret;
+
62  void print(std::ostream& os,std::string s) const;
+
63 public:
+
65 
+
66  typedef std::vector<std::pair<DataSet *,GSDD> > Valuation;
+
70  typedef Valuation::const_iterator const_iterator;
+
72  int variable() const;
+
79  const_iterator begin() const;
+
86  const_iterator end() const;
+
87 
+
89 
+
90 
+
91 
+
92 
+
93  /* Constructeurs */
+
95 
+
96  GSDD(int variable,Valuation value);
+ +
109  GSDD(int var,const DataSet & val,const GSDD &d=one ); //var-val->d
+
117  GSDD(int var,const GSDD & val,const GSDD &d=one ); //var-val->d
+
118  GSDD(int var,const class SDD & val,const GSDD &d=one ); //var-val->d
+
121  GSDD(const _GSDD &_g);
+
124  GSDD(_GSDD *_g);
+
126  GSDD(const _GSDD *_g);
+
128 
+
129  /* Constants */
+
131 
+
132  static const GSDD one;
+
136  static const GSDD null;
+
140  static const GSDD top;
+
142 
+
143 
+
144  /* Compare */
+
146 
+
147  bool operator==(const GSDD& g) const{return concret==g.concret;};
+
154  bool operator!=(const GSDD& g) const{return concret!=g.concret;};
+
159  bool operator<(const GSDD& g) const ;
+
160 
+
162 
+
163  /* Visualisation */
+
164  /* Accessors */
+
168  unsigned int refCounter() const;
+
170  unsigned long int size() const;
+
171  // Returns the size in number of nodes of a SDD + DDD mixed structure.
+
172  // \return a pair <number of SDD nodes,number of DDD nodes>
+
173  std::pair<unsigned long int,unsigned long int> node_size() const;
+
175  size_t nbsons () const;
+
177  long double nbStates() const;
+
178 #ifdef HEIGHTSDD
+
181  short int getHeight () const;
+
182 #endif
+
183 
+
184 #ifdef EVDDD
+
186  int getMinDistance () const;
+
187  GSDD normalizeDistance (int n) const;
+
188 #endif
+
189 
+
192  // long double GSDD::noSharedSize() const;
+
193 
+
194 
+
195  /* Memory Manager */
+
197 
+
198  static unsigned int statistics();
+
202  void mark()const;
+
204  size_t hash () const {
+
205  return ddd::knuth32_hash(reinterpret_cast<size_t>(concret));
+
206  }
+
209  static void garbage();
+
213  static void pstats(bool reinit=true);
+
215  static size_t peak();
+
216 
+
218 
+
226 
+
227  // DataSet interface
+
229  DataSet *newcopy () const { return new GSDD(*this); }
+
231  DataSet *set_intersect (const DataSet & b) const ;
+
233  DataSet *set_union (const DataSet & b) const;
+
235  DataSet *set_minus (const DataSet & b) const;
+
237  bool empty() const;
+
239  DataSet *empty_set() const;
+
241  bool set_equal(const DataSet & b) const;
+
243  bool set_less_than (const DataSet & b) const ;
+
245  long double set_size() const;
+
247  size_t set_hash() const;
+
249  void set_print (std::ostream &os) const { os << *this; }
+
250 
+
252 
+
253 };
+
254 
+
255 
+
257 std::ostream& operator<<(std::ostream &,const GSDD &);
+
258 /* Binary operators */
+
261 GSDD operator^(const GSDD&,const GSDD&); // concatenation
+
264 GSDD operator+(const GSDD&,const GSDD&); // union
+
267 GSDD operator*(const GSDD&,const GSDD&); // intersection
+
270 GSDD operator-(const GSDD&,const GSDD&); // difference
+
271 
+
272 
+
273 /******************************************************************************/
+
279 class SDD:public GSDD {
+
280 public:
+
281  /* Constructeur */
+
284  SDD(const SDD &);
+
287  SDD(const GSDD &g=GSDD::null);
+
296  SDD(int var,const DataSet& val,const GSDD &d=one ); //var-val->d
+
297  SDD(int var,const GSDD& val,const GSDD &d=one ); //var-val->d
+
298  // to disambiguate when using SDD as referenced type
+
299  SDD(int var,const SDD& val,const GSDD &d=one ); //var-val->d
+
303  virtual ~SDD();
+
304 
+
305  /* Set */
+
307 
+
308  SDD &operator=(const GSDD&);
+
311  SDD &operator=(const SDD&);
+
313 
+
314 #ifdef EVDDD
+
315  virtual DataSet *normalizeDistance(int n) const { return new SDD(GSDD::normalizeDistance(n)); }
+
316  virtual int getMinDistance() const { return GSDD::getMinDistance();}
+
317 #endif
+
318 
+
320 
+
321 };
+
322 
+
325 namespace SDDutil {
+ +
331  void foreachTable (void (*foo) (const GSDD & g));
+
332 }
+
333 
+
334 
+
335 namespace std {
+
338  template<>
+
339  struct less<GSDD> {
+
340  bool operator()(const GSDD &g1,const GSDD &g2) const{
+
341  return g1<g2;
+
342  }
+
343  };
+
344 }
+
345 
+
346 
+
347 
+
348 
+
349 #endif
+
350 
+
351 
+ +
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
+
Definition: SDD.cpp:59
+
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
+
Definition: DDD.h:340
+
bool operator()(const GSDD &g1, const GSDD &g2) const
Definition: SDD.h:340
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDED_8cpp.html b/libddd.html/SDED_8cpp.html new file mode 100644 index 000000000..3445ea58c --- /dev/null +++ b/libddd.html/SDED_8cpp.html @@ -0,0 +1,403 @@ + + + + + + + +DDD: SDED.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Typedefs | +Functions | +Variables
+
+
SDED.cpp File Reference
+
+
+
#include <set>
+#include <map>
+#include <typeinfo>
+#include <cassert>
+#include <iostream>
+#include "ddd/util/configuration.hh"
+#include "ddd/DataSet.h"
+#include "ddd/DED.h"
+#include "ddd/SDD.h"
+#include "ddd/SDED.h"
+#include "ddd/SHom.h"
+#include "ddd/UniqueTable.h"
+
+Include dependency graph for SDED.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +

+Classes

class  _SDED
 
class  _SDED_Add
 
class  _SDED_Mult
 
class  _SDED_Minus
 
class  _SDED_Concat
 
+ + + +

+Namespaces

 namespace_SDED
 
+ + + +

+Typedefs

typedef UniqueTable< _SDEDSDEDtable
 
+ + + + + + + + + + + + + + + + + +

+Functions

static GSDD compute (const _SDED &op)
 
void square_union (std::map< GSDD, DataSet * > &res, const GSDD &s, DataSet *d)
 
GSDD operator+ (const GSDD &g1, const GSDD &g2)
 Operator for union of DDD. More...
 
GSDD operator* (const GSDD &g1, const GSDD &g2)
 Operator for intersection of DDD. More...
 
GSDD operator^ (const GSDD &g1, const GSDD &g2)
 Operator for concatenation of two SDD. More...
 
GSDD operator- (const GSDD &g1, const GSDD &g2)
 Operator for set difference of DDD. More...
 
+ + + + + + + + + +

+Variables

static SDEDtable uniqueSDED
 
static int namespace_SDED::Hits =0
 
static int namespace_SDED::Misses =0
 
static size_t namespace_SDED::Max_SDED =0
 
+

Typedef Documentation

+ +

◆ SDEDtable

+ +
+
+ + + + +
typedef UniqueTable<_SDED> SDEDtable
+
+ +
+
+

Function Documentation

+ +

◆ compute()

+ +
+
+ + + + + +
+ + + + + + + + +
static GSDD compute (const _SDEDop)
+
+static
+
+
+ +

◆ operator*()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator* (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for intersection of DDD.

+

Semantics : d1 * d2 designates the intersection of the two sets

+ +

References _SDED_Mult::create().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator+ (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for union of DDD.

+

Semantics : d1 + d2 produces the union d1 and d2

+ +

References _SDED_Add::create().

+ +
+
+ +

◆ operator-()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator- (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for set difference of DDD.

+

Semantics : d1 - d2 contains elements in d1 and not in d2

+ +

References _SDED_Minus::create().

+ +
+
+ +

◆ operator^()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD operator^ (const GSDDg1,
const GSDDg2 
)
+
+ +

Operator for concatenation of two SDD.

+

Semantics : d1 ^ d2 replaces "one" terminals of d1 by d2

+ +

References _SDED_Concat::create().

+ +
+
+ +

◆ square_union()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void square_union (std::map< GSDD, DataSet * > & res,
const GSDDs,
DataSetd 
)
+
+
+

Variable Documentation

+ +

◆ uniqueSDED

+ +
+
+ + + + + +
+ + + + +
SDEDtable uniqueSDED
+
+static
+
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDED_8cpp__incl.map b/libddd.html/SDED_8cpp__incl.map new file mode 100644 index 000000000..e5059bad3 --- /dev/null +++ b/libddd.html/SDED_8cpp__incl.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SDED_8cpp__incl.md5 b/libddd.html/SDED_8cpp__incl.md5 new file mode 100644 index 000000000..d86334bbf --- /dev/null +++ b/libddd.html/SDED_8cpp__incl.md5 @@ -0,0 +1 @@ +24ffdcf4aac4c5a8953e1ed97fdc89dd \ No newline at end of file diff --git a/libddd.html/SDED_8cpp__incl.png b/libddd.html/SDED_8cpp__incl.png new file mode 100644 index 000000000..66d843854 Binary files /dev/null and b/libddd.html/SDED_8cpp__incl.png differ diff --git a/libddd.html/SDED_8h.html b/libddd.html/SDED_8h.html new file mode 100644 index 000000000..c7f3e81be --- /dev/null +++ b/libddd.html/SDED_8h.html @@ -0,0 +1,162 @@ + + + + + + + +DDD: SDED.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Namespaces | +Functions
+
+
SDED.h File Reference
+
+
+
#include <map>
+#include "ddd/util/set.hh"
+#include "ddd/DataSet.h"
+#include "ddd/util/hash_support.hh"
+
+Include dependency graph for SDED.h:
+
+
+ + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 SDED
 
+ + + + + + + + + + + + + +

+Functions

GSDD SDED::add (const d3::set< GSDD >::type &)
 
unsigned int SDED::statistics ()
 
void SDED::pstats (bool reinit=true)
 
size_t SDED::peak ()
 
void SDED::garbage ()
 
void square_union (std::map< GSDD, DataSet * > &res, const GSDD &s, DataSet *d)
 
+

Function Documentation

+ +

◆ square_union()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void square_union (std::map< GSDD, DataSet * > & res,
const GSDDs,
DataSetd 
)
+
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SDED_8h__dep__incl.map b/libddd.html/SDED_8h__dep__incl.map new file mode 100644 index 000000000..25f649152 --- /dev/null +++ b/libddd.html/SDED_8h__dep__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/libddd.html/SDED_8h__dep__incl.md5 b/libddd.html/SDED_8h__dep__incl.md5 new file mode 100644 index 000000000..69e88924c --- /dev/null +++ b/libddd.html/SDED_8h__dep__incl.md5 @@ -0,0 +1 @@ +b117194e5a320eddb6e732e8b4a7b9a3 \ No newline at end of file diff --git a/libddd.html/SDED_8h__dep__incl.png b/libddd.html/SDED_8h__dep__incl.png new file mode 100644 index 000000000..ef6229c1d Binary files /dev/null and b/libddd.html/SDED_8h__dep__incl.png differ diff --git a/libddd.html/SDED_8h__incl.map b/libddd.html/SDED_8h__incl.map new file mode 100644 index 000000000..6128c87ac --- /dev/null +++ b/libddd.html/SDED_8h__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SDED_8h__incl.md5 b/libddd.html/SDED_8h__incl.md5 new file mode 100644 index 000000000..89d5f9824 --- /dev/null +++ b/libddd.html/SDED_8h__incl.md5 @@ -0,0 +1 @@ +bd203afad9ee8c50eb0a6296ace5f44e \ No newline at end of file diff --git a/libddd.html/SDED_8h__incl.png b/libddd.html/SDED_8h__incl.png new file mode 100644 index 000000000..da00ceec4 Binary files /dev/null and b/libddd.html/SDED_8h__incl.png differ diff --git a/libddd.html/SDED_8h_source.html b/libddd.html/SDED_8h_source.html new file mode 100644 index 000000000..f36588444 --- /dev/null +++ b/libddd.html/SDED_8h_source.html @@ -0,0 +1,123 @@ + + + + + + + +DDD: SDED.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
SDED.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef SDED_H
+
25 #define SDED_H
+
26 
+
27 #include <map>
+
28 #include "ddd/util/set.hh"
+
29 
+
30 #include "ddd/DataSet.h"
+
31 #include "ddd/util/hash_support.hh"
+
32 
+
33 class GSDD;
+
34 
+
35 /******************************************************************************/
+
36 namespace SDED{
+
37  GSDD add(const d3::set<GSDD>::type &);
+
38 
+
39  /* Memory Manager */
+
40  unsigned int statistics();
+
41  void pstats(bool reinit=true);
+
42  size_t peak();
+
43  void garbage();
+
44 };
+
45 
+
46 
+
47 // Library internal: square_union (cf FORTE'05)
+
48 void
+
49 square_union (std::map<GSDD,DataSet *> &res,const GSDD & s, DataSet* d);
+
50 
+
51 #ifdef EVDDD
+
52 GShom pushEVSDD(int v);
+
53 #endif
+
54 
+
55 #endif
+
56 
+ +
void square_union(std::map< GSDD, DataSet * > &res, const GSDD &s, DataSet *d)
Definition: SDED.cpp:103
+
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
+ +
Definition: SDED.h:36
+
void pstats(bool reinit=true)
Definition: SDED.cpp:673
+
unsigned int statistics()
Definition: SDED.cpp:668
+
size_t peak()
Definition: SDED.cpp:688
+
void garbage()
Definition: SDED.cpp:694
+
GSDD add(const d3::set< GSDD >::type &)
Definition: SDED.cpp:707
+ +
std::set< Key, Compare, Allocator > type
Definition: set.hh:18
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SHom_8cpp.html b/libddd.html/SHom_8cpp.html new file mode 100644 index 000000000..cdd21b6f6 --- /dev/null +++ b/libddd.html/SHom_8cpp.html @@ -0,0 +1,1143 @@ + + + + + + + +DDD: SHom.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces | +Macros | +Typedefs | +Functions | +Variables
+
+
SHom.cpp File Reference
+
+
+
#include <typeinfo>
+#include <cassert>
+#include <iostream>
+#include "ddd/MemoryManager.h"
+#include "ddd/util/configuration.hh"
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/ext_hash_map.hh"
+#include "ddd/Cache.hh"
+#include "ddd/MLSHom.h"
+#include "ddd/FixObserver.hh"
+
+Include dependency graph for SHom.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  d3::util::equal< _GShom * >
 
class  sns::Identity
 
class  sns::Constant
 
class  sns::SApply2k
 
class  sns::Mult
 
class  sns::Inter
 
class  sns::SDomExtract
 Extractor of variable domains for invert computations. More...
 
class  sns::LocalApply
 
class  sns::SLocalApply
 
class  sns::SNotCond
 
class  sns::And
 A commutative composition of n homomorphisms. More...
 
class  sns::Add
 
struct  sns::Add::partition
 
class  sns::RecFireSat
 
class  sns::Compose
 
class  sns::LeftConcat
 
class  sns::RightConcat
 
class  sns::Minus
 
class  sns::HomMinus
 
class  sns::Fixpoint
 
class  sns::MLShomAdapter
 
+ + + + + + + +

+Namespaces

 d3
 
 d3::util
 
 sns
 
+ + + +

+Macros

#define trace   while(0) std::cerr
 
+ + + + + + + + + +

+Typedefs

typedef std::map< GSDD, DataSet * > GSDD_DataSet_map
 
typedef Cache< GShom, GSDD, GSDDShomCache
 
typedef Cache< GShom, GSDD, GSDD, char > ImgShomCache
 
typedef ext_hash_map< d3::set< GShom >::type, const _GShom * >::internal_hash_map addCache_t
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

bool sns::testWasInterrupt (bool can_garbage, const GSDD &d1, const GSDD &d2)
 
bool sns::testShouldInterrupt (bool can_garbage, const GSDD &d1, const GSDD &d2)
 
const _GShomsns::getIdentity ()
 
GShom sns::recFireSat (const GShom &sat, const GShom &lf)
 
static bool notInRange (const GShom::range_t &h1r, const GShom &h2)
 
GShom fixpoint (const GShom &h, bool is_top_level)
 Apply a homomorphism until fixpoint is reached. More...
 
GShom localApply (const GHom &h, int target)
 Apply a homomorphism on a target variable. More...
 
GShom localApply (const GShom &h, int target)
 
static void addParameter (const GShom &hh, std::map< int, GHom > &local_homs, std::map< int, GShom > &local_shoms, d3::set< GShom >::type &parameters, bool &have_id)
 
static void buildUnionParameters (d3::set< GShom >::type &p, d3::set< GShom >::type &parameters, bool &have_id)
 
static bool commutative (const GShom &h1, const GShom &h2)
 
static void addCompositionParameter (const GShom &h, sns::And::parameters_t &args)
 
GShom operator& (const GShom &h1, const GShom &h2)
 Composition by circ (rond) of homomorphisms. More...
 
GShom operator+ (const GShom &h1, const GShom &h2)
 Composition by union of two homomorphisms. More...
 
GShom operator* (const GSDD &d, const GShom &h)
 Intersection with a constant SDD. More...
 
GShom operator* (const GShom &h, const GSDD &d)
 Intersection with a constant SDD. More...
 
GShom operator^ (const GSDD &d, const GShom &h)
 Left Concatenation of a constant SDD. More...
 
GShom operator^ (const GShom &h, const GSDD &d)
 Right Concatenation of a constant SDD. More...
 
GShom operator- (const GShom &h, const GSDD &d)
 Set difference. More...
 
GShom operator- (const GShom &h1, const GShom &h2)
 Set difference (generalized). More...
 
static void printCondError (const GShom &cond)
 An IF-THEN-ELSE construct. More...
 
GShom ITE (const GShom &cond, const GShom &iftrue, const GShom &iffalse)
 An IF-THEN-ELSE construct. More...
 
GShom operator! (const GShom &cond)
 A negation/complement constructor for selector homomophisms. More...
 
GShom apply2k (const GSDD &d)
 Apply a 2 level DDD representing a transition relation to current variable. More...
 
GShom extractPotential (int var)
 Extract the domain of a given variable. More...
 
GShom operator* (const GShom &h, const GShom &cond)
 Intersection with a selector Hom. More...
 
std::ostream & operator<< (std::ostream &os, const GShom &h)
 
+ + + + + + + +

+Variables

static ShomCache sns::cache
 
static ImgShomCache sns::imgcache
 
static addCache_t addCache
 
+

Macro Definition Documentation

+ +

◆ trace

+ +
+
+ + + + +
#define trace   while(0) std::cerr
+
+ +
+
+

Typedef Documentation

+ +

◆ addCache_t

+ +
+
+ + + + +
typedef ext_hash_map<d3::set<GShom>::type, const _GShom*>::internal_hash_map addCache_t
+
+ +
+
+ +

◆ GSDD_DataSet_map

+ +
+
+ + + + +
typedef std::map<GSDD, DataSet*> GSDD_DataSet_map
+
+ +
+
+ +

◆ ImgShomCache

+ +
+
+ + + + +
typedef Cache<GShom, GSDD, GSDD, char> ImgShomCache
+
+ +
+
+ +

◆ ShomCache

+ +
+
+ + + + +
typedef Cache<GShom, GSDD, GSDD> ShomCache
+
+ +
+
+

Function Documentation

+ +

◆ addCompositionParameter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void addCompositionParameter (const GShomh,
sns::And::parameters_targs 
)
+
+static
+
+
+ +

◆ addParameter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static void addParameter (const GShomhh,
std::map< int, GHom > & local_homs,
std::map< int, GShom > & local_shoms,
d3::set< GShom >::type & parameters,
bool & have_id 
)
+
+static
+
+
+ +

◆ apply2k()

+ +
+
+ + + + + + + + +
GShom apply2k (const GSDDd)
+
+ +

Apply a 2 level DDD representing a transition relation to current variable.

+ +

References GShom::id, GSDD::null, GSDD::one, and GSDD::top.

+ +

Referenced by sns::SApply2k::eval().

+ +
+
+ +

◆ buildUnionParameters()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void buildUnionParameters (d3::set< GShom >::type & p,
d3::set< GShom >::type & parameters,
bool & have_id 
)
+
+static
+
+
+ +

◆ commutative()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool commutative (const GShomh1,
const GShomh2 
)
+
+static
+
+
+ +

◆ extractPotential()

+ +
+
+ + + + + + + + +
GShom extractPotential (int var)
+
+ +

Extract the domain of a given variable.

+

Returns the union of the first nodes encountered that bear this variable, with 1 as signle successor. In other words, an SDD of a single var, with an edge value that is the union of all Datasets in the reachable SDD.

+ +

Referenced by sns::LocalApply::invert(), and sns::SLocalApply::invert().

+ +
+
+ +

◆ fixpoint()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom fixpoint (const GShomh,
bool is_top_level = false 
)
+
+ +

Apply a homomorphism until fixpoint is reached.

+

This new unary operator is introduced to implement local saturation in transition relation evaluation. Proper use of fixpoint allows to effectively tackle the intermediate size problem of decision diagram based representations. Note that evaluation simply iterates until a fixpoint is reached, thus to cumulate new states with previously reached it should be combined with GShom::id as in

+

fixpoint ( h + GShom::id )

+ +

Referenced by sns::RecFireSat::eval(), sns::Fixpoint::eval(), sns::Fixpoint::has_image(), and sns::Fixpoint::invert().

+ +
+
+ +

◆ ITE()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GShom ITE (const GShomcond,
const GShomiftrue,
const GShomiffalse 
)
+
+ +

An IF-THEN-ELSE construct.

+

The behavior of the condition must be a selection, as indicated by its isSelector() flag. PITFALL : Otherwise an assertion violation will be raised (with an explicit stderr message)

+

Semantics : ITE ( cond, iftrue, iffalse) (d) = (iftrue & cond(d)) + (iffalse & !cond(d))
+

+ +

References GShom::is_selector(), and printCondError().

+ +
+
+ +

◆ localApply() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GHomh,
int target 
)
+
+ +

Apply a homomorphism on a target variable.

+

This ensures that the operation is local to this variable, and is used to implement auto-saturation.

+ +

Referenced by addCompositionParameter(), buildUnionParameters(), sns::Fixpoint::eval(), sns::Fixpoint::has_image(), sns::LocalApply::invert(), sns::SLocalApply::invert(), operator!(), and operator*().

+ +
+
+ +

◆ localApply() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GShomh,
int target 
)
+
+ +
+
+ +

◆ notInRange()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static bool notInRange (const GShom::range_th1r,
const GShomh2 
)
+
+static
+
+ +

References GShom::get_range().

+ +

Referenced by commutative().

+ +
+
+ +

◆ operator!()

+ +
+
+ + + + + + + + +
GShom operator! (const GShomcond)
+
+ +

A negation/complement constructor for selector homomophisms.

+

Let cond be a selector, !cond(d) = d - cond(d) PITFALL : Raises an assert violation if is_selector() returns false !

+ +

References _GShom::get_concret(), GShom::id, GShom::is_selector(), localApply(), Shom::null, and printCondError().

+ +
+
+ +

◆ operator&()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator& (const GShomh1,
const GShomh2 
)
+
+ +

Composition by circ (rond) of homomorphisms.

+

Semantics : (h1 & h2) (d) = h1( h2(d) ).

+ +
+
+ +

◆ operator*() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GSDDd,
const GShomh 
)
+
+ +

Intersection with a constant SDD.

+

Semantics : (h * d1) (d) = h(d) * d1

+ +
+
+ +

◆ operator*() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GShomh,
const GSDDd 
)
+
+ +

Intersection with a constant SDD.

+

Semantics : (d1 * h) (d) = d1 * h(d)

+ +
+
+ +

◆ operator*() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GShomh,
const GShomcond 
)
+
+ +

Intersection with a selector Hom.

+

Semantics : (d1 * sel) (d) = d1 (d) * sel (d) WARNING : assert failure if 2nd argument is not a selector.

+ +

References _GShom::get_concret(), GHom::id, GShom::id, GShom::is_selector(), localApply(), Shom::null, and printCondError().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator+ (const GShomh1,
const GShomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

See also GShom::add(). This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+ +

◆ operator-() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator- (const GShomh,
const GSDDd 
)
+
+ +

Set difference.

+

Note that this operation is not commutative, nor is it linear. This means the difference of two linear homomorphisms is not necessarily linear; (h1 - h2) (d) is not necessarily equal to h1(d) - h2(d). Therefore this operator is not defined for composition of two homomorphisms, only for a constant and a homomorphism.

+

Semantics : (h - d1) (d) = h(d) - d1

+ +
+
+ +

◆ operator-() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator- (const GShomh1,
const GShomh2 
)
+
+ +

Set difference (generalized).

+

Note that this operation is not commutative, nor is it linear. This means the operation a priori cannot "skip", and it could be incorrect to apply it at an arbitrary level of the structure. However, in some cases it is still useful and it can be applied directly at the top node of the structure yielding correct results.

+

Semantics : (h1 - h2) (d) = h1(d) - h2(d)

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GShomh 
)
+
+ +
+
+ +

◆ operator^() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GSDDd,
const GShomh 
)
+
+ +

Left Concatenation of a constant SDD.

+

Note that this is inherently inefficient, the nodes of d1 are constructed, but the result a priori will not contain them, unless h(d) == GSDD::one.

+

Semantics : (d1 ^ h) (d) = d1 ^ h(d)

+ +
+
+ +

◆ operator^() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GShomh,
const GSDDd 
)
+
+ +

Right Concatenation of a constant SDD.

+

This is used to construct new nodes, and has the same efficiency issue as left concatenation.

+

Semantics : (h ^ d1) (d) = h(d) ^ d1

+ +
+
+ +

◆ printCondError()

+ +
+
+ + + + + +
+ + + + + + + + +
static void printCondError (const GShomcond)
+
+static
+
+ +

An IF-THEN-ELSE construct.

+

The behavior of the condition must be a selection, as indicated by its isSelector() flag. PITFALL : Otherwise an assertion violation will be raised (with an explicit stderr message)

+

Semantics : ITE ( cond, iftrue, iffalse) (d) = (iftrue & cond(d)) + (iffalse & !cond(d))
+

+ +

Referenced by ITE(), operator!(), and operator*().

+ +
+
+

Variable Documentation

+ +

◆ addCache

+ +
+
+ + + + + +
+ + + + +
addCache_t addCache
+
+static
+
+ +

Referenced by GShom::garbage().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SHom_8cpp__incl.map b/libddd.html/SHom_8cpp__incl.map new file mode 100644 index 000000000..0feea8999 --- /dev/null +++ b/libddd.html/SHom_8cpp__incl.map @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SHom_8cpp__incl.md5 b/libddd.html/SHom_8cpp__incl.md5 new file mode 100644 index 000000000..31a08b14b --- /dev/null +++ b/libddd.html/SHom_8cpp__incl.md5 @@ -0,0 +1 @@ +68d13905bf5fac7f7d3f839b855ea063 \ No newline at end of file diff --git a/libddd.html/SHom_8cpp__incl.png b/libddd.html/SHom_8cpp__incl.png new file mode 100644 index 000000000..c2ca9925b Binary files /dev/null and b/libddd.html/SHom_8cpp__incl.png differ diff --git a/libddd.html/SHom_8h.html b/libddd.html/SHom_8h.html new file mode 100644 index 000000000..eca5bd7b5 --- /dev/null +++ b/libddd.html/SHom_8h.html @@ -0,0 +1,685 @@ + + + + + + + +DDD: SHom.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Namespaces
+
+
SHom.h File Reference
+
+
+
#include "ddd/SDD.h"
+#include "ddd/Hom.h"
+#include "ddd/Cache.hh"
+#include "ddd/util/set.hh"
+
+Include dependency graph for SHom.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + +

+Classes

class  GShom
 This class is the base class for Homomorphisms over SDD. More...
 
class  Shom
 This is the user interface class to manipulate homomorphisms. More...
 
struct  std::less< GShom >
 Compares two GShom in hash tables. More...
 
class  _GShom
 The concrete data class for Homomorphisms. More...
 
class  StrongShom
 The abstract base class for user defined operations. More...
 
class  MyGShom
 
+ + + +

+Namespaces

 std
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

Composition operators between SDD homomorphisms.
GShom fixpoint (const GShom &, bool is_top_level=false)
 Apply a homomorphism until fixpoint is reached. More...
 
GShom localApply (const GHom &, int target)
 Apply a homomorphism on a target variable. More...
 
GShom localApply (const GShom &, int target)
 
GShom extractPotential (int var)
 Extract the domain of a given variable. More...
 
GShom ITE (const GShom &cond, const GShom &iftrue, const GShom &iffalse)
 An IF-THEN-ELSE construct. More...
 
GShom operator! (const GShom &cond)
 A negation/complement constructor for selector homomophisms. More...
 
GShom operator+ (const GShom &, const GShom &)
 Composition by union of two homomorphisms. More...
 
GShom operator& (const GShom &, const GShom &)
 Composition by circ (rond) of homomorphisms. More...
 
GShom operator* (const GSDD &, const GShom &)
 Intersection with a constant SDD. More...
 
GShom operator* (const GShom &, const GSDD &)
 Intersection with a constant SDD. More...
 
GShom operator* (const GShom &, const GShom &)
 Intersection with a selector Hom. More...
 
GShom operator^ (const GSDD &, const GShom &)
 Left Concatenation of a constant SDD. More...
 
GShom operator^ (const GShom &, const GSDD &)
 Right Concatenation of a constant SDD. More...
 
GShom operator- (const GShom &, const GSDD &)
 Set difference. More...
 
GShom operator- (const GShom &, const GShom &)
 Set difference (generalized). More...
 
GShom apply2k (const GSDD &)
 Apply a 2 level DDD representing a transition relation to current variable. More...
 
+

Function Documentation

+ +

◆ apply2k()

+ +
+
+ + + + + + + + +
GShom apply2k (const GSDDd)
+
+ +

Apply a 2 level DDD representing a transition relation to current variable.

+ +

References GShom::id, GSDD::null, GSDD::one, and GSDD::top.

+ +

Referenced by sns::SApply2k::eval().

+ +
+
+ +

◆ extractPotential()

+ +
+
+ + + + + + + + +
GShom extractPotential (int var)
+
+ +

Extract the domain of a given variable.

+

Returns the union of the first nodes encountered that bear this variable, with 1 as signle successor. In other words, an SDD of a single var, with an edge value that is the union of all Datasets in the reachable SDD.

+ +

Referenced by sns::LocalApply::invert(), and sns::SLocalApply::invert().

+ +
+
+ +

◆ fixpoint()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom fixpoint (const GShomh,
bool is_top_level = false 
)
+
+ +

Apply a homomorphism until fixpoint is reached.

+

This new unary operator is introduced to implement local saturation in transition relation evaluation. Proper use of fixpoint allows to effectively tackle the intermediate size problem of decision diagram based representations. Note that evaluation simply iterates until a fixpoint is reached, thus to cumulate new states with previously reached it should be combined with GShom::id as in

+

fixpoint ( h + GShom::id )

+ +

Referenced by sns::RecFireSat::eval(), sns::Fixpoint::eval(), sns::Fixpoint::has_image(), and sns::Fixpoint::invert().

+ +
+
+ +

◆ ITE()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GShom ITE (const GShomcond,
const GShomiftrue,
const GShomiffalse 
)
+
+ +

An IF-THEN-ELSE construct.

+

The behavior of the condition must be a selection, as indicated by its isSelector() flag. PITFALL : Otherwise an assertion violation will be raised (with an explicit stderr message)

+

Semantics : ITE ( cond, iftrue, iffalse) (d) = (iftrue & cond(d)) + (iffalse & !cond(d))
+

+ +

References GShom::is_selector(), and printCondError().

+ +
+
+ +

◆ localApply() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GHomh,
int target 
)
+
+ +

Apply a homomorphism on a target variable.

+

This ensures that the operation is local to this variable, and is used to implement auto-saturation.

+ +

Referenced by addCompositionParameter(), buildUnionParameters(), sns::Fixpoint::eval(), sns::Fixpoint::has_image(), sns::LocalApply::invert(), sns::SLocalApply::invert(), operator!(), and operator*().

+ +
+
+ +

◆ localApply() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GShomh,
int target 
)
+
+ +
+
+ +

◆ operator!()

+ +
+
+ + + + + + + + +
GShom operator! (const GShomcond)
+
+ +

A negation/complement constructor for selector homomophisms.

+

Let cond be a selector, !cond(d) = d - cond(d) PITFALL : Raises an assert violation if is_selector() returns false !

+ +

References _GShom::get_concret(), GShom::id, GShom::is_selector(), localApply(), Shom::null, and printCondError().

+ +
+
+ +

◆ operator&()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator& (const GShomh1,
const GShomh2 
)
+
+ +

Composition by circ (rond) of homomorphisms.

+

Semantics : (h1 & h2) (d) = h1( h2(d) ).

+ +
+
+ +

◆ operator*() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GSDDd,
const GShomh 
)
+
+ +

Intersection with a constant SDD.

+

Semantics : (h * d1) (d) = h(d) * d1

+ +
+
+ +

◆ operator*() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GShomh,
const GSDDd 
)
+
+ +

Intersection with a constant SDD.

+

Semantics : (d1 * h) (d) = d1 * h(d)

+ +
+
+ +

◆ operator*() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GShomh,
const GShomcond 
)
+
+ +

Intersection with a selector Hom.

+

Semantics : (d1 * sel) (d) = d1 (d) * sel (d) WARNING : assert failure if 2nd argument is not a selector.

+ +

References _GShom::get_concret(), GHom::id, GShom::id, GShom::is_selector(), localApply(), Shom::null, and printCondError().

+ +
+
+ +

◆ operator+()

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator+ (const GShomh1,
const GShomh2 
)
+
+ +

Composition by union of two homomorphisms.

+

See also GShom::add(). This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+ +

◆ operator-() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator- (const GShomh,
const GSDDd 
)
+
+ +

Set difference.

+

Note that this operation is not commutative, nor is it linear. This means the difference of two linear homomorphisms is not necessarily linear; (h1 - h2) (d) is not necessarily equal to h1(d) - h2(d). Therefore this operator is not defined for composition of two homomorphisms, only for a constant and a homomorphism.

+

Semantics : (h - d1) (d) = h(d) - d1

+ +
+
+ +

◆ operator-() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator- (const GShomh1,
const GShomh2 
)
+
+ +

Set difference (generalized).

+

Note that this operation is not commutative, nor is it linear. This means the operation a priori cannot "skip", and it could be incorrect to apply it at an arbitrary level of the structure. However, in some cases it is still useful and it can be applied directly at the top node of the structure yielding correct results.

+

Semantics : (h1 - h2) (d) = h1(d) - h2(d)

+ +
+
+ +

◆ operator^() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GSDDd,
const GShomh 
)
+
+ +

Left Concatenation of a constant SDD.

+

Note that this is inherently inefficient, the nodes of d1 are constructed, but the result a priori will not contain them, unless h(d) == GSDD::one.

+

Semantics : (d1 ^ h) (d) = d1 ^ h(d)

+ +
+
+ +

◆ operator^() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GShomh,
const GSDDd 
)
+
+ +

Right Concatenation of a constant SDD.

+

This is used to construct new nodes, and has the same efficiency issue as left concatenation.

+

Semantics : (h ^ d1) (d) = h(d) ^ d1

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/SHom_8h__dep__incl.map b/libddd.html/SHom_8h__dep__incl.map new file mode 100644 index 000000000..46af05320 --- /dev/null +++ b/libddd.html/SHom_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/libddd.html/SHom_8h__dep__incl.md5 b/libddd.html/SHom_8h__dep__incl.md5 new file mode 100644 index 000000000..2a128dbca --- /dev/null +++ b/libddd.html/SHom_8h__dep__incl.md5 @@ -0,0 +1 @@ +c5ae8afcb01e29d832b1ca81bae5f055 \ No newline at end of file diff --git a/libddd.html/SHom_8h__dep__incl.png b/libddd.html/SHom_8h__dep__incl.png new file mode 100644 index 000000000..0576ae8c3 Binary files /dev/null and b/libddd.html/SHom_8h__dep__incl.png differ diff --git a/libddd.html/SHom_8h__incl.map b/libddd.html/SHom_8h__incl.map new file mode 100644 index 000000000..0d385e66e --- /dev/null +++ b/libddd.html/SHom_8h__incl.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/SHom_8h__incl.md5 b/libddd.html/SHom_8h__incl.md5 new file mode 100644 index 000000000..5af4fd6e7 --- /dev/null +++ b/libddd.html/SHom_8h__incl.md5 @@ -0,0 +1 @@ +752069bd1e90d234107267d04eb333c0 \ No newline at end of file diff --git a/libddd.html/SHom_8h__incl.png b/libddd.html/SHom_8h__incl.png new file mode 100644 index 000000000..386d35281 Binary files /dev/null and b/libddd.html/SHom_8h__incl.png differ diff --git a/libddd.html/SHom_8h_source.html b/libddd.html/SHom_8h_source.html new file mode 100644 index 000000000..efa976261 --- /dev/null +++ b/libddd.html/SHom_8h_source.html @@ -0,0 +1,514 @@ + + + + + + + +DDD: SHom.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
SHom.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef SHOM_H_
+
25 #define SHOM_H_
+
26 
+
27 #include "ddd/SDD.h"
+
28 #include "ddd/Hom.h"
+
29 #include "ddd/Cache.hh"
+
30 
+
31 #include "ddd/util/set.hh"
+
32 
+
33 /**********************************************************************/
+
34 
+
36 class _GShom;
+
38 class StrongShom;
+
39 class MyGShom;
+
40 class MLShom;
+
41 
+
42 
+
43 
+
56 class GShom
+
57 {
+
58 private:
+
60  friend class Shom;
+
62  friend class _GShom;
+
63 
+
66 
+
67  friend GShom fixpoint(const GShom &, bool is_top_level);
+
68  friend GShom localApply(const GHom &,int target);
+
69  friend GShom localApply(const GShom &,int target);
+
70  friend GShom add(const d3::set<GShom>::type &);
+
71  friend GShom operator+(const GShom &,const GShom &);
+
72  friend GShom operator&(const GShom &,const GShom &);
+
73  friend GShom operator*(const GSDD &,const GShom &);
+
74  friend GShom operator*(const GShom &,const GSDD &);
+
75  friend GShom operator^(const GSDD &,const GShom &);
+
76  friend GShom operator^(const GShom &,const GSDD &);
+
77  friend GShom operator-(const GShom &,const GSDD &);
+
79 
+
80 #ifdef HASH_STAT
+
81  // open access to instrumented hashtable
+
82  template <class Value, class Key, class HashFcn,
+
83  class ExtractKey, class SetKey, class EqualKey, class Alloc>
+
84  friend class google::sparse_hashtable;
+
85 #endif
+
86 
+
88  const _GShom* concret;
+
89 public:
+
90  typedef GSDD NodeType;
+
92 
+
93  GShom():concret(id.concret){};
+
95 
+
99  GShom(const _GShom *_h);
+
100 
+
109  GShom(_GShom *_h);
+
110 
+
113  GShom(const _GShom &_h);
+
114 
+
116  GShom(const MLShom &);
+
117 
+
120  GShom(const GSDD& d);
+
128  GShom(int var,const DataSet& val, const GShom &h=GShom::id); // var -- val -> Id
+
130 
+
132  static const GShom id;
+
133 
+
135  GShom invert (const GSDD & pot) const;
+
136 
+
138  GSDD has_image (const GSDD & d) const;
+
139 
+
140  GShom compose(const GShom &) const;
+
141 
+
145 
+
146  bool operator==(const GShom &h) const{return concret==h.concret;};
+
147  bool operator!=(const GShom &h) const{return concret!=h.concret;};
+
148  bool operator<(const GShom &h) const{return concret<h.concret;};
+
150  bool is_selector() const;
+
152  bool skip_variable(int) const;
+
153 
+ +
155  typedef range_t::const_iterator range_it;
+
157  const range_t get_range () const;
+
159  static const range_t full_range;
+
161 
+
163 
+
164  GSDD operator()(const GSDD &d) const;
+
170  GSDD eval(const GSDD &d) const;
+
172 
+
174  int refCounter() const;
+
175 
+
179  static GShom add(const d3::set<GShom>::type & s);
+
180 
+
181  // pretty print of homomorphisms
+
182  friend std::ostream & operator << (std::ostream & os, const GShom & h);
+
183 
+
185 
+
186  static unsigned int statistics();
+
189  static size_t cache_size();
+
191  static size_t cache_peak();
+
192 
+
195  static void pstats(bool reinit=true);
+
197  void mark() const;
+
199  size_t hash () const {
+
200  return ddd::knuth32_hash(reinterpret_cast<size_t>(concret));
+
201  }
+
205  static void garbage();
+
207 
+
208  // strategies for fixpoint evaluation insaturation context
+
209  // BFS = do each g_i once then go to g_i+1
+
210  // DFS = do each g_i to saturation then go to g_i+1
+ + +
213 
+
214  private :
+ + +
217 
+
218  public :
+ + +
221 
+ + +
224 
+
225 
+
226 };
+
227 
+
228 
+
229 
+
231 
+
232 GShom fixpoint(const GShom &, bool is_top_level=false);
+
244  GShom localApply(const GHom &,int target);
+
245  GShom localApply(const GShom &,int target);
+
246 
+
250  GShom extractPotential (int var);
+
251 
+
257 GShom ITE (const GShom & cond, const GShom & iftrue, const GShom & iffalse);
+
258 
+
262 GShom operator! (const GShom & cond);
+
263 
+
269 GShom operator+(const GShom &,const GShom &);
+
273 GShom operator&(const GShom &,const GShom &);
+
276 GShom operator*(const GSDD &,const GShom &);
+
279 GShom operator*(const GShom &,const GSDD &);
+
283 GShom operator*(const GShom &,const GShom &);
+
289 GShom operator^(const GSDD &,const GShom &);
+
295 GShom operator^(const GShom &,const GSDD &);
+
303 GShom operator-(const GShom &,const GSDD &);
+
311 GShom operator-(const GShom &,const GShom &);
+
312 
+
314 GShom apply2k (const GSDD &);
+
315 
+
316 
+
318 
+
319 
+
323 class Shom : public GShom
+
324 {
+
325 public:
+
328 
+
329  Shom(const GShom &h=GShom::id);
+
332  Shom(const Shom &h);
+
334  Shom(const GSDD& d);
+
342  Shom(int var,const DataSet& val, const GShom &h=GShom::id);
+
345  ~Shom();
+
347 
+
348  // Elementary emptyset homomorphism
+
349  static const Shom null;
+
350 
+
352 
+
353  Shom &operator=(const GShom &);
+
356  Shom &operator=(const Shom &);
+
358 };
+
359 
+
360 
+
361 
+
362 /******************************************************************************/
+
363 
+
364 
+
365 
+
366 namespace std {
+
369  template<> struct less<GShom> {
+
370  bool operator()(const GShom &g1,const GShom &g2) const{
+
371  return g1<g2;
+
372  }
+
373  };
+
374 }
+
375 
+
376 /**********************************************************************/
+
380 class _GShom
+
381 {
+
382 private:
+
384  friend class GShom;
+
386  friend class Shom;
+
394  mutable int _refCounter;
+
395 
+
396 
+
398  GSDD eval_skip(const GSDD &) const;
+
399 
+
400 
+
405  virtual bool immediat () const {return false;}
+
406 
+
407 public:
+
408  // made public ONLY for the cache, not part of normal API, use GShom has_image instead (cache etc...).
+
409  GSDD has_image_skip(const GSDD &) const;
+
410 
+
414  virtual bool
+
415  skip_variable(int) const
+
416  {
+
417  return false;
+
418  }
+
419 
+
422  virtual bool
+
423  is_selector() const
+
424  {
+
425  return false;
+
426  }
+
427 
+
429  virtual const GShom::range_t get_range () const
+
430  {
+
431  return GShom::full_range;
+
432  }
+
433 
+
436  _GShom(int ref=0):_refCounter(2*ref){};
+
439  virtual ~_GShom(){};
+
440 
+
444  virtual bool operator==(const _GShom &h) const=0;
+
449  virtual size_t hash() const=0;
+
450 
+
451  // for use by unique table : return new MyConcreteClassName(*this);
+
452  virtual _GShom * clone () const =0 ;
+
453 
+
454  virtual GSDD has_image (const GSDD & d) const ;
+
455 
+
456  virtual GShom compose(const GShom &) const;
+
457 
+
461  virtual GSDD eval(const GSDD &) const=0;
+
462 
+
464  virtual void mark() const{};
+
465 
+
466  void mark_if_refd () const {
+
467  if ( refCounter() ) {
+
468  set_mark(true);
+
469  }
+
470  }
+
471 
+
472  void ref () const {
+
473  _refCounter += 2;
+
474  }
+
475 
+
476  void deref () const {
+
477  _refCounter -= 2;
+
478  }
+
479 
+
480  unsigned long int refCounter() const {
+
481  return _refCounter >> 1;
+
482  }
+
483 
+
484  bool is_marked() const {
+
485  return _refCounter & 1;
+
486  }
+
487 
+
488  void set_mark (bool val) const {
+
489  if (val) {
+
490  if (! is_marked() ) {
+
491  _refCounter |= 1;
+
492  mark();
+
493  }
+
494  } else {
+
495  _refCounter >>= 1;
+
496  _refCounter <<= 1;
+
497  }
+
498  }
+
499 
+
500 
+
501  virtual void print (std::ostream & os) const = 0;
+
502 public:
+
503 
+
504  // Enable access to the concrete GSHom for _GSHom homorphisms
+
507  static
+
508  const _GShom*
+
509  get_concret(const GShom& gshom)
+
510  {
+
511  return gshom.concret;
+
512  }
+
513 
+
514  // produce the predescessor homomorphism, using pot to compute variable domains
+
515  virtual GShom invert (const GSDD & ) const {
+
516  // default = raise assert
+
517  if ( is_selector() ) {
+
518  // A default implmentation is provided for selector homomorphisms, overloadable.
+
519  // sel^-1 (s) = pot - sel(pot) + s = ((pot-sel(pot)) + id)
+
520  // return ( (pot - GShom(this)(pot))+ GShom::id );
+
521  // NEW VERSION : the invert of a selection is itself...
+
522  return this;
+
523  }
+
524  // No default implem if ! is_selector
+
525  std::cerr << "Cannot invert homomorphism : " ;
+
526  print (std::cerr);
+
527  std::cerr << std::endl ;
+
528  assert(0);
+
529  return Shom::null;
+
530  }
+
531 
+
532 };
+
533 
+
542 class StrongShom : public _GShom
+
543 {
+
544 public:
+
547  StrongShom(): _GShom(0) {};
+
550  virtual ~StrongShom(){};
+
554  virtual GSDD phiOne() const{return GSDD::top;};
+
559  virtual GShom phi(int var,const DataSet& val) const=0;
+
561  virtual bool operator==(const StrongShom &h) const=0;
+
565  bool operator==(const _GShom &h) const;
+
566 
+
568  virtual void print (std::ostream & os) const ;
+
569 
+
576  GSDD eval(const GSDD &)const;
+
577 
+
578  virtual GSDD has_image (const GSDD & d) const ;
+
579 
+
580 };
+
581 
+
582 class MyGShom : public _GShom{};
+
583 
+
584 #endif /* SHOM_H_ */
+ + + +
GShom extractPotential(int var)
Extract the domain of a given variable.
Definition: SHom.cpp:3304
+
GShom apply2k(const GSDD &)
Apply a 2 level DDD representing a transition relation to current variable.
Definition: SHom.cpp:3292
+
GShom operator^(const GSDD &, const GShom &)
Left Concatenation of a constant SDD.
Definition: SHom.cpp:3225
+
GShom operator&(const GShom &, const GShom &)
Composition by circ (rond) of homomorphisms.
Definition: SHom.cpp:3170
+
GShom operator-(const GShom &, const GSDD &)
Set difference.
Definition: SHom.cpp:3233
+
GShom localApply(const GHom &, int target)
Apply a homomorphism on a target variable.
Definition: SHom.cpp:2945
+
GShom fixpoint(const GShom &, bool is_top_level=false)
Apply a homomorphism until fixpoint is reached.
Definition: SHom.cpp:2828
+
GShom ITE(const GShom &cond, const GShom &iftrue, const GShom &iffalse)
An IF-THEN-ELSE construct.
Definition: SHom.cpp:3256
+
GShom operator+(const GShom &, const GShom &)
Composition by union of two homomorphisms.
Definition: SHom.cpp:3203
+
GShom operator!(const GShom &cond)
A negation/complement constructor for selector homomophisms.
Definition: SHom.cpp:3267
+
GShom operator*(const GSDD &, const GShom &)
Intersection with a constant SDD.
Definition: SHom.cpp:3217
+
This class is an abstraction of a set of data.
Definition: DataSet.h:44
+
This class is the base class representing a homomorphism over DDD.
Definition: Hom.h:55
+
This class is the base class representing a hierarchical Set Decision Diagram.
Definition: SDD.h:49
+
static const GSDD top
The approximation terminal.
Definition: SDD.h:140
+
This class is the base class for Homomorphisms over SDD.
Definition: SHom.h:57
+
GShom(_GShom *_h)
THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote ...
+
bool operator!=(const GShom &h) const
Definition: SHom.h:147
+
bool operator<(const GShom &h) const
Definition: SHom.h:148
+
friend GShom fixpoint(const GShom &, bool is_top_level)
Apply a homomorphism until fixpoint is reached.
Definition: SHom.cpp:2828
+
static fixpointStrategy fixpointStrategy_
Definition: SHom.h:215
+
const _GShom * concret
Pointer to the data instance in the unicity table.
Definition: SHom.h:88
+
bool operator==(const GShom &h) const
Definition: SHom.h:146
+
bool is_selector() const
This predicate is true if the homomorphism global behavior is only to prune some paths.
Definition: SHom.cpp:2790
+
friend class Shom
Open access to concret for Shom class.
Definition: SHom.h:60
+
GSDD NodeType
Definition: SHom.h:90
+
GShom compose(const GShom &) const
Definition: SHom.cpp:2681
+
saturationStrategy
Definition: SHom.h:212
+
@ RECFIREANDSAT
Definition: SHom.h:212
+
@ ORDINARY
Definition: SHom.h:212
+
friend GShom operator^(const GSDD &, const GShom &)
Left Concatenation of a constant SDD.
Definition: SHom.cpp:3225
+
friend GShom operator&(const GShom &, const GShom &)
Composition by circ (rond) of homomorphisms.
Definition: SHom.cpp:3170
+
friend GShom operator-(const GShom &, const GSDD &)
Set difference.
Definition: SHom.cpp:3233
+
GShom()
Default constructor builds identity homomorphism.
Definition: SHom.h:94
+
friend GShom localApply(const GHom &, int target)
Apply a homomorphism on a target variable.
Definition: SHom.cpp:2945
+
static void setFixpointStrategy(fixpointStrategy strat)
Definition: SHom.h:220
+
static GShom add(const d3::set< GShom >::type &s)
Compute an n-ary sum between homomorphisms.
+
static size_t cache_size()
Return the current size of the cache for GShom.
Definition: SHom.cpp:2700
+
fixpointStrategy
Definition: SHom.h:211
+
@ BFS
Definition: SHom.h:211
+
@ DFS
Definition: SHom.h:211
+
static void setSaturationStrategy(saturationStrategy strat)
Definition: SHom.h:223
+
const range_t get_range() const
Returns the range for this homomorphism, i.e. the dual of skip_variable.
Definition: SHom.cpp:2801
+
static unsigned int statistics()
Return the current size of the unicity table for GShom.
Definition: SHom.cpp:2696
+
GSDD has_image(const GSDD &d) const
returns true if and only if h(d) != SDD::null
Definition: SHom.cpp:2664
+
static void garbage()
Collects and destroys unused homomorphisms.
Definition: SHom.cpp:2716
+
d3::set< int >::type range_t
Definition: SHom.h:154
+
int refCounter() const
For debug and development purposes. Gives the reference count of the concrete data.
Definition: SHom.cpp:2685
+
static saturationStrategy saturationStrategy_
Definition: SHom.h:216
+
static fixpointStrategy getFixpointStrategy()
Definition: SHom.h:219
+
bool skip_variable(int) const
This predicate is true if the homomorphism "skips" this variable.
Definition: SHom.cpp:2794
+
range_t::const_iterator range_it
Definition: SHom.h:155
+
static void pstats(bool reinit=true)
Print some usage statistics on Shom.
Definition: SHom.cpp:3336
+
static const GShom id
Elementary SDD homomorphism identity. Applied to any SDD d, it returns d.
Definition: SHom.h:132
+
GSDD operator()(const GSDD &d) const
Applying a homomorphism to a node returns a node.
Definition: SHom.cpp:2651
+
static saturationStrategy getSaturationStrategy()
Definition: SHom.h:222
+
void mark() const
Mark a concrete data as in use (forbids garbage collection of the data).
Definition: SHom.cpp:2709
+
friend std::ostream & operator<<(std::ostream &os, const GShom &h)
Definition: SHom.cpp:3365
+
static const range_t full_range
The full_range : that targets everyone.
Definition: SHom.h:159
+
friend GShom operator+(const GShom &, const GShom &)
Composition by union of two homomorphisms.
Definition: SHom.cpp:3203
+
friend GShom add(const d3::set< GShom >::type &)
Definition: SHom.cpp:3039
+
static size_t cache_peak()
Return the peak size of the cache for GShom.
Definition: SHom.cpp:2704
+
GShom invert(const GSDD &pot) const
returns the predescessor homomorphism, using pot to determine variable domains
Definition: SHom.cpp:2677
+
size_t hash() const
For storage in a hash table.
Definition: SHom.h:199
+
GSDD eval(const GSDD &d) const
The full evaluation, this is the computational procedure, that is called when the computation cache y...
Definition: SHom.cpp:2672
+
friend GShom operator*(const GSDD &, const GShom &)
Intersection with a constant SDD.
Definition: SHom.cpp:3217
+
Definition: MLSHom.h:14
+
Definition: SHom.h:582
+
This is the user interface class to manipulate homomorphisms.
Definition: SHom.h:324
+
static const Shom null
Definition: SHom.h:349
+
Shom & operator=(const GShom &)
Overloaded behavior for assignment operator, maintains reference counting.
Definition: SHom.cpp:2781
+
~Shom()
Destructor maintains reference counting.
Definition: SHom.cpp:2766
+
The abstract base class for user defined operations.
Definition: SHom.h:543
+
virtual GSDD has_image(const GSDD &d) const
Definition: SHom.cpp:2548
+
StrongShom()
Default constructor.
Definition: SHom.h:547
+
virtual GShom phi(int var, const DataSet &val) const =0
Evaluation over an arbitrary arc of a SDD.
+
virtual void print(std::ostream &os) const
pretty print
Definition: SHom.cpp:2585
+
virtual ~StrongShom()
Default destructor.
Definition: SHom.h:550
+
virtual GSDD phiOne() const
Evaluation over terminal GSDD::one.
Definition: SHom.h:554
+
GSDD eval(const GSDD &) const
The evaluation mechanism of strong homomorphisms.
Definition: SHom.cpp:2567
+
virtual bool operator==(const StrongShom &h) const =0
Comparator is pure virtual. Define a behavior in user homomorphisms.
+
The concrete data class for Homomorphisms.
Definition: SHom.h:381
+
virtual size_t hash() const =0
Hash key computation.
+
void set_mark(bool val) const
Definition: SHom.h:488
+
virtual void mark() const
For garbage collection. Used in first phase of garbage collection.
Definition: SHom.h:464
+
virtual bool is_selector() const
The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modification...
Definition: SHom.h:423
+
void ref() const
Definition: SHom.h:472
+
virtual GShom compose(const GShom &) const
Definition: SHom.cpp:2521
+
_GShom(int ref=0)
Constructor.
Definition: SHom.h:436
+
virtual GSDD eval(const GSDD &) const =0
The computation function responsible for evaluation over a node.
+
virtual GShom invert(const GSDD &) const
Definition: SHom.h:515
+
virtual bool immediat() const
For operation cache management.
Definition: SHom.h:405
+
bool is_marked() const
Definition: SHom.h:484
+
virtual bool skip_variable(int) const
The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.
Definition: SHom.h:415
+
virtual bool operator==(const _GShom &h) const =0
Comparator.
+
virtual void print(std::ostream &os) const =0
+
virtual _GShom * clone() const =0
+
static const _GShom * get_concret(const GShom &gshom)
TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc....
Definition: SHom.h:509
+
virtual const GShom::range_t get_range() const
The range returns the dual of skip_variable, default implem considers that all variables are affected...
Definition: SHom.h:429
+
GSDD has_image_skip(const GSDD &) const
Definition: SHom.cpp:2356
+
unsigned long int refCounter() const
Definition: SHom.h:480
+
virtual GSDD has_image(const GSDD &d) const
Definition: SHom.cpp:2347
+
int _refCounter
For garbage collection.
Definition: SHom.h:394
+
void mark_if_refd() const
Definition: SHom.h:466
+
virtual ~_GShom()
Destructor.
Definition: SHom.h:439
+
void deref() const
Definition: SHom.h:476
+
GSDD eval_skip(const GSDD &) const
The procedure responsible for propagating efficiently across "skipped" variable nodes.
Definition: SHom.cpp:2381
+
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73
+
Definition: DDD.h:340
+ +
std::set< Key, Compare, Allocator > type
Definition: set.hh:18
+
bool operator()(const GShom &g1, const GShom &g2) const
Definition: SHom.h:370
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/UniqueTableId_8hh.html b/libddd.html/UniqueTableId_8hh.html new file mode 100644 index 000000000..04b068da8 --- /dev/null +++ b/libddd.html/UniqueTableId_8hh.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: UniqueTableId.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
UniqueTableId.hh File Reference
+
+
+
#include <cassert>
+#include <vector>
+#include "ddd/util/configuration.hh"
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/hash_set.hh"
+
+Include dependency graph for UniqueTableId.hh:
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + +

+Classes

class  UniqueTableId< T, ID >
 Requirements on the contained type are to be cloneable, hashable and equality comparable. More...
 
struct  UniqueTableId< T, ID >::id_hash
 
struct  UniqueTableId< T, ID >::id_compare
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/UniqueTableId_8hh__dep__incl.map b/libddd.html/UniqueTableId_8hh__dep__incl.map new file mode 100644 index 000000000..971e728c8 --- /dev/null +++ b/libddd.html/UniqueTableId_8hh__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/UniqueTableId_8hh__dep__incl.md5 b/libddd.html/UniqueTableId_8hh__dep__incl.md5 new file mode 100644 index 000000000..9ef88ea45 --- /dev/null +++ b/libddd.html/UniqueTableId_8hh__dep__incl.md5 @@ -0,0 +1 @@ +ed720e0c952d3d596bae43fa5609c6ce \ No newline at end of file diff --git a/libddd.html/UniqueTableId_8hh__dep__incl.png b/libddd.html/UniqueTableId_8hh__dep__incl.png new file mode 100644 index 000000000..b2e977eb7 Binary files /dev/null and b/libddd.html/UniqueTableId_8hh__dep__incl.png differ diff --git a/libddd.html/UniqueTableId_8hh__incl.map b/libddd.html/UniqueTableId_8hh__incl.map new file mode 100644 index 000000000..a82483dbf --- /dev/null +++ b/libddd.html/UniqueTableId_8hh__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/UniqueTableId_8hh__incl.md5 b/libddd.html/UniqueTableId_8hh__incl.md5 new file mode 100644 index 000000000..e90290309 --- /dev/null +++ b/libddd.html/UniqueTableId_8hh__incl.md5 @@ -0,0 +1 @@ +fe1ef6f9f2e33ef2b62121e1f42c9dda \ No newline at end of file diff --git a/libddd.html/UniqueTableId_8hh__incl.png b/libddd.html/UniqueTableId_8hh__incl.png new file mode 100644 index 000000000..21f64b928 Binary files /dev/null and b/libddd.html/UniqueTableId_8hh__incl.png differ diff --git a/libddd.html/UniqueTableId_8hh_source.html b/libddd.html/UniqueTableId_8hh_source.html new file mode 100644 index 000000000..d95815a6f --- /dev/null +++ b/libddd.html/UniqueTableId_8hh_source.html @@ -0,0 +1,417 @@ + + + + + + + +DDD: UniqueTableId.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
UniqueTableId.hh
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef UNIQUETABLE_ID_H
+
25 #define UNIQUETABLE_ID_H
+
26 
+
27 #include <cassert>
+
28 #include <vector>
+ +
30 #include "ddd/util/hash_support.hh"
+
31 #include "ddd/util/hash_set.hh"
+
32 
+
33 // the clone contract
+
34 
+
45 
+
48 // Additional contract requirements for the stored type T :
+
49 // it should be cloneable. Implement clone in class C by :
+
50 // return new C(*this);
+
51 
+
52 
+
53 
+
55 template<typename T, typename ID>
+ +
57  typedef ID id_t;
+
58 
+
59  // To hash compare id's. id 0 is used as temporary id for comparisons.
+
60  // hash value is given by the contents of unique object.
+
61  // Unique objects T must implement : size_t hash () const;
+
62  struct id_hash {
+
63  size_t operator()(const id_t & id) const{
+
64  if (!id) return 0;
+
65  return UniqueTableId::instance().resolve(id)->hash();
+
66  }
+
67  };
+
68 
+
69  // To compare id's. id 0 is used as temporary id for comparisons.
+
70  // compare value is given by the contents of unique object.
+
71  // Unique objects T must implement : bool operator == (const T & other) const;
+
72  struct id_compare {
+
73  bool operator()(const id_t & id1,const id_t & id2) const{
+
74  if (id1==0 || id2 == 0) {
+
75  // deleted key
+
76  return false;
+
77  }
+ +
79  }
+
80  };
+
81 
+
82 
+ +
89  typedef typename std::vector<const T*> indexes_t;
+
92  typedef typename google::sparsetable<id_t> refs_t;
+
94  typedef std::vector<bool> marks_t;
+
95 
+
97  table_t table; // Unique table of unique objects
+
99  indexes_t index; // Index table of unique objects
+ + + +
108  // basic stats counter
+
109  size_t peak_size_;
+
110 
+
112  void push (const id_t & id) {
+
113  // std::cerr << "b4 push (" <<id << ")"; print_free_list(std::cerr);
+
114  // chain head behind id
+
115  index[id] =((const T*) ((size_t)head));
+
116  // set head to id
+
117  head = id;
+
118  // std::cerr << "after push (" <<id << ")"; print_free_list(std::cerr);
+
119  }
+
120 
+ +
124  if (head == 0) {
+
125  id_t ret = index.size();
+
126  index.push_back(NULL);
+
127  marks.push_back(false);
+
128  return ret;
+
129  } else {
+
130  id_t ret = head;
+
131  head = (size_t) index[head];
+
132  marks[ret] = false;
+
133  return ret;
+
134  }
+
135  }
+
136 
+
137  void print_free_list(std::ostream & os) const {
+
138  id_t pos = head;
+
139  os << "free list ";
+
140  while (pos != 0) {
+
141  os << pos << " ";
+
142  pos = (size_t) index[pos];
+
143  if (pos != 0) {
+
144  os << "," ;
+
145  }
+
146  }
+
147  os << std::endl;
+
148  }
+
149 
+
150  void print_table(std::ostream & os) const {
+
151  os << "table ";
+
152  for(table_it di=begin() ; di!= end(); /* in loop */){
+
153  id_t id = *di;
+
154  ++di;
+
155  os << id << " ";
+
156  if (di != end()) {
+
157  os << ",";
+
158  } else {
+
159  break;
+
160  }
+
161  }
+
162  os << std::endl;
+
163  }
+
164 
+
165  void print_marked(std::ostream & os) const {
+
166  os << "marked : ";
+
167  for(size_t i = 0 ; i < index.size() ; i++) {
+
168  if (marks[i]) {
+
169  os << i << " ";
+
170  }
+
171  }
+
172  os << std::endl;
+
173  }
+
174 
+
175 
+
176 public:
+
177 
+
178  // mark an entry to be kept
+
179  void mark (const id_t & id) {
+
180  if (! marks[id]) {
+
181  marks[id] = true;
+
182  resolve(id)->mark();
+
183  }
+
184  }
+
185 
+
186  // reference a unique object.
+
187  // refs are used as heads for mark & sweep
+
188  void ref (const id_t & id) {
+
189  // make sure sparse table is large enough
+
190  if (refs.size() <= id) {
+
191  // exponential may be a bit too much
+
192  refs.resize((3*id)/2);
+
193  assert( refs.size() > id);
+
194  }
+
195 
+
196  // test is true if ref count != 0
+
197  if (refs.test(id)) {
+
198  // increment
+
199  refs.set(id,refs.get(id)+1);
+
200  } else {
+
201 // std::cerr << "ref " << id << std::endl;
+
202  // set to 1
+
203  refs.set(id,1);
+
204  }
+
205  }
+
206 
+
207  // dereference an object.
+
208  // when refcount is 0, the object is collectible unless it gets marked during mark&sweep.
+
209  void deref (const id_t & id) {
+
210  // assume refcount was > 0
+
211  assert(refs.test(id));
+
212  id_t refc = refs.get(id);
+
213  if (refc==1) {
+
214 // std::cerr << "deref " << id << std::endl;
+
215  // set to 0 = erase refcount
+
216  refs.erase(id);
+
217  } else {
+
218  // decrement
+
219  refs.set(id, refc-1);
+
220  }
+
221  }
+
222 
+
223  typedef typename table_t::const_iterator table_it;
+
224 
+
225  table_it begin() const { return table.begin() ; }
+
226  table_it end() const { return table.end() ; }
+
227 
+
228 
+
229  static UniqueTableId & instance () {
+
230  static UniqueTableId * const single_ = new UniqueTableId();
+
231  return *single_;
+
232  }
+
233 
+
236  UniqueTableId(size_t s=4096):
+
237  table (s), head(0),peak_size_(0)
+
238  {
+
239  index.reserve(s);
+
240  // position 0 is used for deleted key marker
+
241  index.push_back(NULL);
+
242  table.set_deleted_key(0);
+
243  // position 1 is reserved for hash comparisons of temporary objects.
+
244  index.push_back(NULL);
+
245  refs.resize(s);
+
246  // so that marks and index always have congruent sizes.
+
247  marks.reserve(s);
+
248  marks.push_back(false);
+
249  marks.push_back(false);
+
250  }
+
251 
+
252 
+
253  const T * resolve (const id_t & id) const {
+
254  return index[id];
+
255  }
+
256 
+
257 /* Canonical */
+
262  id_t
+
263  operator()(const T &_g)
+
264  {
+
265  const int tmpid = 1;
+
266  // temporary store of object at index 0
+
267  index[tmpid]=&_g;
+
268  // look for object identical to the one at id 0
+
269  typename table_t::const_iterator it = table.find (tmpid);
+
270  // whatever happens, free index 0
+
271  index[tmpid]=NULL;
+
272 
+
273  if (it != table.end()) {
+
274  // a hit, return the index found in table
+
275  return *it;
+
276  } else {
+
277  // copy object to unique table storage memory space.
+
278  // this step takes ownership for the memory, any deallocations must be done through "remove"
+
279  T * clone = unique::clone<T>() (_g);
+
280 
+
281  id_t id = next_id();
+
282  index[id] = clone;
+
283 
+
284  std::pair<typename table_t::iterator, bool> ref=table.insert(id);
+
285  assert(ref.second);
+
286  ((void)ref);
+
287 // access->second = id;
+
288  return id;
+
289  }
+
290  }
+
291 
+
293  size_t
+
294  size() const
+
295  {
+
296  return table.size();
+
297  }
+
298 
+
299  size_t peak_size () {
+
300  size_t siz = size();
+
301  if (siz > peak_size_)
+
302  peak_size_=siz;
+
303  return peak_size_;
+
304  }
+
305 
+
306  void garbage () {
+
307  peak_size();
+
308  // currently mark and sweep mode.
+
309 
+
310  // print_table(std::cerr);
+
311  // print_free_list(std::cerr);
+
312  // print_marked(std::cerr);
+
313 
+
314  // mark phase
+
315  // iterate over refcounted entries only
+
316  for (typename refs_t::nonempty_iterator it = refs.nonempty_begin() ; it != refs.nonempty_end() ; ++it ) {
+
317  id_t id = refs.get_pos(it);
+
318  mark(id);
+
319  }
+
320  // std::cerr << "after mark ref'd : " ; print_marked(std::cerr);
+
321 
+
322  table_t newtable (table.size()*2);
+
323  newtable.set_deleted_key(0);
+
324  // sweep phase
+
325  for(table_it di=begin() ; di!= end();/*++ done in loop*/ ){
+
326  id_t id = *di;
+
327  // to avoid corruption if deleted
+
328 // table_it ci = di;
+
329  ++di;
+
330  if (id==0) {
+
331  continue;
+
332  }
+
333  // if not marked
+
334  if (! marks[id] ) {
+
335  // kill it
+
336  // mark an entry for deletion, the id should not be used again,
+
337 // table.erase(ci);
+
338  // free memory allocated by clone
+
339  delete (T*) index[id];
+
340  // id may be recycled to designate something else.
+
341  push(id);
+
342  } else {
+
343  newtable.insert(id);
+
344  }
+
345  marks[id] = false;
+
346  }
+
347  // cleanup
+
348  table = newtable;
+
349 
+
350 // print_table(std::cerr);
+
351 // print_free_list(std::cerr);
+
352 
+
353  }
+
354 
+
355 
+
356 #ifdef HASH_STAT
+
357  std::map<std::string, size_t> get_hits() const { return table.get_hits(); }
+
358  std::map<std::string, size_t> get_misses() const { return table.get_misses(); }
+
359  std::map<std::string, size_t> get_bounces() const { return table.get_bounces(); }
+
360 #endif // HASH_STAT
+
361 };
+
362 
+
363 #endif
+
Requirements on the contained type are to be cloneable, hashable and equality comparable.
Definition: UniqueTableId.hh:56
+
google::sparsetable< id_t > refs_t
a sparse table holding refcounts for ref'd objects.
Definition: UniqueTableId.hh:92
+
const T * resolve(const id_t &id) const
Definition: UniqueTableId.hh:253
+
UniqueTableId(size_t s=4096)
Provide an initial size for both hash and index tables.
Definition: UniqueTableId.hh:236
+
d3::hash_set< id_t, id_hash, id_compare >::type table_t
Typedef helps hide implementation type.
Definition: UniqueTableId.hh:86
+
refs_t refs
The reference counters for ref'd nodes. It is a sparse table that only stores values for non-zero ent...
Definition: UniqueTableId.hh:105
+
table_it begin() const
Definition: UniqueTableId.hh:225
+
void ref(const id_t &id)
Definition: UniqueTableId.hh:188
+
size_t peak_size()
Definition: UniqueTableId.hh:299
+
static UniqueTableId & instance()
Definition: UniqueTableId.hh:229
+
size_t peak_size_
Definition: UniqueTableId.hh:109
+
void garbage()
Definition: UniqueTableId.hh:306
+
void print_table(std::ostream &os) const
Definition: UniqueTableId.hh:150
+
void print_marked(std::ostream &os) const
Definition: UniqueTableId.hh:165
+
std::vector< const T * > indexes_t
The Indexes table stores the id to (unique) T* map.
Definition: UniqueTableId.hh:89
+
id_t head
The free list is stored hidden in the free space of the index table.
Definition: UniqueTableId.hh:103
+
void mark(const id_t &id)
Definition: UniqueTableId.hh:179
+
id_t next_id()
return the next free id, either collected from free_list or the newly allocated last position of the ...
Definition: UniqueTableId.hh:123
+
indexes_t index
The actual index table, resolution of object from Id is done with this.
Definition: UniqueTableId.hh:99
+
marks_t marks
The marking entries, a bitset.
Definition: UniqueTableId.hh:107
+
table_it end() const
Definition: UniqueTableId.hh:226
+
table_t::const_iterator table_it
Definition: UniqueTableId.hh:223
+
void print_free_list(std::ostream &os) const
Definition: UniqueTableId.hh:137
+
ID id_t
Definition: UniqueTableId.hh:57
+
void deref(const id_t &id)
Definition: UniqueTableId.hh:209
+
id_t operator()(const T &_g)
The application operator, returns the address of the value already in the table if it exists,...
Definition: UniqueTableId.hh:263
+
size_t size() const
Returns the current number of filled entries in the table.
Definition: UniqueTableId.hh:294
+
table_t table
The actual table, operations on the UniqueTable are delegated on this.
Definition: UniqueTableId.hh:97
+
void push(const id_t &id)
add a node to free list
Definition: UniqueTableId.hh:112
+
std::vector< bool > marks_t
A bitset to store marks on objects used for mark&sweep.
Definition: UniqueTableId.hh:94
+ + + +
Definition: UniqueTableId.hh:72
+
bool operator()(const id_t &id1, const id_t &id2) const
Definition: UniqueTableId.hh:73
+
Definition: UniqueTableId.hh:62
+
size_t operator()(const id_t &id) const
Definition: UniqueTableId.hh:63
+
google::sparse_hash_set< Key, Hash, Compare, Allocator > type
Definition: hash_set.hh:24
+
Definition: hash_support.hh:230
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/UniqueTable_8h.html b/libddd.html/UniqueTable_8h.html new file mode 100644 index 000000000..af8f8a7cf --- /dev/null +++ b/libddd.html/UniqueTable_8h.html @@ -0,0 +1,120 @@ + + + + + + + +DDD: UniqueTable.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes
+
+
UniqueTable.h File Reference
+
+
+
#include <cassert>
+#include <vector>
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/hash_set.hh"
+
+Include dependency graph for UniqueTable.h:
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  UniqueTable< T >
 This class implements a unicity table mechanism, based on an STL hash_set. More...
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/UniqueTable_8h__dep__incl.map b/libddd.html/UniqueTable_8h__dep__incl.map new file mode 100644 index 000000000..013bd6e42 --- /dev/null +++ b/libddd.html/UniqueTable_8h__dep__incl.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/UniqueTable_8h__dep__incl.md5 b/libddd.html/UniqueTable_8h__dep__incl.md5 new file mode 100644 index 000000000..1d97360b4 --- /dev/null +++ b/libddd.html/UniqueTable_8h__dep__incl.md5 @@ -0,0 +1 @@ +27fd4d6968f0e0e93cc5d07e3ea2e2b7 \ No newline at end of file diff --git a/libddd.html/UniqueTable_8h__dep__incl.png b/libddd.html/UniqueTable_8h__dep__incl.png new file mode 100644 index 000000000..d351b8ad3 Binary files /dev/null and b/libddd.html/UniqueTable_8h__dep__incl.png differ diff --git a/libddd.html/UniqueTable_8h__incl.map b/libddd.html/UniqueTable_8h__incl.map new file mode 100644 index 000000000..edd551dc1 --- /dev/null +++ b/libddd.html/UniqueTable_8h__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/UniqueTable_8h__incl.md5 b/libddd.html/UniqueTable_8h__incl.md5 new file mode 100644 index 000000000..d7b427719 --- /dev/null +++ b/libddd.html/UniqueTable_8h__incl.md5 @@ -0,0 +1 @@ +16bda4204344f9f82034bdb7d72f73d8 \ No newline at end of file diff --git a/libddd.html/UniqueTable_8h__incl.png b/libddd.html/UniqueTable_8h__incl.png new file mode 100644 index 000000000..71c636e87 Binary files /dev/null and b/libddd.html/UniqueTable_8h__incl.png differ diff --git a/libddd.html/UniqueTable_8h_source.html b/libddd.html/UniqueTable_8h_source.html new file mode 100644 index 000000000..e512c0e37 --- /dev/null +++ b/libddd.html/UniqueTable_8h_source.html @@ -0,0 +1,178 @@ + + + + + + + +DDD: UniqueTable.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
UniqueTable.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* */
+
8 /* This program is free software; you can redistribute it and/or modify */
+
9 /* it under the terms of the GNU Lesser General Public License as */
+
10 /* published by the Free Software Foundation; either version 3 of the */
+
11 /* License, or (at your option) any later version. */
+
12 /* This program is distributed in the hope that it will be useful, */
+
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
15 /* GNU LEsserGeneral Public License for more details. */
+
16 /* */
+
17 /* You should have received a copy of the GNU Lesser General Public License */
+
18 /* along with this program; if not, write to the Free Software */
+
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
20 /* */
+
21 /****************************************************************************/
+
22 
+
23 /* -*- C++ -*- */
+
24 #ifndef UNIQUETABLE_H
+
25 #define UNIQUETABLE_H
+
26 
+
27 #include <cassert>
+
28 #include <vector>
+
29 #include "ddd/util/hash_support.hh"
+
30 #include "ddd/util/hash_set.hh"
+
31 
+
32 
+
33 #ifdef REENTRANT
+
34 #include "tbb/queuing_mutex.h"
+
35 #include "tbb/mutex.h"
+
36 #endif
+
37 
+
38 
+
39 
+
42 template<typename T>
+ +
44 
+
45 private:
+
46 
+
47 #ifdef REENTRANT
+
48  // typedef tbb::queuing_mutex table_mutex_t;
+
49  typedef tbb::mutex table_mutex_t;
+
50  table_mutex_t table_mutex_;
+
51 #endif
+
52 
+
53 public:
+ +
56 #ifdef REENTRANT
+
57  :
+
58  table_mutex_()
+
59 #endif
+
60  {
+
61 #ifndef REENTRANT
+
62 #ifndef USE_STD_HASH
+
63  table.set_deleted_key(NULL);
+
64 #endif
+
65 #endif
+
66  }
+
67 
+
68  UniqueTable(size_t s):
+
69 #ifdef REENTRANT
+
70  table_mutex_(),
+
71 #endif
+
72  table (s)
+
73  {
+
74 #ifndef REENTRANT
+
75 #ifndef USE_STD_HASH
+
76  table.set_deleted_key(NULL);
+
77 #endif
+
78 #endif
+
79  }
+
80 
+ +
84  Table table; // Unique table of GDDD
+
85 
+
86 /* Canonical */
+
91  const T*
+
92  operator()(const T &_g)
+
93  {
+
94 #ifdef REENTRANT
+
95  table_mutex_t::scoped_lock lock(table_mutex_);
+
96 #endif
+
97 
+
98  typename Table::const_iterator it = table.find(&_g);
+
99  if (it != table.end() ) {
+
100  return *it;
+
101  } else {
+
102  T * clone = unique::clone<T>() (_g);
+
103  std::pair<typename Table::iterator, bool> ref=table.insert(clone);
+
104  assert(ref.second);
+
105  ((void)ref);
+
106  return clone;
+
107  }
+
108  }
+
109 
+
111  size_t
+
112  size() const
+
113  {
+
114  return table.size();
+
115  }
+
116 
+
117 #ifdef HASH_STAT
+
118  std::map<std::string, size_t> get_hits() const { return table.get_hits(); }
+
119  std::map<std::string, size_t> get_misses() const { return table.get_misses(); }
+
120  std::map<std::string, size_t> get_bounces() const { return table.get_bounces(); }
+
121 #endif // HASH_STAT
+
122 };
+
123 
+
124 #endif
+
This class implements a unicity table mechanism, based on an STL hash_set.
Definition: UniqueTable.h:43
+
d3::hash_set< const T * >::type Table
Typedef helps hide implementation type (currently gnu gcc's hash_set).
Definition: UniqueTable.h:82
+
Table table
The actual table, operations on the UniqueTable are delegated on this.
Definition: UniqueTable.h:84
+
const T * operator()(const T &_g)
The application operator, returns the address of the value already in the table if it exists,...
Definition: UniqueTable.h:92
+
size_t size() const
Returns the current number of filled entries in the table.
Definition: UniqueTable.h:112
+
UniqueTable()
Constructor, builds a default table.
Definition: UniqueTable.h:55
+
UniqueTable(size_t s)
Definition: UniqueTable.h:68
+ + +
google::sparse_hash_set< Key, Hash, Compare, Allocator > type
Definition: hash_set.hh:24
+
Definition: hash_support.hh:230
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/annotated.html b/libddd.html/annotated.html new file mode 100644 index 000000000..874e28328 --- /dev/null +++ b/libddd.html/annotated.html @@ -0,0 +1,208 @@ + + + + + + + +DDD: Class List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nconf
 Nd3
 Nfobs
 NnsMLHom
 NnsMLShom
 Nsns
 Nstd
 Nunique
 C_DED
 C_DED_Add
 C_DED_Concat
 C_DED_Hom
 C_DED_Minus
 C_DED_Mult
 C_GDDD
 C_GHomThe concrete data class for Homomorphisms
 C_GSDD
 C_GShomThe concrete data class for Homomorphisms
 C_incVar
 C_MLHom
 C_MLShom
 C_SDED
 C_SDED_Add
 C_SDED_Concat
 C_SDED_Minus
 C_SDED_Mult
 C_setVarConst
 C_VarCompState
 C_VarCompVar
 CAdd
 CAdditiveMap
 CAndA commutative composition of n homomorphisms
 CApply2k
 CCache
 CCompose
 CConstant
 CDataSetThis class is an abstraction of a set of data
 CDDDThis class is the public interface for manipulating Data Decision Diagrams
 CDomExtractExtractor of variable domains for invert computations
 CdotExporter
 CdotHighlightMore evolved API for highlighting parts of a graph
 Cext_hash_map
 CFixpoint
 CGCHook
 CGDDDThis class is the base class representing a Data Decision Diagram
 CGHomThis class is the base class representing a homomorphism over DDD
 CGSDDThis class is the base class representing a hierarchical Set Decision Diagram
 CGShomThis class is the base class for Homomorphisms over SDD
 Chash_map
 ChDotExporter
 CHomThis is the user interface class to manipulate homomorphisms
 CIdentity
 CIntDataSetThis class is a very basic implementation of DataSet interface based on std::std::vector<int> and a unicity table
 CInter
 CLeftConcat
 CMemoryManagerThis class defines a few utility functions common to DDD
 CMinus
 CMLCache
 CMLHom
 CMLHomAdapter
 CMLShom
 CMonotonic
 CMult
 CMyGHomUnknown function for this class
 CMyGShom
 CMyNbStates
 CMySDDNbStates
 CMySize
 CNotCond
 CRightConcat
 CSDDThis class is the public interface for manipulating Data Decision Diagrams
 CSddSize
 CShomThis is the user interface class to manipulate homomorphisms
 CStatistic
 CStrongHomThe abstract base class for user defined operations
 CStrongMLHom
 CStrongMLShom
 CStrongShomThe abstract base class for user defined operations
 CUniqueTableThis class implements a unicity table mechanism, based on an STL hash_set
 CUniqueTableIdRequirements on the contained type are to be cloneable, hashable and equality comparable
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/bc_s.png b/libddd.html/bc_s.png new file mode 100644 index 000000000..224b29aa9 Binary files /dev/null and b/libddd.html/bc_s.png differ diff --git a/libddd.html/bdwn.png b/libddd.html/bdwn.png new file mode 100644 index 000000000..940a0b950 Binary files /dev/null and b/libddd.html/bdwn.png differ diff --git a/libddd.html/classAdd-members.html b/libddd.html/classAdd-members.html new file mode 100644 index 000000000..642043992 --- /dev/null +++ b/libddd.html/classAdd-members.html @@ -0,0 +1,90 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Add Member List
+
+
+ +

This is the complete list of members for Add, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
Add(const std::set< GHom > &param, int ref=0)Addinline
clone() constAddinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constAddinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_have_id() constAddinline
get_parameters()Addinline
get_partition(int var) constAddinline
get_range() constAddinlinevirtual
has_image(const GDDD &d) constAddinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constAddinlinevirtual
have_idAdd
immediat_GHommutableprivate
invert(const GDDD &pot) constAddinlinevirtual
is_selector() constAddinlinevirtual
mark() constAddinlinevirtual
marking_GHommutableprivate
negate() constAddinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constAddinlinevirtual
param_it typedefAdd
param_t typedefAdd
parametersAdd
partition typedefAdd
partition_cacheAddmutable
partition_cache_type typedefAdd
print(std::ostream &os) constAddinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constAddinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAdd.html b/libddd.html/classAdd.html new file mode 100644 index 000000000..57a39ead6 --- /dev/null +++ b/libddd.html/classAdd.html @@ -0,0 +1,1052 @@ + + + + + + + +DDD: Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
Add Class Reference
+
+
+
+Inheritance diagram for Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Add:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + +

+Public Types

typedef std::vector< GHomparam_t
 
typedef param_t::const_iterator param_it
 
typedef std::pair< GHom, std::set< GHom > > partition
 
typedef std::map< int, partitionpartition_cache_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Add (const std::set< GHom > &param, int ref=0)
 
bool get_have_id () const
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD has_image (const GDDD &d) const
 
param_tget_parameters ()
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
partition get_partition (int var) const
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
_GHomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + + + + + +

+Public Attributes

param_t parameters
 
partition_cache_type partition_cache
 
bool have_id
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Member Typedef Documentation

+ +

◆ param_it

+ +
+
+ + + + +
typedef param_t::const_iterator Add::param_it
+
+ +
+
+ +

◆ param_t

+ +
+
+ + + + +
typedef std::vector<GHom> Add::param_t
+
+ +
+
+ +

◆ partition

+ +
+
+ + + + +
typedef std::pair< GHom , std::set<GHom> > Add::partition
+
+ +
+
+ +

◆ partition_cache_type

+ +
+
+ + + + +
typedef std::map<int,partition> Add::partition_cache_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Add()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Add::Add (const std::set< GHom > & param,
int ref = 0 
)
+
+inline
+
+ +

References _GHom::get_concret(), and parameters.

+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Add::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Add().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Add::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::null, GDDD::one, parameters, partition_cache, skip_variable(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_have_id()

+ +
+
+ + + + + +
+ + + + + + + +
bool Add::get_have_id () const
+
+inline
+
+ +

References GHom::id, and parameters.

+ +
+
+ +

◆ get_parameters()

+ +
+
+ + + + + +
+ + + + + + + +
param_t& Add::get_parameters ()
+
+inline
+
+ +

References parameters.

+ +
+
+ +

◆ get_partition()

+ +
+
+ + + + + +
+ + + + + + + + +
partition Add::get_partition (int var) const
+
+inline
+
+ +

References partition_cache, and skip_variable().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t Add::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Add::has_image (const GDDDd) const
+
+inlinevirtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Add::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Add::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::add(), and parameters.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Add::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Add::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References parameters, and partition_cache.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom Add::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References GHom::ccompose(), and parameters.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Add::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Add::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Add::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References GHom::add(), _GHom::get_concret(), parameters, partition_cache, and _GHom::skip_variable().

+ +

Referenced by eval(), get_partition(), and has_image().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ have_id

+ +
+
+ + + + +
bool Add::have_id
+
+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + +
param_t Add::parameters
+
+
+ +

◆ partition_cache

+ +
+
+ + + + + +
+ + + + +
partition_cache_type Add::partition_cache
+
+mutable
+
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAdd__coll__graph.map b/libddd.html/classAdd__coll__graph.map new file mode 100644 index 000000000..d78a9b5fd --- /dev/null +++ b/libddd.html/classAdd__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classAdd__coll__graph.md5 b/libddd.html/classAdd__coll__graph.md5 new file mode 100644 index 000000000..ce6df9202 --- /dev/null +++ b/libddd.html/classAdd__coll__graph.md5 @@ -0,0 +1 @@ +6a51fb614d53430401fb8a8f1b733214 \ No newline at end of file diff --git a/libddd.html/classAdd__coll__graph.png b/libddd.html/classAdd__coll__graph.png new file mode 100644 index 000000000..4b15cc438 Binary files /dev/null and b/libddd.html/classAdd__coll__graph.png differ diff --git a/libddd.html/classAdd__inherit__graph.map b/libddd.html/classAdd__inherit__graph.map new file mode 100644 index 000000000..d78a9b5fd --- /dev/null +++ b/libddd.html/classAdd__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classAdd__inherit__graph.md5 b/libddd.html/classAdd__inherit__graph.md5 new file mode 100644 index 000000000..ce6df9202 --- /dev/null +++ b/libddd.html/classAdd__inherit__graph.md5 @@ -0,0 +1 @@ +6a51fb614d53430401fb8a8f1b733214 \ No newline at end of file diff --git a/libddd.html/classAdd__inherit__graph.png b/libddd.html/classAdd__inherit__graph.png new file mode 100644 index 000000000..4b15cc438 Binary files /dev/null and b/libddd.html/classAdd__inherit__graph.png differ diff --git a/libddd.html/classAdditiveMap-members.html b/libddd.html/classAdditiveMap-members.html new file mode 100644 index 000000000..9fe8992a3 --- /dev/null +++ b/libddd.html/classAdditiveMap-members.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
AdditiveMap< K, V, EqualKey > Member List
+
+
+ +

This is the complete list of members for AdditiveMap< K, V, EqualKey >, including all inherited members.

+ + + + + + + + + + + + + + +
add(const K &key, const V &value)AdditiveMap< K, V, EqualKey >inline
addAll(const AdditiveMap< K, V > &other)AdditiveMap< K, V, EqualKey >inline
addAll(const_iterator begin, const_iterator end)AdditiveMap< K, V, EqualKey >inline
AdditiveMap()AdditiveMap< K, V, EqualKey >inline
begin() constAdditiveMap< K, V, EqualKey >inline
const_iterator typedefAdditiveMap< K, V, EqualKey >
end() constAdditiveMap< K, V, EqualKey >inline
find(const K &key)AdditiveMap< K, V, EqualKey >inline
iterator typedefAdditiveMap< K, V, EqualKey >
mapAdditiveMap< K, V, EqualKey >private
mapType typedefAdditiveMap< K, V, EqualKey >private
remove(const K &key, const V &value)AdditiveMap< K, V, EqualKey >inline
value_type typedefAdditiveMap< K, V, EqualKey >
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAdditiveMap.html b/libddd.html/classAdditiveMap.html new file mode 100644 index 000000000..63f1d9cd9 --- /dev/null +++ b/libddd.html/classAdditiveMap.html @@ -0,0 +1,488 @@ + + + + + + + +DDD: AdditiveMap< K, V, EqualKey > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Private Types | +Private Attributes | +List of all members
+
+
AdditiveMap< K, V, EqualKey > Class Template Reference
+
+
+ +

#include <AdditiveMap.hpp>

+
+Collaboration diagram for AdditiveMap< K, V, EqualKey >:
+
+
Collaboration graph
+ + + +
+ + + + + + + + +

+Public Types

typedef mapType::value_type value_type
 
typedef mapType::const_iterator const_iterator
 
typedef mapType::iterator iterator
 
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 AdditiveMap ()
 
const_iterator end () const
 
const_iterator begin () const
 
iterator find (const K &key)
 
int addAll (const AdditiveMap< K, V > &other)
 
int addAll (const_iterator begin, const_iterator end)
 
bool add (const K &key, const V &value)
 
bool remove (const K &key, const V &value)
 
+ + + +

+Private Types

typedef std::vector< std::pair< K, V > > mapType
 
+ + + +

+Private Attributes

mapType map
 
+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + +
typedef mapType::const_iterator AdditiveMap< K, V, EqualKey >::const_iterator
+
+ +
+
+ +

◆ iterator

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + +
typedef mapType::iterator AdditiveMap< K, V, EqualKey >::iterator
+
+ +
+
+ +

◆ mapType

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + +
typedef std::vector<std::pair<K,V> > AdditiveMap< K, V, EqualKey >::mapType
+
+private
+
+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + +
typedef mapType::value_type AdditiveMap< K, V, EqualKey >::value_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ AdditiveMap()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + +
AdditiveMap< K, V, EqualKey >::AdditiveMap ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool AdditiveMap< K, V, EqualKey >::add (const K & key,
const V & value 
)
+
+inline
+
+
+ +

◆ addAll() [1/2]

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + + +
int AdditiveMap< K, V, EqualKey >::addAll (const AdditiveMap< K, V > & other)
+
+inline
+
+
+ +

◆ addAll() [2/2]

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int AdditiveMap< K, V, EqualKey >::addAll (const_iterator begin,
const_iterator end 
)
+
+inline
+
+
+ +

◆ begin()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + +
const_iterator AdditiveMap< K, V, EqualKey >::begin () const
+
+inline
+
+
+ +

◆ end()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + +
const_iterator AdditiveMap< K, V, EqualKey >::end () const
+
+inline
+
+
+ +

◆ find()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + + +
iterator AdditiveMap< K, V, EqualKey >::find (const K & key)
+
+inline
+
+
+ +

◆ remove()

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool AdditiveMap< K, V, EqualKey >::remove (const K & key,
const V & value 
)
+
+inline
+
+
+

Member Data Documentation

+ +

◆ map

+ +
+
+
+template<typename K , typename V , typename EqualKey = d3::util::equal<K>>
+ + + + + +
+ + + + +
mapType AdditiveMap< K, V, EqualKey >::map
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAdditiveMap__coll__graph.map b/libddd.html/classAdditiveMap__coll__graph.map new file mode 100644 index 000000000..e4edb7c3d --- /dev/null +++ b/libddd.html/classAdditiveMap__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classAdditiveMap__coll__graph.md5 b/libddd.html/classAdditiveMap__coll__graph.md5 new file mode 100644 index 000000000..1e23e60eb --- /dev/null +++ b/libddd.html/classAdditiveMap__coll__graph.md5 @@ -0,0 +1 @@ +e5bc2e24beee634ae339fd8ee391a236 \ No newline at end of file diff --git a/libddd.html/classAdditiveMap__coll__graph.png b/libddd.html/classAdditiveMap__coll__graph.png new file mode 100644 index 000000000..81700c0d4 Binary files /dev/null and b/libddd.html/classAdditiveMap__coll__graph.png differ diff --git a/libddd.html/classAnd-members.html b/libddd.html/classAnd-members.html new file mode 100644 index 000000000..765338d78 --- /dev/null +++ b/libddd.html/classAnd-members.html @@ -0,0 +1,84 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
And Member List
+
+
+ +

This is the complete list of members for And, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
And(const std::set< GHom > &p, int ref=0)Andinline
And(const parameters_t &p, int ref=0)Andinline
clone() constAndinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constAndinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() constAndinlinevirtual
has_image(const GDDD &d) constAndinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constAndinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constAndinlinevirtual
is_selector() constAndinlinevirtual
mark() constAndinlinevirtual
marking_GHommutableprivate
negate() constAndinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constAndinlinevirtual
parametersAnd
parameters_it typedefAnd
parameters_t typedefAnd
print(std::ostream &os) constAndinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constAndinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAnd.html b/libddd.html/classAnd.html new file mode 100644 index 000000000..930e0d006 --- /dev/null +++ b/libddd.html/classAnd.html @@ -0,0 +1,932 @@ + + + + + + + +DDD: And Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
And Class Reference
+
+
+ +

A commutative composition of n homomorphisms. + More...

+
+Inheritance diagram for And:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for And:
+
+
Collaboration graph
+ + + + +
+ + + + + + +

+Public Types

typedef std::vector< GHomparameters_t
 
typedef parameters_t::const_iterator parameters_it
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 And (const std::set< GHom > &p, int ref=0)
 
 And (const parameters_t &p, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD has_image (const GDDD &d) const
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + + +

+Public Attributes

parameters_t parameters
 PLEASE DONT HURT ME !! More...
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Detailed Description

+

A commutative composition of n homomorphisms.

+

Member Typedef Documentation

+ +

◆ parameters_it

+ +
+
+ + + + +
typedef parameters_t::const_iterator And::parameters_it
+
+ +
+
+ +

◆ parameters_t

+ +
+
+ + + + +
typedef std::vector<GHom> And::parameters_t
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ And() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
And::And (const std::set< GHom > & p,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ And() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
And::And (const parameters_tp,
int ref = 0 
)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* And::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References And().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD And::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References _GHom::get_concret(), GHom::id, GDDD::null, GDDD::one, parameters, GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t And::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD And::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References _GHom::has_image(), GDDD::null, and parameters.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t And::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom And::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::id, and parameters.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool And::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void And::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom And::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References GHom::add(), and parameters.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool And::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void And::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool And::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + +
parameters_t And::parameters
+
+ +

PLEASE DONT HURT ME !!

+ +

Referenced by eval(), get_range(), has_image(), hash(), invert(), is_selector(), mark(), negate(), operator==(), print(), and skip_variable().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classAnd__coll__graph.map b/libddd.html/classAnd__coll__graph.map new file mode 100644 index 000000000..38b1ae4d5 --- /dev/null +++ b/libddd.html/classAnd__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classAnd__coll__graph.md5 b/libddd.html/classAnd__coll__graph.md5 new file mode 100644 index 000000000..847619216 --- /dev/null +++ b/libddd.html/classAnd__coll__graph.md5 @@ -0,0 +1 @@ +f8d3929537854c5ecc91a2c89fdec29b \ No newline at end of file diff --git a/libddd.html/classAnd__coll__graph.png b/libddd.html/classAnd__coll__graph.png new file mode 100644 index 000000000..6f81b075e Binary files /dev/null and b/libddd.html/classAnd__coll__graph.png differ diff --git a/libddd.html/classAnd__inherit__graph.map b/libddd.html/classAnd__inherit__graph.map new file mode 100644 index 000000000..38b1ae4d5 --- /dev/null +++ b/libddd.html/classAnd__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classAnd__inherit__graph.md5 b/libddd.html/classAnd__inherit__graph.md5 new file mode 100644 index 000000000..847619216 --- /dev/null +++ b/libddd.html/classAnd__inherit__graph.md5 @@ -0,0 +1 @@ +f8d3929537854c5ecc91a2c89fdec29b \ No newline at end of file diff --git a/libddd.html/classAnd__inherit__graph.png b/libddd.html/classAnd__inherit__graph.png new file mode 100644 index 000000000..6f81b075e Binary files /dev/null and b/libddd.html/classAnd__inherit__graph.png differ diff --git a/libddd.html/classApply2k-members.html b/libddd.html/classApply2k-members.html new file mode 100644 index 000000000..324b5c818 --- /dev/null +++ b/libddd.html/classApply2k-members.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Apply2k Member List
+
+
+ +

This is the complete list of members for Apply2k, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
Apply2k(const GDDD &d, int ref=0)Apply2kinline
clone() constApply2kinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constApply2kinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constApply2kinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constApply2kinlinevirtual
is_selector() const_GHominlinevirtual
mark() constApply2kinlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constApply2kinlinevirtual
print(std::ostream &os) constApply2kinlinevirtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
valueApply2kprivate
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classApply2k.html b/libddd.html/classApply2k.html new file mode 100644 index 000000000..b40824c78 --- /dev/null +++ b/libddd.html/classApply2k.html @@ -0,0 +1,858 @@ + + + + + + + +DDD: Apply2k Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Apply2k Class Reference
+
+
+
+Inheritance diagram for Apply2k:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Apply2k:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Apply2k (const GDDD &d, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + +

+Private Attributes

GDDD value
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Apply2k()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Apply2k::Apply2k (const GDDDd,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Apply2k::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Apply2k().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Apply2k::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, value, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Apply2k::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), and value.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Apply2k::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Apply2k::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References GDDD::mark(), and value.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Apply2k::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References value.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Apply2k::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References value.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ value

+ +
+
+ + + + + +
+ + + + +
GDDD Apply2k::value
+
+private
+
+ +

Referenced by eval(), hash(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classApply2k__coll__graph.map b/libddd.html/classApply2k__coll__graph.map new file mode 100644 index 000000000..4d2ee26b2 --- /dev/null +++ b/libddd.html/classApply2k__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classApply2k__coll__graph.md5 b/libddd.html/classApply2k__coll__graph.md5 new file mode 100644 index 000000000..868cdac77 --- /dev/null +++ b/libddd.html/classApply2k__coll__graph.md5 @@ -0,0 +1 @@ +22637ac77ea1a7a4d00226ae845e1120 \ No newline at end of file diff --git a/libddd.html/classApply2k__coll__graph.png b/libddd.html/classApply2k__coll__graph.png new file mode 100644 index 000000000..a1f1bc850 Binary files /dev/null and b/libddd.html/classApply2k__coll__graph.png differ diff --git a/libddd.html/classApply2k__inherit__graph.map b/libddd.html/classApply2k__inherit__graph.map new file mode 100644 index 000000000..4d58c113e --- /dev/null +++ b/libddd.html/classApply2k__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classApply2k__inherit__graph.md5 b/libddd.html/classApply2k__inherit__graph.md5 new file mode 100644 index 000000000..d780528f9 --- /dev/null +++ b/libddd.html/classApply2k__inherit__graph.md5 @@ -0,0 +1 @@ +d21c32678597de0caf1edc77bbdd4ec2 \ No newline at end of file diff --git a/libddd.html/classApply2k__inherit__graph.png b/libddd.html/classApply2k__inherit__graph.png new file mode 100644 index 000000000..7eb1eaacc Binary files /dev/null and b/libddd.html/classApply2k__inherit__graph.png differ diff --git a/libddd.html/classCache-members.html b/libddd.html/classCache-members.html new file mode 100644 index 000000000..c9ced1ee5 --- /dev/null +++ b/libddd.html/classCache-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Cache< FuncType, ParamType, ResType, EvalFunc > Member List
+
+
+ +

This is the complete list of members for Cache< FuncType, ParamType, ResType, EvalFunc >, including all inherited members.

+ + + + + + + + + + + + +
Cache()Cache< FuncType, ParamType, ResType, EvalFunc >inline
Cache(size_t s)Cache< FuncType, ParamType, ResType, EvalFunc >inline
cache_Cache< FuncType, ParamType, ResType, EvalFunc >private
clear(bool keepstats=false)Cache< FuncType, ParamType, ResType, EvalFunc >inline
eval(const FuncType &func, const ParamType &param) constCache< FuncType, ParamType, ResType, EvalFunc >inline
hash_map typedefCache< FuncType, ParamType, ResType, EvalFunc >private
insert(const FuncType &hom, const ParamType &node)Cache< FuncType, ParamType, ResType, EvalFunc >inline
peak() constCache< FuncType, ParamType, ResType, EvalFunc >inline
peak_Cache< FuncType, ParamType, ResType, EvalFunc >mutableprivate
should_insert(const FuncType &) constCache< FuncType, ParamType, ResType, EvalFunc >inline
size() constCache< FuncType, ParamType, ResType, EvalFunc >inline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classCache.html b/libddd.html/classCache.html new file mode 100644 index 000000000..51b00bd47 --- /dev/null +++ b/libddd.html/classCache.html @@ -0,0 +1,449 @@ + + + + + + + +DDD: Cache< FuncType, ParamType, ResType, EvalFunc > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Types | +Private Attributes | +List of all members
+
+
Cache< FuncType, ParamType, ResType, EvalFunc > Class Template Reference
+
+
+ +

#include <Cache.hh>

+
+Collaboration diagram for Cache< FuncType, ParamType, ResType, EvalFunc >:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Cache ()
 
 Cache (size_t s)
 
void clear (bool keepstats=false)
 clear the cache, discarding all values. More...
 
size_t peak () const
 
size_t size () const
 
ResType eval (const FuncType &func, const ParamType &param) const
 
bool should_insert (const FuncType &) const
 
std::pair< bool, ResType > insert (const FuncType &hom, const ParamType &node)
 
+ + + +

+Private Types

typedef hash_map< std::pair< FuncType, ParamType >, ResType >::type hash_map
 
+ + + + + +

+Private Attributes

size_t peak_
 
hash_map cache_
 
+

Member Typedef Documentation

+ +

◆ hash_map

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + +
typedef hash_map< std::pair<FuncType, ParamType>, ResType >::type Cache< FuncType, ParamType, ResType, EvalFunc >::hash_map
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Cache() [1/2]

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + +
Cache< FuncType, ParamType, ResType, EvalFunc >::Cache ()
+
+inline
+
+ +
+
+ +

◆ Cache() [2/2]

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + + +
Cache< FuncType, ParamType, ResType, EvalFunc >::Cache (size_t s)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clear()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + + +
void Cache< FuncType, ParamType, ResType, EvalFunc >::clear (bool keepstats = false)
+
+inline
+
+
+ +

◆ eval()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ResType Cache< FuncType, ParamType, ResType, EvalFunc >::eval (const FuncType & func,
const ParamType & param 
) const
+
+inline
+
+
+ +

◆ insert()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::pair<bool,ResType> Cache< FuncType, ParamType, ResType, EvalFunc >::insert (const FuncType & hom,
const ParamType & node 
)
+
+inline
+
+
+ +

◆ peak()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + +
size_t Cache< FuncType, ParamType, ResType, EvalFunc >::peak () const
+
+inline
+
+
+ +

◆ should_insert()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + + +
bool Cache< FuncType, ParamType, ResType, EvalFunc >::should_insert (const FuncType & ) const
+
+inline
+
+
+ +

◆ size()

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + + + + +
size_t Cache< FuncType, ParamType, ResType, EvalFunc >::size () const
+
+inline
+
+
+

Member Data Documentation

+ +

◆ cache_

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + +
hash_map Cache< FuncType, ParamType, ResType, EvalFunc >::cache_
+
+private
+
+
+ +

◆ peak_

+ +
+
+
+template<typename FuncType , typename ParamType , typename ResType , typename EvalFunc = int>
+ + + + + +
+ + + + +
size_t Cache< FuncType, ParamType, ResType, EvalFunc >::peak_
+
+mutableprivate
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classCache__coll__graph.map b/libddd.html/classCache__coll__graph.map new file mode 100644 index 000000000..61888be49 --- /dev/null +++ b/libddd.html/classCache__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classCache__coll__graph.md5 b/libddd.html/classCache__coll__graph.md5 new file mode 100644 index 000000000..33037e437 --- /dev/null +++ b/libddd.html/classCache__coll__graph.md5 @@ -0,0 +1 @@ +c155fe04026100e2762b8ccbcab10ee9 \ No newline at end of file diff --git a/libddd.html/classCache__coll__graph.png b/libddd.html/classCache__coll__graph.png new file mode 100644 index 000000000..088334889 Binary files /dev/null and b/libddd.html/classCache__coll__graph.png differ diff --git a/libddd.html/classCompose-members.html b/libddd.html/classCompose-members.html new file mode 100644 index 000000000..4e01aa009 --- /dev/null +++ b/libddd.html/classCompose-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Compose Member List
+
+
+ +

This is the complete list of members for Compose, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constComposeinlinevirtual
Compose(const GHom &l, const GHom &r, int ref=0)Composeinline
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constComposeinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() constComposeinlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constComposeinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constComposeinlinevirtual
is_selector() constComposeinlinevirtual
leftCompose
mark() constComposeinlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constComposeinlinevirtual
print(std::ostream &os) constComposeinlinevirtual
refCounter_GHommutableprivate
rightCompose
skip_variable(int var) constComposeinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classCompose.html b/libddd.html/classCompose.html new file mode 100644 index 000000000..fe24e4910 --- /dev/null +++ b/libddd.html/classCompose.html @@ -0,0 +1,878 @@ + + + + + + + +DDD: Compose Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
Compose Class Reference
+
+
+
+Inheritance diagram for Compose:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Compose:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Compose (const GHom &l, const GHom &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + + + +

+Public Attributes

GHom left
 
GHom right
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Compose()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Compose::Compose (const GHoml,
const GHomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Compose::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Compose().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Compose::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t Compose::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References GHom::get_range(), left, and right.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Compose::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Compose::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References _GHom::GHom, GHom::invert(), left, GDDD::null, and right.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Compose::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References GHom::is_selector(), left, and right.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Compose::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Compose::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Compose::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Compose::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References _GHom::get_concret(), left, right, and _GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + +
GHom Compose::left
+
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + +
GHom Compose::right
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classCompose__coll__graph.map b/libddd.html/classCompose__coll__graph.map new file mode 100644 index 000000000..4a4b0ac4a --- /dev/null +++ b/libddd.html/classCompose__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classCompose__coll__graph.md5 b/libddd.html/classCompose__coll__graph.md5 new file mode 100644 index 000000000..0909211ae --- /dev/null +++ b/libddd.html/classCompose__coll__graph.md5 @@ -0,0 +1 @@ +8e74f75191c72f205388f7fc5bc7763a \ No newline at end of file diff --git a/libddd.html/classCompose__coll__graph.png b/libddd.html/classCompose__coll__graph.png new file mode 100644 index 000000000..57f36636d Binary files /dev/null and b/libddd.html/classCompose__coll__graph.png differ diff --git a/libddd.html/classCompose__inherit__graph.map b/libddd.html/classCompose__inherit__graph.map new file mode 100644 index 000000000..9fe800834 --- /dev/null +++ b/libddd.html/classCompose__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classCompose__inherit__graph.md5 b/libddd.html/classCompose__inherit__graph.md5 new file mode 100644 index 000000000..becb7b05b --- /dev/null +++ b/libddd.html/classCompose__inherit__graph.md5 @@ -0,0 +1 @@ +b954ae5e9cd6b9c8ca3008500d65b98e \ No newline at end of file diff --git a/libddd.html/classCompose__inherit__graph.png b/libddd.html/classCompose__inherit__graph.png new file mode 100644 index 000000000..8fa84c10f Binary files /dev/null and b/libddd.html/classCompose__inherit__graph.png differ diff --git a/libddd.html/classConstant-members.html b/libddd.html/classConstant-members.html new file mode 100644 index 000000000..01041f0f0 --- /dev/null +++ b/libddd.html/classConstant-members.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Constant Member List
+
+
+ +

This is the complete list of members for Constant, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constConstantinlinevirtual
compose(const GHom &r) const_GHomvirtual
Constant(const GDDD &d, int ref=0)Constantinline
creation_counter_GHomprivate
eval(const GDDD &d) constConstantinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constConstantinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constConstantinlinevirtual
is_selector() constConstantinlinevirtual
mark() constConstantinlinevirtual
marking_GHommutableprivate
negate() constConstantinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constConstantinlinevirtual
print(std::ostream &os) constConstantinlinevirtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
valueConstantprivate
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classConstant.html b/libddd.html/classConstant.html new file mode 100644 index 000000000..e809820c5 --- /dev/null +++ b/libddd.html/classConstant.html @@ -0,0 +1,856 @@ + + + + + + + +DDD: Constant Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Constant Class Reference
+
+
+
+Inheritance diagram for Constant:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Constant:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Constant (const GDDD &d, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + +

+Private Attributes

GDDD value
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Constant()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Constant::Constant (const GDDDd,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Constant::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Constant().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Constant::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References GDDD::null, and value.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Constant::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), and value.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Constant::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Constant::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References GDDD::null, and value.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Constant::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References GDDD::mark(), and value.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom Constant::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References GHom::id, GDDD::null, and value.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Constant::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References value.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Constant::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References value.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ value

+ +
+
+ + + + + +
+ + + + +
GDDD Constant::value
+
+private
+
+ +

Referenced by eval(), hash(), is_selector(), mark(), negate(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classConstant__coll__graph.map b/libddd.html/classConstant__coll__graph.map new file mode 100644 index 000000000..41ff663f7 --- /dev/null +++ b/libddd.html/classConstant__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classConstant__coll__graph.md5 b/libddd.html/classConstant__coll__graph.md5 new file mode 100644 index 000000000..f370ab53e --- /dev/null +++ b/libddd.html/classConstant__coll__graph.md5 @@ -0,0 +1 @@ +ea37b29bee673b21927447396ee17810 \ No newline at end of file diff --git a/libddd.html/classConstant__coll__graph.png b/libddd.html/classConstant__coll__graph.png new file mode 100644 index 000000000..28cdbfbd3 Binary files /dev/null and b/libddd.html/classConstant__coll__graph.png differ diff --git a/libddd.html/classConstant__inherit__graph.map b/libddd.html/classConstant__inherit__graph.map new file mode 100644 index 000000000..bbb592553 --- /dev/null +++ b/libddd.html/classConstant__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classConstant__inherit__graph.md5 b/libddd.html/classConstant__inherit__graph.md5 new file mode 100644 index 000000000..d4740c1d9 --- /dev/null +++ b/libddd.html/classConstant__inherit__graph.md5 @@ -0,0 +1 @@ +7821700825dabb5b722b1180ef80e6bc \ No newline at end of file diff --git a/libddd.html/classConstant__inherit__graph.png b/libddd.html/classConstant__inherit__graph.png new file mode 100644 index 000000000..a15fe549d Binary files /dev/null and b/libddd.html/classConstant__inherit__graph.png differ diff --git a/libddd.html/classDDD-members.html b/libddd.html/classDDD-members.html new file mode 100644 index 000000000..5e46797f7 --- /dev/null +++ b/libddd.html/classDDD-members.html @@ -0,0 +1,113 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DDD Member List
+
+
+ +

This is the complete list of members for DDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() constGDDD
concretGDDDprivate
const_iterator typedefGDDD
DDD(const DDD &)DDD
DDD(const GDDD &g=GDDD::null)DDD
DDD(int var, val_t val, const GDDD &d=one)DDD
DDD(int var, val_t val1, val_t val2, const GDDD &d=one)DDD
edge_t typedefGDDD
empty() constDDDvirtual
empty_set() constDDDvirtual
end() constGDDD
garbage()GDDDstatic
GDDD(const id_t &_g)GDDDprivate
GDDD(_GDDD *_g)GDDDprivate
GDDD(int variable, const Valuation &value)GDDD
GDDD()GDDDinline
GDDD(int var, val_t val, const GDDD &d=one)GDDD
GDDD(int var, val_t val1, val_t val2, const GDDD &d=one)GDDD
getvarName(int var)GDDDstatic
hash() constGDDDinline
id_t typedefGDDD
mark() constDDDinlinevirtual
nbsons() constGDDD
nbStates() constGDDD
newcopy() constDDDinlinevirtual
nodeIndex(const std::vector< id_t > &) constGDDDprivate
noSharedSize() constGDDD
nullGDDDstatic
oneGDDDstatic
operator!=(const GDDD &g) constGDDDinline
operator<(const GDDD &g) constGDDD
operator=(const GDDD &)DDD
operator=(const DDD &)DDD
operator==(const GDDD &g) constGDDDinline
peak()GDDDstatic
print(std::ostream &os, std::string s) constGDDDprivate
pstats(bool reinit=true)GDDDstatic
refCounter() constGDDD
saveNode(std::ostream &, std::vector< id_t > &) constGDDDprivate
set_equal(const DataSet &b) constDDDvirtual
set_hash() constDDDvirtual
set_intersect(const DataSet &b) constDDDvirtual
set_less_than(const DataSet &b) constDDDvirtual
set_minus(const DataSet &b) constDDDvirtual
set_print(std::ostream &os) constDDDinlinevirtual
set_size() constDDDvirtual
set_union(const DataSet &b) constDDDvirtual
size() constGDDD
statistics()GDDDstatic
topGDDDstatic
val_t typedefGDDD
valsz_t typedefGDDD
Valuation typedefGDDD
variable() constGDDD
varName(int var, const std::string &name)GDDDstatic
~DataSet()DataSetinlinevirtual
~DDD()DDD
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDDD.html b/libddd.html/classDDD.html new file mode 100644 index 000000000..051d9b4d6 --- /dev/null +++ b/libddd.html/classDDD.html @@ -0,0 +1,1822 @@ + + + + + + + +DDD: DDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
DDD Class Reference
+
+
+ +

This class is the public interface for manipulating Data Decision Diagrams. + More...

+ +

#include <DDD.h>

+
+Inheritance diagram for DDD:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for DDD:
+
+
Collaboration graph
+ + + + + +
+ + + + +

+Public Types

typedef unsigned int id_t
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DDD (const DDD &)
 Copy constructor. More...
 
 DDD (const GDDD &g=GDDD::null)
 Copy constructor from base class GDDD, also default DDD constructor to empty set. More...
 
 DDD (int var, val_t val, const GDDD &d=one)
 The most common way for the user of creating DDD. More...
 
 DDD (int var, val_t val1, val_t val2, const GDDD &d=one)
 To create a DDD with arcs covering a range of values. More...
 
 ~DDD ()
 Destructor, maintains refCount. More...
 
Assignment operators.
DDDoperator= (const GDDD &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
DDDoperator= (const DDD &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
DataSet implementation interface

This is the implementation of the DataSet class interface used in SDD context.

+

These functions allow to reference DDD from SDD arcs. IMPORTANT Remember to delete returned values after use.

+

Note these functions are not resistant to incompatible DataSet types. When these functions have a parameter "b", it should be a reference to a DDD from proper behavior.

+
DataSetnewcopy () const
 Return a new copy of a DDD. More...
 
DataSetset_intersect (const DataSet &b) const
 Compute intersection of two DDD. More...
 
DataSetset_union (const DataSet &b) const
 Compute union of two DDD. More...
 
DataSetset_minus (const DataSet &b) const
 Compute set difference of two DDD. More...
 
bool empty () const
 Return true if this is the empty set. More...
 
DataSetempty_set () const
 Returns a pointer to GDDD::null. More...
 
bool set_equal (const DataSet &b) const
 Compares to DataSet for equality. More...
 
bool set_less_than (const DataSet &b) const
 Compares two sets with a total order. More...
 
long double set_size () const
 Compares to DataSet for equality. More...
 
size_t set_hash () const
 Returns a hash key for the DDD. More...
 
void set_print (std::ostream &os) const
 Textual (human readable) output of a DDD. More...
 
void mark () const
 mark() from DataSet interface More...
 
Comparisons for hash and map storage
bool operator== (const GDDD &g) const
 Comparison between DDD. More...
 
bool operator!= (const GDDD &g) const
 Comparison between DDD. More...
 
bool operator< (const GDDD &g) const
 Total ordering function between DDD. More...
 
unsigned int refCounter () const
 Returns current reference count of a node. More...
 
unsigned long int size () const
 Returns the size in number of nodes of a DDD structure. More...
 
size_t nbsons () const
 Returns the number of successors of a given node. This is the size of the arc array of the node. More...
 
long double nbStates () const
 Returns the number of states or paths represented by a given node. More...
 
long double noSharedSize () const
 Returns the number of nodes that would be used to represent a DDD if no unicity table was used. More...
 
+ + + + + + + + +

+Static Public Member Functions

Variable naming.
static void varName (int var, const std::string &name)
 Sets a variable's name. More...
 
static const std::string getvarName (int var)
 Gets a variable's name. More...
 
+ + + + + + + + + + + +

+Static Public Attributes

Terminal nodes defined as constants
static const GDDD one
 The accepting terminal. This is the basic leaf for accepted sequences. More...
 
static const GDDD null
 The non-accepting terminal. More...
 
static const GDDD top
 The approximation terminal. More...
 
+ + + + + + + + + + +

+Private Member Functions

void print (std::ostream &os, std::string s) const
 Internal function used in recursion for textual printing of GDDD. More...
 
void saveNode (std::ostream &, std::vector< id_t > &) const
 A function for DDD serialization (beta). More...
 
unsigned long int nodeIndex (const std::vector< id_t > &) const
 Another function used in serialization. More...
 
+ + + + +

+Private Attributes

id_t concret
 The real implementation class. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

Public Accessors

int variable () const
 Returns a node's variable. More...
 
const_iterator begin () const
 API for iterating over the arcs of a DDD manually. More...
 
const_iterator end () const
 API for iterating over the arcs of a DDD manually. More...
 
typedef short val_t
 The type used as values of variables in a DDD. More...
 
typedef unsigned short valsz_t
 A type wide enough to count how many outgoing edges a DDD node has, should be congruent to val_t. More...
 
typedef std::pair< val_t, GDDDedge_t
 An edge is a pair <value,child node> More...
 
typedef std::vector< edge_tValuation
 To hide how arcs are actually stored. Use GDDD::Valuation to refer to arcs type. More...
 
typedef const edge_tconst_iterator
 To hide how arcs are stored. More...
 
+ + + + + + + + + + + + + + + + +

Memory Management

size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different nodes created and not yet destroyed. More...
 
static void garbage ()
 For garbage collection, do not call this directly, use MemoryManager::garbage() instead. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static size_t peak ()
 Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection. More...
 
+

Detailed Description

+

This class is the public interface for manipulating Data Decision Diagrams.

+

Except when defining new homomorphisms, a user of the library should only manipulate DDD, not GDDD. Reference counting is enabled for DDD, so they will not be destroyed if they are still in use upon garbage collection.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+ + + + + +
+ + + + +
typedef const edge_t* GDDD::const_iterator
+
+inherited
+
+ +

To hide how arcs are stored.

+

Also for more compact expressions : use GDDD::const_iterator to iterate over the arcs of a DDD

+ +
+
+ +

◆ edge_t

+ +
+
+ + + + + +
+ + + + +
typedef std::pair<val_t,GDDD> GDDD::edge_t
+
+inherited
+
+ +

An edge is a pair <value,child node>

+ +
+
+ +

◆ id_t

+ +
+
+ + + + + +
+ + + + +
typedef unsigned int GDDD::id_t
+
+inherited
+
+ +
+
+ +

◆ val_t

+ +
+
+ + + + + +
+ + + + +
typedef short GDDD::val_t
+
+inherited
+
+ +

The type used as values of variables in a DDD.

+ +
+
+ +

◆ valsz_t

+ +
+
+ + + + + +
+ + + + +
typedef unsigned short GDDD::valsz_t
+
+inherited
+
+ +

A type wide enough to count how many outgoing edges a DDD node has, should be congruent to val_t.

+ +
+
+ +

◆ Valuation

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<edge_t > GDDD::Valuation
+
+inherited
+
+ +

To hide how arcs are actually stored. Use GDDD::Valuation to refer to arcs type.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ DDD() [1/4]

+ +
+
+ + + + + + + + +
DDD::DDD (const DDDg)
+
+ +

Copy constructor.

+

Constructs a copy, actual data (concret) is not copied. RefCounter is updated however.

+ +

References GDDD::concret, UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ DDD() [2/4]

+ +
+
+ + + + + + + + +
DDD::DDD (const GDDDg = GDDD::null)
+
+ +

Copy constructor from base class GDDD, also default DDD constructor to empty set.

+

Increments refCounter of g.concret.

+ +

References GDDD::concret, UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ DDD() [3/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DDD::DDD (int var,
val_t val,
const GDDDd = one 
)
+
+ +

The most common way for the user of creating DDD.

+

This constructor builds a node with a single arc of the form var-val->d. Usually a user will create these single path DDD, possibly by imbrication as in DDD(var1, val1, DDD( var2, val2 )). Then compose them using +, -, *, ^ ... See also GDDD(var,val,d).

Parameters
+ + + + +
varthe variable labeling the node
valthe value labeling the arc
dthe successor node or defaults to terminal GDDD::one if none provided
+
+
+ +

References GDDD::concret, UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ DDD() [4/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DDD::DDD (int var,
val_t val1,
val_t val2,
const GDDDd = one 
)
+
+ +

To create a DDD with arcs covering a range of values.

+

This interface creates nodes with a set of arcs bearing the values in the interval [val1,var2] that point to the same successor node d.

Parameters
+ + + + + +
varthe variable labeling the node
val1lowest value labeling an arc
val2highest value labeling an arc
dthe successor node or defaults to terminal GDDD::one if none provided
+
+
+
+ +

References GDDD::concret, UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ ~DDD()

+ +
+
+ + + + + + + +
DDD::~DDD ()
+
+ +

Destructor, maintains refCount.

+

Note that destroying a DDD does not actually destroy any data, it decrements reference count, so that subsequent MemoryManager::garbage call may truly clear the data.

+ +

References GDDD::concret, UniqueTableId< T, ID >::deref(), and UniqueTableId< T, ID >::instance().

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD::const_iterator GDDD::begin () const
+
+inherited
+
+ +

API for iterating over the arcs of a DDD manually.

+

i.e. not using a predefined evaluation mechanism such as StrongHom

+

for (GDDD::const_iterator it = a_gddd.begin() ; it != a_gddd.end() ; it++ ) { // do something }

+

returns the first arc

+ +

References _GDDD::begin(), GDDD::concret, and _GDDD::resolve().

+ +

Referenced by DED::add(), dotExporter::collect(), _DED_Mult::eval(), _DED_Minus::eval(), _DED_Concat::eval(), StrongHom::eval(), StrongMLHom::eval(), Apply2k::eval(), DomExtract::eval(), _GHom::eval_skip(), StrongHom::has_image(), _GHom::has_image_skip(), _setVarConst::invert(), _incVar::invert(), MySize::mysize(), MyNbStates::nbStates(), GDDD::print(), GDDD::saveNode(), and SddSize::sddsize().

+ +
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool DDD::empty () const
+
+virtual
+
+ +

Return true if this is the empty set.

+ +

Implements DataSet.

+ +

References GDDD::null, and GDDD::operator==().

+ +
+
+ +

◆ empty_set()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet * DDD::empty_set () const
+
+virtual
+
+ +

Returns a pointer to GDDD::null.

+ +

Implements DataSet.

+ +

References GDDD::DDD.

+ +
+
+ +

◆ end()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD::const_iterator GDDD::end () const
+
+inherited
+
+ +

API for iterating over the arcs of a DDD manually.

+

i.e. not using a predefined evaluation mechanism such as StrongHom

+

for (GDDD::const_iterator it = a_gddd.begin() ; it != a_gddd.end() ; it++ ) { // do something }

+

returns a past the end iterator

+ +

References GDDD::concret, _GDDD::end(), and _GDDD::resolve().

+ +

Referenced by dotExporter::collect(), _DED_Mult::eval(), _DED_Minus::eval(), _DED_Concat::eval(), StrongHom::eval(), StrongMLHom::eval(), Apply2k::eval(), DomExtract::eval(), _GHom::eval_skip(), StrongHom::has_image(), _GHom::has_image_skip(), _setVarConst::invert(), MySize::mysize(), MyNbStates::nbStates(), GDDD::print(), GDDD::saveNode(), and SddSize::sddsize().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GDDD::garbage ()
+
+staticinherited
+
+ +

For garbage collection, do not call this directly, use MemoryManager::garbage() instead.

+
Todo:
describe garbage collection algorithm(s) + mark usage homogeneously in one place.
+ +

References MyNbStates::clear(), UniqueTableId< T, ID >::garbage(), UniqueTableId< T, ID >::instance(), GDDD::mark(), GDDD::one, and GDDD::top.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ getvarName()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string GDDD::getvarName (int var)
+
+staticinherited
+
+ +

Gets a variable's name.

+
Todo:
This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
+
Parameters
+ + +
varthe index of the variable to be named
+
+
+
Returns
the name attached to this variable index
+ +

References mapVarName.

+ +

Referenced by dotExporter::collect(), _VarCompState::print(), _setVarConst::print(), _incVar::print(), _VarCompVar::print(), and GDDD::print().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GDDD::hash () const
+
+inlineinherited
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void DDD::mark () const
+
+inlinevirtual
+
+ +

mark() from DataSet interface

+ +

Implements DataSet.

+ +

References GDDD::mark().

+ +
+
+ +

◆ nbsons()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GDDD::nbsons () const
+
+inherited
+
+ +

Returns the number of successors of a given node. This is the size of the arc array of the node.

+ +

References GDDD::concret, _GDDD::resolve(), and _GDDD::valuation_size.

+ +

Referenced by _DED_Mult::eval(), _DED_Minus::eval(), and _incVar::invert().

+ +
+
+ +

◆ nbStates()

+ +
+
+ + + + + +
+ + + + + + + +
long double GDDD::nbStates () const
+
+inherited
+
+ +

Returns the number of states or paths represented by a given node.

+ +

Referenced by Statistic::load(), and set_size().

+ +
+
+ +

◆ newcopy()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet* DDD::newcopy () const
+
+inlinevirtual
+
+ +

Return a new copy of a DDD.

+ +

Implements DataSet.

+ +

References GDDD::DDD.

+ +
+
+ +

◆ nodeIndex()

+ +
+
+ + + + + +
+ + + + + + + + +
unsigned long int GDDD::nodeIndex (const std::vector< id_t > & ) const
+
+privateinherited
+
+ +

Another function used in serialization.

+ +

References GDDD::concret.

+ +

Referenced by GDDD::saveNode().

+ +
+
+ +

◆ noSharedSize()

+ +
+
+ + + + + +
+ + + + + + + +
long double GDDD::noSharedSize () const
+
+inherited
+
+ +

Returns the number of nodes that would be used to represent a DDD if no unicity table was used.

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GDDD::operator!= (const GDDDg) const
+
+inlineinherited
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are not equal.
+ +

References GDDD::concret.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GDDD::operator< (const GDDDg) const
+
+inherited
+
+ +

Total ordering function between DDD.

+

Note that comparison is based on "concret" address in unicity table. This ordering is necessary for hash and map storage of GDDD.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if argument g is greater than "this" node.
+ +

References GDDD::concret.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + + + + +
DDD & DDD::operator= (const DDDg)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GDDD::concret, UniqueTableId< T, ID >::deref(), UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + + + + +
DDD & DDD::operator= (const GDDDg)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GDDD::concret, UniqueTableId< T, ID >::deref(), UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::ref().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GDDD::operator== (const GDDDg) const
+
+inlineinherited
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are equal.
+ +

Referenced by empty().

+ +
+
+ +

◆ peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GDDD::peak ()
+
+staticinherited
+
+ +

Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection.

+ +

References UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::peak_size().

+ +

Referenced by Statistic::load(), and GDDD::pstats().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::print (std::ostream & os,
std::string s 
) const
+
+privateinherited
+
+ +

Internal function used in recursion for textual printing of GDDD.

+ +

References GDDD::begin(), GDDD::end(), GDDD::getvarName(), GDDD::one, GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GDDD::pstats (bool reinit = true)
+
+staticinherited
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase. See also MemoryManager::pstats().

Todo:
allow output in other place than cout. Clean up output.
+ +

References UniqueTableId< T, ID >::instance(), and GDDD::peak().

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GDDD::refCounter () const
+
+inherited
+
+ +

Returns current reference count of a node.

+

Reference count corresponds to the number of DDD that use a given concrete node. No recursive reference counting is used : son nodes may have refCount=0 even if this node has a positive refCounter.

+ +
+
+ +

◆ saveNode()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::saveNode (std::ostream & ,
std::vector< id_t > &  
) const
+
+privateinherited
+
+ +

A function for DDD serialization (beta).

+ +

References GDDD::begin(), GDDD::concret, GDDD::end(), GDDD::nodeIndex(), GDDD::one, and GDDD::top.

+ +
+
+ +

◆ set_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
bool DDD::set_equal (const DataSetb) const
+
+virtual
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t DDD::set_hash () const
+
+virtual
+
+ +

Returns a hash key for the DDD.

+ +

Implements DataSet.

+ +

References GDDD::hash().

+ +
+
+ +

◆ set_intersect()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * DDD::set_intersect (const DataSetb) const
+
+virtual
+
+ +

Compute intersection of two DDD.

+ +

Implements DataSet.

+ +

References GDDD::DDD.

+ +
+
+ +

◆ set_less_than()

+ +
+
+ + + + + +
+ + + + + + + + +
bool DDD::set_less_than (const DataSetb) const
+
+virtual
+
+ +

Compares two sets with a total order.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_minus()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * DDD::set_minus (const DataSetb) const
+
+virtual
+
+ +

Compute set difference of two DDD.

+ +

Implements DataSet.

+ +

References GDDD::DDD.

+ +
+
+ +

◆ set_print()

+ +
+
+ + + + + +
+ + + + + + + + +
void DDD::set_print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Textual (human readable) output of a DDD.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_size()

+ +
+
+ + + + + +
+ + + + + + + +
long double DDD::set_size () const
+
+virtual
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +

References GDDD::nbStates().

+ +
+
+ +

◆ set_union()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * DDD::set_union (const DataSetb) const
+
+virtual
+
+ +

Compute union of two DDD.

+ +

Implements DataSet.

+ +

References GDDD::DDD.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int GDDD::size () const
+
+inherited
+
+ +

Returns the size in number of nodes of a DDD structure.

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GDDD::statistics ()
+
+staticinherited
+
+ +

Returns unicity table current size. Gives the number of different nodes created and not yet destroyed.

+ +

References UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::size().

+ +

Referenced by MemoryManager::nbDDD().

+ +
+
+ +

◆ variable()

+ +
+
+ + + + + +
+ + + + + + + +
int GDDD::variable () const
+
+inherited
+
+
+ +

◆ varName()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::varName (int var,
const std::string & name 
)
+
+staticinherited
+
+ +

Sets a variable's name.

+
Todo:
This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
+
Parameters
+ + + +
varthe index of the variable to be named
namethe name to attach to this variable index
+
+
+ +

References mapVarName.

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
id_t GDDD::concret
+
+privateinherited
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.

+ +

Referenced by GDDD::begin(), DDD(), GDDD::end(), GDDD::GDDD(), GDDD::hash(), GDDD::mark(), GDDD::nbsons(), GDDD::nodeIndex(), GDDD::operator!=(), GDDD::operator<(), operator=(), GDDD::saveNode(), GDDD::variable(), and ~DDD().

+ +
+
+ +

◆ null

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::null
+
+staticinherited
+
+
+ +

◆ one

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::one
+
+staticinherited
+
+
+ +

◆ top

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::top
+
+staticinherited
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDDD__coll__graph.map b/libddd.html/classDDD__coll__graph.map new file mode 100644 index 000000000..65bf50005 --- /dev/null +++ b/libddd.html/classDDD__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classDDD__coll__graph.md5 b/libddd.html/classDDD__coll__graph.md5 new file mode 100644 index 000000000..b120eb72f --- /dev/null +++ b/libddd.html/classDDD__coll__graph.md5 @@ -0,0 +1 @@ +0725fdada43ac1a9599d545d8ffa7929 \ No newline at end of file diff --git a/libddd.html/classDDD__coll__graph.png b/libddd.html/classDDD__coll__graph.png new file mode 100644 index 000000000..51ba48b46 Binary files /dev/null and b/libddd.html/classDDD__coll__graph.png differ diff --git a/libddd.html/classDDD__inherit__graph.map b/libddd.html/classDDD__inherit__graph.map new file mode 100644 index 000000000..925665058 --- /dev/null +++ b/libddd.html/classDDD__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classDDD__inherit__graph.md5 b/libddd.html/classDDD__inherit__graph.md5 new file mode 100644 index 000000000..5f40b1c9e --- /dev/null +++ b/libddd.html/classDDD__inherit__graph.md5 @@ -0,0 +1 @@ +2f852b21abeae8081c7ce959ed3d90c5 \ No newline at end of file diff --git a/libddd.html/classDDD__inherit__graph.png b/libddd.html/classDDD__inherit__graph.png new file mode 100644 index 000000000..3c9ee3628 Binary files /dev/null and b/libddd.html/classDDD__inherit__graph.png differ diff --git a/libddd.html/classDataSet-members.html b/libddd.html/classDataSet-members.html new file mode 100644 index 000000000..58ea42398 --- /dev/null +++ b/libddd.html/classDataSet-members.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DataSet Member List
+
+
+ +

This is the complete list of members for DataSet, including all inherited members.

+ + + + + + + + + + + + + + +
empty() const =0DataSetpure virtual
empty_set() const =0DataSetpure virtual
mark() const =0DataSetpure virtual
newcopy() const =0DataSetpure virtual
set_equal(const DataSet &b) const =0DataSetpure virtual
set_hash() const =0DataSetpure virtual
set_intersect(const DataSet &b) const =0DataSetpure virtual
set_less_than(const DataSet &b) const =0DataSetpure virtual
set_minus(const DataSet &b) const =0DataSetpure virtual
set_print(std::ostream &os) const =0DataSetpure virtual
set_size() const =0DataSetpure virtual
set_union(const DataSet &b) const =0DataSetpure virtual
~DataSet()DataSetinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDataSet.html b/libddd.html/classDataSet.html new file mode 100644 index 000000000..a9664c8a5 --- /dev/null +++ b/libddd.html/classDataSet.html @@ -0,0 +1,528 @@ + + + + + + + +DDD: DataSet Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +List of all members
+
+
DataSet Class Referenceabstract
+
+
+ +

This class is an abstraction of a set of data. + More...

+ +

#include <DataSet.h>

+
+Inheritance diagram for DataSet:
+
+
Inheritance graph
+ + + + + + + +
+
+Collaboration diagram for DataSet:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ~DataSet ()
 destructor More...
 
virtual DataSetnewcopy () const =0
 returns a new instance copy of this More...
 
virtual DataSetset_intersect (const DataSet &b) const =0
 returns a new instance with elements = this inter b More...
 
virtual DataSetset_union (const DataSet &b) const =0
 returns a new instance with elements = this union b More...
 
virtual DataSetset_minus (const DataSet &b) const =0
 returns a new instance with elements = this setminus b More...
 
virtual bool empty () const =0
 returns true if this is the empty set More...
 
virtual DataSetempty_set () const =0
 returns a pointer to an instance of the empty set More...
 
virtual bool set_equal (const DataSet &b) const =0
 Compares two sets for equality. More...
 
virtual bool set_less_than (const DataSet &b) const =0
 Compares two sets with a total order. More...
 
virtual long double set_size () const =0
 
virtual size_t set_hash () const =0
 returns a hash function, used in the SDD hash function computation More...
 
virtual void set_print (std::ostream &os) const =0
 returns a formatted string description of the set More...
 
virtual void mark () const =0
 for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing More...
 
+

Detailed Description

+

This class is an abstraction of a set of data.

+

Set Decision Diagrams SDD arcs are labeled by a DataSet *, canonization of SDD requires a set-based interface (union, intersection, set difference), ability to compute a hash key and test two sets for equality for unicity table purposes, and test for emptiness as SDD are both zero suppresed (no path lead to GSDD::null), and empty-set suppressed (no arc labeled by empty_set is represented)

+

Additional interface is provided to query/examine the structure, in particular set_size to is required to compute the full set size of an SDD, and print (although this last is not essential)

+

Concrete DataSet classes should derive from DataSet and fulfill the contract FOR THEIR OWN TYPE hard or dynamic casting the argument into one's own type is the recommended behavior

+
Todo:
recent experiments with V. Beaudenon show maybe some behavior should be put here, for instance set_intersect is always empty if incompatible types are compared.
+

Constructor & Destructor Documentation

+ +

◆ ~DataSet()

+ +
+
+ + + + + +
+ + + + + + + +
virtual DataSet::~DataSet ()
+
+inlinevirtual
+
+ +

destructor

+ +
+
+

Member Function Documentation

+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool DataSet::empty () const
+
+pure virtual
+
+ +

returns true if this is the empty set

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval(), _SDED_Mult::eval(), _SDED_Minus::eval(), sns::Mult::eval(), GSDD::GSDD(), and GShom::GShom().

+ +
+
+ +

◆ empty_set()

+ +
+
+ + + + + +
+ + + + + + + +
virtual DataSet* DataSet::empty_set () const
+
+pure virtual
+
+ +

returns a pointer to an instance of the empty set

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void DataSet::mark () const
+
+pure virtual
+
+ +

for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +
+
+ +

◆ newcopy()

+ +
+
+ + + + + +
+ + + + + + + +
virtual DataSet* DataSet::newcopy () const
+
+pure virtual
+
+ +

returns a new instance copy of this

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval(), GSDD::GSDD(), and square_union().

+ +
+
+ +

◆ set_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool DataSet::set_equal (const DataSetb) const
+
+pure virtual
+
+ +

Compares two sets for equality.

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval().

+ +
+
+ +

◆ set_hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t DataSet::set_hash () const
+
+pure virtual
+
+ +

returns a hash function, used in the SDD hash function computation

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +
+
+ +

◆ set_intersect()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual DataSet* DataSet::set_intersect (const DataSetb) const
+
+pure virtual
+
+ +

returns a new instance with elements = this inter b

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval(), _SDED_Mult::eval(), _SDED_Minus::eval(), and sns::Mult::eval().

+ +
+
+ +

◆ set_less_than()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool DataSet::set_less_than (const DataSetb) const
+
+pure virtual
+
+ +

Compares two sets with a total order.

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +
+
+ +

◆ set_minus()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual DataSet* DataSet::set_minus (const DataSetb) const
+
+pure virtual
+
+ +

returns a new instance with elements = this setminus b

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by _SDED_Add::eval(), and _SDED_Minus::eval().

+ +
+
+ +

◆ set_print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void DataSet::set_print (std::ostream & os) const
+
+pure virtual
+
+ +

returns a formatted string description of the set

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +
+
+ +

◆ set_size()

+ +
+
+ + + + + +
+ + + + + + + +
virtual long double DataSet::set_size () const
+
+pure virtual
+
+
Returns
the size (number of elements) in a set
+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +
+
+ +

◆ set_union()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual DataSet* DataSet::set_union (const DataSetb) const
+
+pure virtual
+
+ +

returns a new instance with elements = this union b

+ +

Implemented in GSDD, IntDataSet, and DDD.

+ +

Referenced by square_union().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDataSet__coll__graph.map b/libddd.html/classDataSet__coll__graph.map new file mode 100644 index 000000000..2944f7546 --- /dev/null +++ b/libddd.html/classDataSet__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classDataSet__coll__graph.md5 b/libddd.html/classDataSet__coll__graph.md5 new file mode 100644 index 000000000..6959156ce --- /dev/null +++ b/libddd.html/classDataSet__coll__graph.md5 @@ -0,0 +1 @@ +b6d38985b2e666305309fb363d3e1414 \ No newline at end of file diff --git a/libddd.html/classDataSet__coll__graph.png b/libddd.html/classDataSet__coll__graph.png new file mode 100644 index 000000000..dc14ebb48 Binary files /dev/null and b/libddd.html/classDataSet__coll__graph.png differ diff --git a/libddd.html/classDataSet__inherit__graph.map b/libddd.html/classDataSet__inherit__graph.map new file mode 100644 index 000000000..9ed69c5cd --- /dev/null +++ b/libddd.html/classDataSet__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classDataSet__inherit__graph.md5 b/libddd.html/classDataSet__inherit__graph.md5 new file mode 100644 index 000000000..02daa946a --- /dev/null +++ b/libddd.html/classDataSet__inherit__graph.md5 @@ -0,0 +1 @@ +8551eebfc93a77ac5242d561bcd78dfa \ No newline at end of file diff --git a/libddd.html/classDataSet__inherit__graph.png b/libddd.html/classDataSet__inherit__graph.png new file mode 100644 index 000000000..bccf3294d Binary files /dev/null and b/libddd.html/classDataSet__inherit__graph.png differ diff --git a/libddd.html/classDomExtract-members.html b/libddd.html/classDomExtract-members.html new file mode 100644 index 000000000..78301b10f --- /dev/null +++ b/libddd.html/classDomExtract-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DomExtract Member List
+
+
+ +

This is the complete list of members for DomExtract, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constDomExtractinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
DomExtract()DomExtractinline
DomExtract(int t)DomExtractinline
eval(const GDDD &d) constDomExtractinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constDomExtractinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() constDomExtractinlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &s) constDomExtractinlinevirtual
print(std::ostream &os) constDomExtractinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constDomExtractinlinevirtual
targetDomExtract
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDomExtract.html b/libddd.html/classDomExtract.html new file mode 100644 index 000000000..a06fe13c8 --- /dev/null +++ b/libddd.html/classDomExtract.html @@ -0,0 +1,875 @@ + + + + + + + +DDD: DomExtract Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
DomExtract Class Reference
+
+
+ +

Extractor of variable domains for invert computations. + More...

+
+Inheritance diagram for DomExtract:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for DomExtract:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 DomExtract ()
 
 DomExtract (int t)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
size_t hash () const
 Hash key computation. More...
 
bool operator== (const _GHom &s) const
 Comparator. More...
 
_GHomclone () const
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Public Attributes

int target
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Detailed Description

+

Extractor of variable domains for invert computations.

+

Constructor & Destructor Documentation

+ +

◆ DomExtract() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
DomExtract::DomExtract ()
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ DomExtract() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
DomExtract::DomExtract (int t)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* DomExtract::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References DomExtract().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD DomExtract::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), _GHom::GHom, GDDD::null, GDDD::one, target, GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t DomExtract::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References target.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool DomExtract::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool DomExtract::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References target.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void DomExtract::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References target.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool DomExtract::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ target

+ +
+
+ + + + +
int DomExtract::target
+
+ +

Referenced by eval(), hash(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classDomExtract__coll__graph.map b/libddd.html/classDomExtract__coll__graph.map new file mode 100644 index 000000000..55cb22215 --- /dev/null +++ b/libddd.html/classDomExtract__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classDomExtract__coll__graph.md5 b/libddd.html/classDomExtract__coll__graph.md5 new file mode 100644 index 000000000..43376d168 --- /dev/null +++ b/libddd.html/classDomExtract__coll__graph.md5 @@ -0,0 +1 @@ +9700ae54614270a5294b04aecbf9afaa \ No newline at end of file diff --git a/libddd.html/classDomExtract__coll__graph.png b/libddd.html/classDomExtract__coll__graph.png new file mode 100644 index 000000000..8e04080b8 Binary files /dev/null and b/libddd.html/classDomExtract__coll__graph.png differ diff --git a/libddd.html/classDomExtract__inherit__graph.map b/libddd.html/classDomExtract__inherit__graph.map new file mode 100644 index 000000000..55cb22215 --- /dev/null +++ b/libddd.html/classDomExtract__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classDomExtract__inherit__graph.md5 b/libddd.html/classDomExtract__inherit__graph.md5 new file mode 100644 index 000000000..43376d168 --- /dev/null +++ b/libddd.html/classDomExtract__inherit__graph.md5 @@ -0,0 +1 @@ +9700ae54614270a5294b04aecbf9afaa \ No newline at end of file diff --git a/libddd.html/classDomExtract__inherit__graph.png b/libddd.html/classDomExtract__inherit__graph.png new file mode 100644 index 000000000..8e04080b8 Binary files /dev/null and b/libddd.html/classDomExtract__inherit__graph.png differ diff --git a/libddd.html/classFixpoint-members.html b/libddd.html/classFixpoint-members.html new file mode 100644 index 000000000..5ba4e12a8 --- /dev/null +++ b/libddd.html/classFixpoint-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Fixpoint Member List
+
+
+ +

This is the complete list of members for Fixpoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
argFixpointprivate
can_garbageFixpointprivate
clone() constFixpointinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constFixpointinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
Fixpoint(const GHom &a, int ref=0, bool is_top_level=false)Fixpointinline
get_concret(const GHom &ghom)_GHominlinestatic
get_range() constFixpointinlinevirtual
has_image(const GDDD &d) constFixpointinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constFixpointinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constFixpointinlinevirtual
is_selector() constFixpointinlinevirtual
mark() constFixpointinlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constFixpointinlinevirtual
print(std::ostream &os) constFixpointinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constFixpointinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classFixpoint.html b/libddd.html/classFixpoint.html new file mode 100644 index 000000000..50f28d894 --- /dev/null +++ b/libddd.html/classFixpoint.html @@ -0,0 +1,888 @@ + + + + + + + +DDD: Fixpoint Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Fixpoint Class Reference
+
+
+
+Inheritance diagram for Fixpoint:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Fixpoint:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Fixpoint (const GHom &a, int ref=0, bool is_top_level=false)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GDDD has_image (const GDDD &d) const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GHom arg
 
bool can_garbage
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Fixpoint()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Fixpoint::Fixpoint (const GHoma,
int ref = 0,
bool is_top_level = false 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Fixpoint::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Fixpoint().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Fixpoint::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References DED::add(), arg, can_garbage, fixpoint(), MemoryManager::garbage(), _GHom::get_concret(), fobs::get_fixobserver(), _GHom::Hom, GDDD::mark(), GHom::mark(), GDDD::null, GDDD::one, MemoryManager::should_garbage(), testShouldInterrupt(), testWasInterrupt(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t Fixpoint::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References arg, and GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Fixpoint::has_image (const GDDDd) const
+
+inlinevirtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Fixpoint::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References arg, and GHom::hash().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Fixpoint::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References arg, fixpoint(), GHom::id, and GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Fixpoint::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References arg, and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Fixpoint::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References arg, and GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Fixpoint::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References arg.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Fixpoint::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References arg.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Fixpoint::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References arg, _GHom::get_concret(), and _GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ arg

+ +
+
+ + + + + +
+ + + + +
GHom Fixpoint::arg
+
+private
+
+
+ +

◆ can_garbage

+ +
+
+ + + + + +
+ + + + +
bool Fixpoint::can_garbage
+
+private
+
+ +

Referenced by eval(), and has_image().

+ +
+
+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classFixpoint__coll__graph.map b/libddd.html/classFixpoint__coll__graph.map new file mode 100644 index 000000000..bb93f9ada --- /dev/null +++ b/libddd.html/classFixpoint__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classFixpoint__coll__graph.md5 b/libddd.html/classFixpoint__coll__graph.md5 new file mode 100644 index 000000000..8ff955ff5 --- /dev/null +++ b/libddd.html/classFixpoint__coll__graph.md5 @@ -0,0 +1 @@ +11c1837a630b33bf35dc5bd07103201a \ No newline at end of file diff --git a/libddd.html/classFixpoint__coll__graph.png b/libddd.html/classFixpoint__coll__graph.png new file mode 100644 index 000000000..0cb4b7b30 Binary files /dev/null and b/libddd.html/classFixpoint__coll__graph.png differ diff --git a/libddd.html/classFixpoint__inherit__graph.map b/libddd.html/classFixpoint__inherit__graph.map new file mode 100644 index 000000000..18976ba19 --- /dev/null +++ b/libddd.html/classFixpoint__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classFixpoint__inherit__graph.md5 b/libddd.html/classFixpoint__inherit__graph.md5 new file mode 100644 index 000000000..525dbe304 --- /dev/null +++ b/libddd.html/classFixpoint__inherit__graph.md5 @@ -0,0 +1 @@ +fe61a6f9211572f32f8d9d3b1aa2498f \ No newline at end of file diff --git a/libddd.html/classFixpoint__inherit__graph.png b/libddd.html/classFixpoint__inherit__graph.png new file mode 100644 index 000000000..854459aae Binary files /dev/null and b/libddd.html/classFixpoint__inherit__graph.png differ diff --git a/libddd.html/classGCHook-members.html b/libddd.html/classGCHook-members.html new file mode 100644 index 000000000..f15b03dc7 --- /dev/null +++ b/libddd.html/classGCHook-members.html @@ -0,0 +1,59 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
GCHook Member List
+
+
+ +

This is the complete list of members for GCHook, including all inherited members.

+ + + + +
postGarbageCollect()=0GCHookpure virtual
preGarbageCollect()=0GCHookpure virtual
~GCHook()GCHookinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGCHook.html b/libddd.html/classGCHook.html new file mode 100644 index 000000000..4dc5190c5 --- /dev/null +++ b/libddd.html/classGCHook.html @@ -0,0 +1,156 @@ + + + + + + + +DDD: GCHook Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +List of all members
+
+
GCHook Class Referenceabstract
+
+
+ +

#include <MemoryManager.h>

+
+Collaboration diagram for GCHook:
+
+
Collaboration graph
+ + + +
+ + + + + + + + +

+Public Member Functions

virtual ~GCHook ()
 
virtual void preGarbageCollect ()=0
 
virtual void postGarbageCollect ()=0
 
+

Constructor & Destructor Documentation

+ +

◆ ~GCHook()

+ +
+
+ + + + + +
+ + + + + + + +
virtual GCHook::~GCHook ()
+
+inlinevirtual
+
+ +
+
+

Member Function Documentation

+ +

◆ postGarbageCollect()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void GCHook::postGarbageCollect ()
+
+pure virtual
+
+ +
+
+ +

◆ preGarbageCollect()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void GCHook::preGarbageCollect ()
+
+pure virtual
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGCHook__coll__graph.map b/libddd.html/classGCHook__coll__graph.map new file mode 100644 index 000000000..6f231c6d1 --- /dev/null +++ b/libddd.html/classGCHook__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classGCHook__coll__graph.md5 b/libddd.html/classGCHook__coll__graph.md5 new file mode 100644 index 000000000..74b1e1ee7 --- /dev/null +++ b/libddd.html/classGCHook__coll__graph.md5 @@ -0,0 +1 @@ +8c2ac1d38d6ce32f30cd75be5b74c70c \ No newline at end of file diff --git a/libddd.html/classGCHook__coll__graph.png b/libddd.html/classGCHook__coll__graph.png new file mode 100644 index 000000000..b0c27cf98 Binary files /dev/null and b/libddd.html/classGCHook__coll__graph.png differ diff --git a/libddd.html/classGDDD-members.html b/libddd.html/classGDDD-members.html new file mode 100644 index 000000000..c2dbf2f84 --- /dev/null +++ b/libddd.html/classGDDD-members.html @@ -0,0 +1,98 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
GDDD Member List
+
+
+ +

This is the complete list of members for GDDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() constGDDD
concretGDDDprivate
const_iterator typedefGDDD
DDD classGDDDfriend
edge_t typedefGDDD
end() constGDDD
garbage()GDDDstatic
GDDD(const id_t &_g)GDDDprivate
GDDD(_GDDD *_g)GDDDprivate
GDDD(int variable, const Valuation &value)GDDD
GDDD()GDDDinline
GDDD(int var, val_t val, const GDDD &d=one)GDDD
GDDD(int var, val_t val1, val_t val2, const GDDD &d=one)GDDD
getvarName(int var)GDDDstatic
hash() constGDDDinline
id_t typedefGDDD
loadDDD(std::istream &, std::vector< DDD > &)GDDDfriend
mark() constGDDD
nbsons() constGDDD
nbStates() constGDDD
nodeIndex(const std::vector< id_t > &) constGDDDprivate
noSharedSize() constGDDD
nullGDDDstatic
oneGDDDstatic
operator!=(const GDDD &g) constGDDDinline
operator<(const GDDD &g) constGDDD
operator<<(std::ostream &os, const GDDD &g)GDDDfriend
operator==(const GDDD &g) constGDDDinline
peak()GDDDstatic
print(std::ostream &os, std::string s) constGDDDprivate
pstats(bool reinit=true)GDDDstatic
refCounter() constGDDD
saveDDD(std::ostream &, std::vector< DDD >)GDDDfriend
saveNode(std::ostream &, std::vector< id_t > &) constGDDDprivate
size() constGDDD
statistics()GDDDstatic
topGDDDstatic
val_t typedefGDDD
valsz_t typedefGDDD
Valuation typedefGDDD
variable() constGDDD
varName(int var, const std::string &name)GDDDstatic
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGDDD.html b/libddd.html/classGDDD.html new file mode 100644 index 000000000..df1f250ae --- /dev/null +++ b/libddd.html/classGDDD.html @@ -0,0 +1,1487 @@ + + + + + + + +DDD: GDDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
GDDD Class Reference
+
+
+ +

This class is the base class representing a Data Decision Diagram. + More...

+ +

#include <DDD.h>

+
+Inheritance diagram for GDDD:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for GDDD:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Types

typedef unsigned int id_t
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Public Constructors
 GDDD (int variable, const Valuation &value)
 Construct a GDDD with arguments given. More...
 
 GDDD ()
 Default constructor creates the empty set DDD. More...
 
 GDDD (int var, val_t val, const GDDD &d=one)
 The most common way for the user of creating DDD. More...
 
 GDDD (int var, val_t val1, val_t val2, const GDDD &d=one)
 To create a DDD with arcs covering a range of values. More...
 
Comparisons for hash and map storage
bool operator== (const GDDD &g) const
 Comparison between DDD. More...
 
bool operator!= (const GDDD &g) const
 Comparison between DDD. More...
 
bool operator< (const GDDD &g) const
 Total ordering function between DDD. More...
 
unsigned int refCounter () const
 Returns current reference count of a node. More...
 
unsigned long int size () const
 Returns the size in number of nodes of a DDD structure. More...
 
size_t nbsons () const
 Returns the number of successors of a given node. This is the size of the arc array of the node. More...
 
long double nbStates () const
 Returns the number of states or paths represented by a given node. More...
 
long double noSharedSize () const
 Returns the number of nodes that would be used to represent a DDD if no unicity table was used. More...
 
+ + + + + + + + +

+Static Public Member Functions

Variable naming.
static void varName (int var, const std::string &name)
 Sets a variable's name. More...
 
static const std::string getvarName (int var)
 Gets a variable's name. More...
 
+ + + + + + + + + + + +

+Static Public Attributes

Terminal nodes defined as constants
static const GDDD one
 The accepting terminal. This is the basic leaf for accepted sequences. More...
 
static const GDDD null
 The non-accepting terminal. More...
 
static const GDDD top
 The approximation terminal. More...
 
+ + + + + + + + + + + + + + + + +

+Private Member Functions

 GDDD (const id_t &_g)
 A private constructor used in internals. More...
 
 GDDD (_GDDD *_g)
 UNIMPLEMENTED DELIBERATELY: see SHom.h for details. More...
 
void print (std::ostream &os, std::string s) const
 Internal function used in recursion for textual printing of GDDD. More...
 
void saveNode (std::ostream &, std::vector< id_t > &) const
 A function for DDD serialization (beta). More...
 
unsigned long int nodeIndex (const std::vector< id_t > &) const
 Another function used in serialization. More...
 
+ + + + +

+Private Attributes

id_t concret
 The real implementation class. More...
 
+ + + + + + + + + + + + + + +

+Friends

class DDD
 Open access to concret for reference counting in DDD. More...
 
std::ostream & operator<< (std::ostream &os, const GDDD &g)
 A textual output. More...
 
Serialization functions.
void saveDDD (std::ostream &, std::vector< DDD >)
 Function for serialization. Save a set of DDD to a stream. More...
 
void loadDDD (std::istream &, std::vector< DDD > &)
 Function for deserialization. Load a set of DDD from a stream. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

Public Accessors

typedef short val_t
 The type used as values of variables in a DDD. More...
 
typedef unsigned short valsz_t
 A type wide enough to count how many outgoing edges a DDD node has, should be congruent to val_t. More...
 
typedef std::pair< val_t, GDDDedge_t
 An edge is a pair <value,child node> More...
 
typedef std::vector< edge_tValuation
 To hide how arcs are actually stored. Use GDDD::Valuation to refer to arcs type. More...
 
typedef const edge_tconst_iterator
 To hide how arcs are stored. More...
 
int variable () const
 Returns a node's variable. More...
 
const_iterator begin () const
 API for iterating over the arcs of a DDD manually. More...
 
const_iterator end () const
 API for iterating over the arcs of a DDD manually. More...
 
+ + + + + + + + + + + + + + + + + + + +

Memory Management

void mark () const
 For garbage collection internals. More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different nodes created and not yet destroyed. More...
 
static void garbage ()
 For garbage collection, do not call this directly, use MemoryManager::garbage() instead. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static size_t peak ()
 Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection. More...
 
+

Detailed Description

+

This class is the base class representing a Data Decision Diagram.

+

It is composed of a set of arcs labeled by integers that point to successor GDDD nodes. This class does not implement reference counting : GDDD are destroyed on MemoryManager::Garbage unless they are also referenced as DDD. Note that this class is in fact a kind of smart pointer : operations are delegated on "concret" the true implementation class (of private hidden type _GDDD) that contains the data and has a single memory occurrence thanks to the unicity table.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+ + + + +
typedef const edge_t* GDDD::const_iterator
+
+ +

To hide how arcs are stored.

+

Also for more compact expressions : use GDDD::const_iterator to iterate over the arcs of a DDD

+ +
+
+ +

◆ edge_t

+ +
+
+ + + + +
typedef std::pair<val_t,GDDD> GDDD::edge_t
+
+ +

An edge is a pair <value,child node>

+ +
+
+ +

◆ id_t

+ +
+
+ + + + +
typedef unsigned int GDDD::id_t
+
+ +
+
+ +

◆ val_t

+ +
+
+ + + + +
typedef short GDDD::val_t
+
+ +

The type used as values of variables in a DDD.

+ +
+
+ +

◆ valsz_t

+ +
+
+ + + + +
typedef unsigned short GDDD::valsz_t
+
+ +

A type wide enough to count how many outgoing edges a DDD node has, should be congruent to val_t.

+ +
+
+ +

◆ Valuation

+ +
+
+ + + + +
typedef std::vector<edge_t > GDDD::Valuation
+
+ +

To hide how arcs are actually stored. Use GDDD::Valuation to refer to arcs type.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ GDDD() [1/6]

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD::GDDD (const id_t_g)
+
+private
+
+ +

A private constructor used in internals.

+
Parameters
+ + +
_gThe pointer provided should point into the unicity table
+
+
+ +
+
+ +

◆ GDDD() [2/6]

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD::GDDD (_GDDD_g)
+
+private
+
+ +

UNIMPLEMENTED DELIBERATELY: see SHom.h for details.

+

user should use version above const & or below const * into unique storage.

+ +
+
+ +

◆ GDDD() [3/6]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GDDD::GDDD (int variable,
const Valuationvalue 
)
+
+ +

Construct a GDDD with arguments given.

+
Todo:
why is this public ??? WARNING Valuation should be sorted according to arc values
+
Parameters
+ + + +
variablethe variable labeling the node
valuethe set of arcs of the node
+
+
+ +

References concret, _GDDD::create_unique_GDDD(), GDDD(), and variable().

+ +
+
+ +

◆ GDDD() [4/6]

+ +
+
+ + + + + +
+ + + + + + + +
GDDD::GDDD ()
+
+inline
+
+ +

Default constructor creates the empty set DDD.

+ +

Referenced by GDDD().

+ +
+
+ +

◆ GDDD() [5/6]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GDDD::GDDD (int var,
val_t val,
const GDDDd = one 
)
+
+ +

The most common way for the user of creating DDD.

+

This constructor builds a node with a single arc of the form var-val->d. Usually a user will create these single path DDD, possibly by imbrication as in GDDD(var1, val1, GDDD( var2, val2 )). Then compose them using +, -, *, ^ ...

Parameters
+ + + + +
varthe variable labeling the node
valthe value labeling the arc
dthe successor node or defaults to terminal GDDD::one if none provided
+
+
+ +

References concret, and _GDDD::create_unique_GDDD().

+ +
+
+ +

◆ GDDD() [6/6]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GDDD::GDDD (int var,
val_t val1,
val_t val2,
const GDDDd = one 
)
+
+ +

To create a DDD with arcs covering a range of values.

+

This interface creates nodes with a set of arcs bearing the values in the interval [val1,var2] that point to the same successor node d.

Parameters
+ + + + + +
varthe variable labeling the node
val1lowest value labeling an arc
val2highest value labeling an arc
dthe successor node or defaults to terminal GDDD::one if none provided
+
+
+ +

References concret, and _GDDD::create_unique_GDDD().

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
GDDD::const_iterator GDDD::begin () const
+
+ +

API for iterating over the arcs of a DDD manually.

+

i.e. not using a predefined evaluation mechanism such as StrongHom

+

for (GDDD::const_iterator it = a_gddd.begin() ; it != a_gddd.end() ; it++ ) { // do something }

+

returns the first arc

+ +

References _GDDD::begin(), concret, and _GDDD::resolve().

+ +

Referenced by DED::add(), dotExporter::collect(), _DED_Mult::eval(), _DED_Minus::eval(), _DED_Concat::eval(), StrongHom::eval(), StrongMLHom::eval(), Apply2k::eval(), DomExtract::eval(), _GHom::eval_skip(), StrongHom::has_image(), _GHom::has_image_skip(), _setVarConst::invert(), _incVar::invert(), MySize::mysize(), MyNbStates::nbStates(), print(), saveNode(), and SddSize::sddsize().

+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
GDDD::const_iterator GDDD::end () const
+
+ +

API for iterating over the arcs of a DDD manually.

+

i.e. not using a predefined evaluation mechanism such as StrongHom

+

for (GDDD::const_iterator it = a_gddd.begin() ; it != a_gddd.end() ; it++ ) { // do something }

+

returns a past the end iterator

+ +

References concret, _GDDD::end(), and _GDDD::resolve().

+ +

Referenced by dotExporter::collect(), _DED_Mult::eval(), _DED_Minus::eval(), _DED_Concat::eval(), StrongHom::eval(), StrongMLHom::eval(), Apply2k::eval(), DomExtract::eval(), _GHom::eval_skip(), StrongHom::has_image(), _GHom::has_image_skip(), _setVarConst::invert(), MySize::mysize(), MyNbStates::nbStates(), print(), saveNode(), and SddSize::sddsize().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GDDD::garbage ()
+
+static
+
+ +

For garbage collection, do not call this directly, use MemoryManager::garbage() instead.

+
Todo:
describe garbage collection algorithm(s) + mark usage homogeneously in one place.
+ +

References MyNbStates::clear(), UniqueTableId< T, ID >::garbage(), UniqueTableId< T, ID >::instance(), mark(), one, and top.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ getvarName()

+ +
+
+ + + + + +
+ + + + + + + + +
const std::string GDDD::getvarName (int var)
+
+static
+
+ +

Gets a variable's name.

+
Todo:
This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
+
Parameters
+ + +
varthe index of the variable to be named
+
+
+
Returns
the name attached to this variable index
+ +

References mapVarName.

+ +

Referenced by dotExporter::collect(), _VarCompState::print(), _setVarConst::print(), _incVar::print(), _VarCompVar::print(), and print().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GDDD::hash () const
+
+inline
+
+
+ +

◆ mark()

+ +
+
+ + + + + + + +
void GDDD::mark () const
+
+ +

For garbage collection internals.

+

Marks a GDDD as in use in garbage collection phase.

+ +

References concret, UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::mark().

+ +

Referenced by Fixpoint::eval(), garbage(), DDD::mark(), Constant::mark(), Apply2k::mark(), Mult::mark(), LeftConcat::mark(), RightConcat::mark(), Minus::mark(), and MemoryManager::mark().

+ +
+
+ +

◆ nbsons()

+ +
+
+ + + + + + + +
size_t GDDD::nbsons () const
+
+ +

Returns the number of successors of a given node. This is the size of the arc array of the node.

+ +

References concret, _GDDD::resolve(), and _GDDD::valuation_size.

+ +

Referenced by _DED_Mult::eval(), _DED_Minus::eval(), and _incVar::invert().

+ +
+
+ +

◆ nbStates()

+ +
+
+ + + + + + + +
long double GDDD::nbStates () const
+
+ +

Returns the number of states or paths represented by a given node.

+ +

Referenced by Statistic::load(), and DDD::set_size().

+ +
+
+ +

◆ nodeIndex()

+ +
+
+ + + + + +
+ + + + + + + + +
unsigned long int GDDD::nodeIndex (const std::vector< id_t > & ) const
+
+private
+
+ +

Another function used in serialization.

+ +

References concret.

+ +

Referenced by saveNode().

+ +
+
+ +

◆ noSharedSize()

+ +
+
+ + + + + + + +
long double GDDD::noSharedSize () const
+
+ +

Returns the number of nodes that would be used to represent a DDD if no unicity table was used.

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GDDD::operator!= (const GDDDg) const
+
+inline
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are not equal.
+ +

References concret.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + + + + +
bool GDDD::operator< (const GDDDg) const
+
+ +

Total ordering function between DDD.

+

Note that comparison is based on "concret" address in unicity table. This ordering is necessary for hash and map storage of GDDD.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if argument g is greater than "this" node.
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GDDD::operator== (const GDDDg) const
+
+inline
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are equal.
+ +

Referenced by DDD::empty().

+ +
+
+ +

◆ peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GDDD::peak ()
+
+static
+
+ +

Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection.

+ +

References UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::peak_size().

+ +

Referenced by Statistic::load(), and pstats().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::print (std::ostream & os,
std::string s 
) const
+
+private
+
+ +

Internal function used in recursion for textual printing of GDDD.

+ +

References begin(), end(), getvarName(), one, top, and variable().

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GDDD::pstats (bool reinit = true)
+
+static
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase. See also MemoryManager::pstats().

Todo:
allow output in other place than cout. Clean up output.
+ +

References UniqueTableId< T, ID >::instance(), and peak().

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + + + +
unsigned int GDDD::refCounter () const
+
+ +

Returns current reference count of a node.

+

Reference count corresponds to the number of DDD that use a given concrete node. No recursive reference counting is used : son nodes may have refCount=0 even if this node has a positive refCounter.

+ +
+
+ +

◆ saveNode()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::saveNode (std::ostream & ,
std::vector< id_t > &  
) const
+
+private
+
+ +

A function for DDD serialization (beta).

+ +

References begin(), concret, end(), nodeIndex(), one, and top.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + + + +
unsigned long int GDDD::size () const
+
+ +

Returns the size in number of nodes of a DDD structure.

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GDDD::statistics ()
+
+static
+
+ +

Returns unicity table current size. Gives the number of different nodes created and not yet destroyed.

+ +

References UniqueTableId< T, ID >::instance(), and UniqueTableId< T, ID >::size().

+ +

Referenced by MemoryManager::nbDDD().

+ +
+
+ +

◆ variable()

+ +
+
+ + + + + + + +
int GDDD::variable () const
+
+
+ +

◆ varName()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GDDD::varName (int var,
const std::string & name 
)
+
+static
+
+ +

Sets a variable's name.

+
Todo:
This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
+
Parameters
+ + + +
varthe index of the variable to be named
namethe name to attach to this variable index
+
+
+ +

References mapVarName.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ DDD

+ +
+
+ + + + + +
+ + + + +
friend class DDD
+
+friend
+
+ +

Open access to concret for reference counting in DDD.

+ +

Referenced by DDD::empty_set(), DDD::newcopy(), DDD::set_intersect(), DDD::set_minus(), and DDD::set_union().

+ +
+
+ +

◆ loadDDD

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void loadDDD (std::istream & is,
std::vector< DDD > & list 
)
+
+friend
+
+ +

Function for deserialization. Load a set of DDD from a stream.

+ +
+
+ +

◆ operator<<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GDDDg 
)
+
+friend
+
+ +

A textual output.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ saveDDD

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void saveDDD (std::ostream & os,
std::vector< DDDlist 
)
+
+friend
+
+ +

Function for serialization. Save a set of DDD to a stream.

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
id_t GDDD::concret
+
+private
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.

+ +

Referenced by begin(), DDD::DDD(), end(), GDDD(), hash(), mark(), nbsons(), nodeIndex(), operator!=(), operator<(), DDD::operator=(), saveNode(), variable(), and DDD::~DDD().

+ +
+
+ +

◆ null

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::null
+
+static
+
+
+ +

◆ one

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::one
+
+static
+
+
+ +

◆ top

+ +
+
+ + + + + +
+ + + + +
const GDDD GDDD::top
+
+static
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGDDD__coll__graph.map b/libddd.html/classGDDD__coll__graph.map new file mode 100644 index 000000000..dd144c1fd --- /dev/null +++ b/libddd.html/classGDDD__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classGDDD__coll__graph.md5 b/libddd.html/classGDDD__coll__graph.md5 new file mode 100644 index 000000000..0844a2379 --- /dev/null +++ b/libddd.html/classGDDD__coll__graph.md5 @@ -0,0 +1 @@ +c752ca02d7438056a76162c98cc00817 \ No newline at end of file diff --git a/libddd.html/classGDDD__coll__graph.png b/libddd.html/classGDDD__coll__graph.png new file mode 100644 index 000000000..d0f84ecda Binary files /dev/null and b/libddd.html/classGDDD__coll__graph.png differ diff --git a/libddd.html/classGDDD__inherit__graph.map b/libddd.html/classGDDD__inherit__graph.map new file mode 100644 index 000000000..346f35e01 --- /dev/null +++ b/libddd.html/classGDDD__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classGDDD__inherit__graph.md5 b/libddd.html/classGDDD__inherit__graph.md5 new file mode 100644 index 000000000..a3e694576 --- /dev/null +++ b/libddd.html/classGDDD__inherit__graph.md5 @@ -0,0 +1 @@ +27bbde4b987570a27b3a2fc355ffe5f2 \ No newline at end of file diff --git a/libddd.html/classGDDD__inherit__graph.png b/libddd.html/classGDDD__inherit__graph.png new file mode 100644 index 000000000..19f0caf49 Binary files /dev/null and b/libddd.html/classGDDD__inherit__graph.png differ diff --git a/libddd.html/classGHom-members.html b/libddd.html/classGHom-members.html new file mode 100644 index 000000000..2a1a175c4 --- /dev/null +++ b/libddd.html/classGHom-members.html @@ -0,0 +1,101 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
GHom Member List
+
+
+ +

This is the complete list of members for GHom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom classGHomfriend
add(const d3::set< GHom >::type &set)GHomstatic
ccompose(const d3::set< GHom >::type &set)GHomstatic
compose(const GHom &r) constGHom
concretGHomprivate
eval(const GDDD &d) constGHom
fixpoint(const GHom &, bool)GHomfriend
full_rangeGHomstatic
garbage()GHomstatic
get_range() constGHom
GHom(const _GHom *_h)GHominline
GHom(_GHom *_h)GHom
GHom(const _GHom &_h)GHom
GHom()GHominline
GHom(const MLHom &)GHom
GHom(const GDDD &d)GHom
GHom(int var, int val, const GHom &h=GHom::id)GHom
has_image(const GDDD &d) constGHom
hash() constGHominline
Hom classGHomfriend
idGHomstatic
invert(const GDDD &pot) constGHom
is_selector() constGHom
mark() constGHom
monotonic(const d3::set< GHom >::type &set)GHomfriend
negate() constGHom
NodeType typedefGHom
operator!=(const GHom &h) constGHominline
operator&(const GHom &, const GHom &)GHomfriend
operator()(const GDDD &d) constGHom
operator*(const GDDD &, const GHom &)GHomfriend
operator*(const GHom &, const GDDD &)GHomfriend
operator+(const GHom &, const GHom &)GHomfriend
operator-(const GHom &, const GDDD &)GHomfriend
operator<(const GHom &h) constGHom
operator<<(std::ostream &os, const GHom &h)GHomfriend
operator==(const GHom &h) constGHominline
operator^(const GDDD &, const GHom &)GHomfriend
operator^(const GHom &, const GDDD &)GHomfriend
pstats(bool reinit=true)GHomstatic
range_it typedefGHom
range_t typedefGHom
refCounter() constGHom
skip_variable(int var) constGHom
statistics()GHomstatic
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGHom.html b/libddd.html/classGHom.html new file mode 100644 index 000000000..9d8767f3f --- /dev/null +++ b/libddd.html/classGHom.html @@ -0,0 +1,1572 @@ + + + + + + + +DDD: GHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Private Attributes | +Friends | +List of all members
+
+
GHom Class Reference
+
+
+ +

This class is the base class representing a homomorphism over DDD. + More...

+ +

#include <Hom.h>

+
+Inheritance diagram for GHom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for GHom:
+
+
Collaboration graph
+ + + + +
+ + + + +

+Public Types

typedef GDDD NodeType
 
+ + + + + + + + + + +

+Public Member Functions

 GHom (const _GHom *_h)
 A uncontrolled constructor used in internals. More...
 
 GHom (_GHom *_h)
 THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote to const _GShom *_h and bypass unicity. More...
 
 GHom (const _GHom &_h)
 build a GHom from user provided homomorphisms such as StrongHom. More...
 
+ + + + +

+Private Attributes

const _GHomconcret
 The real implementation class. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

class Hom
 Open access to Hom derived class. More...
 
class _GHom
 Open access to _GHom based homomophisms. More...
 
GHom fixpoint (const GHom &, bool)
 This operator applies its argument to a node until a fixpoint is reached. More...
 
GHom monotonic (const d3::set< GHom >::type &set)
 This operator applies its arguments to a node until a fixpoint is reached. More...
 
GHom operator+ (const GHom &, const GHom &)
 This operator creates an operation that is the union of two operations. More...
 
GHom operator& (const GHom &, const GHom &)
 This operator creates an operation that is the composition of two operations. More...
 
GHom operator* (const GDDD &, const GHom &)
 This operator creates an operation that is the intersection of an operation and a constant DDD. More...
 
GHom operator* (const GHom &, const GDDD &)
 This operator creates an operation that is the intersection of an operation and a constant DDD. More...
 
GHom operator^ (const GDDD &, const GHom &)
 This is the left concatenantion operator, that adds a constant DDD above the operation. More...
 
GHom operator^ (const GHom &, const GDDD &)
 This is the right concatenantion operator, that adds a constant DDD below the operation. More...
 
GHom operator- (const GHom &, const GDDD &)
 This is a set difference constructor, only available for (hom - ddd), not hom - hom as that might not preserve linearity. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Comparisons for hash and map storage

typedef d3::set< int >::type range_t
 
typedef range_t::const_iterator range_it
 
std::ostream & operator<< (std::ostream &os, const GHom &h)
 
static const range_t full_range = GHom::range_t()
 The full_range : that targets everyone. More...
 
bool operator== (const GHom &h) const
 Comparison between Homomorphisms. More...
 
bool operator!= (const GHom &h) const
 Comparison between Homomorphisms. More...
 
bool operator< (const GHom &h) const
 Total ordering function between Hom. More...
 
bool is_selector () const
 This predicate is true if the homomorphism global behavior is only to prune some paths. More...
 
const range_t get_range () const
 Returns the range for this homomorphism, i.e. the dual of skip_variable. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GDDD has_image (const GDDD &d) const
 returns true if and only if h(d) != SDD::null More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD operator() (const GDDD &d) const
 Evaluation operator. More...
 
GDDD eval (const GDDD &d) const
 Evaluation function : users should use operator() instead of this. More...
 
bool skip_variable (int var) const
 
GHom compose (const GHom &r) const
 
int refCounter () const
 Accessor to visualize the reference count of the concret instance. More...
 
static GHom add (const d3::set< GHom >::type &set)
 A constructor for a union of several homomorphisms. More...
 
static GHom ccompose (const d3::set< GHom >::type &set)
 A constructor for a commutative composition of several homomorphisms. More...
 
+ + + + + + + + + + + + + + + + +

Public Constructors

static const GHom id
 Elementary homomorphism Identity, defined as a constant. More...
 
 GHom ()
 Default public constructor. More...
 
 GHom (const MLHom &)
 Encapsulate an MLHom, by setting a stop level for the upstream homomorphisms. More...
 
 GHom (const GDDD &d)
 Create a constant DDD homomorphism. More...
 
 GHom (int var, int val, const GHom &h=GHom::id)
 Create variable/value pair and left concatenate to a homomorphism. More...
 
+ + + + + + + + + + + + + + + + +

Memory Management

void mark () const
 For garbage collection internals. Marks a GHom as in use in garbage collection phase. More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static void garbage ()
 For garbage collection. More...
 
+

Detailed Description

+

This class is the base class representing a homomorphism over DDD.

+

A DDD homomorphism is a linear application that respects the better-defined relation (see ICATPN'2002 paper by Couvreur et al.). It comes with composition &, union +, and intersection * operators to construct complex operations from two homomorphisms. It also comes with the fixpoint() unary operator, that allows to implement saturation (see FORTE'05 paper by Couvreur & Thierry-Mieg) This class does not implement reference counting : GHom are destroyed on MemoryManager::Garbage unless they are also referenced as Hom. Note that this class is in fact a kind of smart pointer : operations are delegated on "concret" the true implementation class (of private hidden type _GHom) that contains the data and has a single memory occurrence thanks to the unicity table.

+

Member Typedef Documentation

+ +

◆ NodeType

+ +
+
+ + + + +
typedef GDDD GHom::NodeType
+
+ +
+
+ +

◆ range_it

+ +
+
+ + + + +
typedef range_t::const_iterator GHom::range_it
+
+ +
+
+ +

◆ range_t

+ +
+
+ + + + +
typedef d3::set<int>::type GHom::range_t
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ GHom() [1/7]

+ +
+
+ + + + + +
+ + + + + + + + +
GHom::GHom (const _GHom_h)
+
+inline
+
+ +

A uncontrolled constructor used in internals.

+

Made public for calls like return GHom(this) in StrongHom::phi definitions.

Parameters
+ + +
_hThe pointer provided should point into the unicity table
+
+
+ +
+
+ +

◆ GHom() [2/7]

+ +
+
+ + + + + + + + +
GHom::GHom (_GHom_h)
+
+ +

THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote to const _GShom *_h and bypass unicity.

+

User code prior to 20/05/08 would use this in the form : return new myHom(xx); This is now illegal as we take up memory allocation now, so the user should stack alloc and pass a reference as in GShom(const _GShom &_h). Exceptionally, for efficiency, return this; in a phi user function is permitted hence public visibility of above GShom(const _GShom *_h); This signature is here to ensure link errors in old user code.

+ +
+
+ +

◆ GHom() [3/7]

+ +
+
+ + + + + + + + +
GHom::GHom (const _GHom_h)
+
+ +

build a GHom from user provided homomorphisms such as StrongHom.

+

This call ensures canonization of h

+ +
+
+ +

◆ GHom() [4/7]

+ +
+
+ + + + + +
+ + + + + + + +
GHom::GHom ()
+
+inline
+
+ +

Default public constructor.

+

Builds Identity homomorphism : forall d in DDD, id(d) = d

+ +

Referenced by add().

+ +
+
+ +

◆ GHom() [5/7]

+ +
+
+ + + + + + + + +
GHom::GHom (const MLHomh)
+
+ +

Encapsulate an MLHom, by setting a stop level for the upstream homomorphisms.

+ +
+
+ +

◆ GHom() [6/7]

+ +
+
+ + + + + + + + +
GHom::GHom (const GDDDd)
+
+ +

Create a constant DDD homomorphism.

+

These are the basic building bricks of more complex operations. h(d1) (d2) = d1 Where d1 is a DDD, h(d1) a constant homomorphism and d2 an arbitrary DDD.

+ +
+
+ +

◆ GHom() [7/7]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GHom::GHom (int var,
int val,
const GHomh = GHom::id 
)
+
+ +

Create variable/value pair and left concatenate to a homomorphism.

+

h(var,val,g) (d) = DDD(var,val) ^ g(d). In other words : var – val -> g

Parameters
+ + + + +
varthe variable index
valthe value associated to the variable
hthe homomorphism to apply on successor node. Default is identity, so is equivalent to a left concatenation of a DDD(var,val).
+
+
+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::add (const d3::set< GHom >::type & set)
+
+static
+
+ +

A constructor for a union of several homomorphisms.

+

Note that for canonisation and optimization reasons, union is an n-ary and commutative composition operator. Use of this constructor may be slightly more efficient than using operator+ multiple times. H({h1,h2, ..hn}) (d) = sum_i h_i (d).

Parameters
+ + +
setthe set of homomorphisms to put in the union.
+
+
+
Todo:
std::set not very efficient for storage, replace by a sorted vector ?
+ +

References canonical, GHom(), and GDDD::null.

+ +

Referenced by Add::invert(), _setVarConst::invert(), And::negate(), and Add::skip_variable().

+ +
+
+ +

◆ ccompose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::ccompose (const d3::set< GHom >::type & set)
+
+static
+
+ +

A constructor for a commutative composition of several homomorphisms.

+

It's up to user to ensure pairwise commutatitivity off all arguments in the set

Parameters
+ + +
setthe set of homomorphisms to put in the composition.
+
+
+
Todo:
std::set not very efficient for storage, replace by a sorted vector ?
+ +

References canonical, and id.

+ +

Referenced by Add::negate().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + + + + +
GHom GHom::compose (const GHomr) const
+
+ +

References _GHom::compose(), and concret.

+ +

Referenced by nsMLHom::ConstantUp::eval().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + + + + +
GDDD GHom::eval (const GDDDd) const
+
+ +

Evaluation function : users should use operator() instead of this.

+

This evaluation function does not use the cache, it is called in case of cache miss in the call to operator().

Parameters
+ + +
dthe argument DDD
+
+
+
Returns
h(d)
+
+ +

References concret, and _GHom::eval_skip().

+ +

Referenced by _DED_Hom::eval().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GHom::garbage ()
+
+static
+
+ +

For garbage collection.

+

WARNING Do not use this function directly !! Use MemoryManager::garbage() to ensure proper reference counting and cache cleanup. Garbage collection algorithm is a simple two phase mark and sweep : in phase mark, all nodes with positive reference counts are marked, as well as their descendants, recursively. In phase sweep, all nodes which are unmarked are destroyed. This avoids maintaining reference counts during operation : only external references made through the DDD class are counted, and no recursive reference counting is needed.

+ +

References cache, canonical, Cache< FuncType, ParamType, ResType, EvalFunc >::clear(), imgcache, and _GHom::marking.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + + + +
const GHom::range_t GHom::get_range () const
+
+ +

Returns the range for this homomorphism, i.e. the dual of skip_variable.

+ +

References concret, and _GHom::get_range().

+ +

Referenced by commutative(), NotCond::get_range(), Compose::get_range(), Fixpoint::get_range(), and notInRange().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + + + + +
GDDD GHom::has_image (const GDDDd) const
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GHom::hash () const
+
+inline
+
+
+ +

◆ invert()

+ +
+
+ + + + + + + + +
GHom GHom::invert (const GDDDpot) const
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

References concret, and _GHom::invert().

+ +

Referenced by Mult::invert(), Inter::invert(), Compose::invert(), Minus::invert(), Fixpoint::invert(), and sns::LocalApply::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + + + +
bool GHom::is_selector () const
+
+ +

This predicate is true if the homomorphism global behavior is only to prune some paths.

+ +

References concret, and _GHom::is_selector().

+ +

Referenced by commutative(), Mult::is_selector(), Inter::is_selector(), Compose::is_selector(), Minus::is_selector(), Fixpoint::is_selector(), sns::LocalApply::is_selector(), ITE(), and operator*().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + + + +
void GHom::mark () const
+
+ +

For garbage collection internals. Marks a GHom as in use in garbage collection phase.

+ +

References concret, _GHom::mark(), and _GHom::marking.

+ +

Referenced by Fixpoint::eval(), Mult::mark(), Inter::mark(), NotCond::mark(), Compose::mark(), LeftConcat::mark(), RightConcat::mark(), Minus::mark(), Fixpoint::mark(), sns::LocalApply::mark(), and MemoryManager::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + + + +
GHom GHom::negate () const
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

References concret, and _GHom::negate().

+ +

Referenced by NotCond::has_image(), and Inter::negate().

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::operator!= (const GHomh) const
+
+inline
+
+ +

Comparison between Homomorphisms.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
hthe hom to compare to
+
+
+
Returns
true if the nodes are NOT equal.
+
+ +

References concret.

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + + + + +
GDDD GHom::operator() (const GDDDd) const
+
+ +

Evaluation operator.

+

Homomorphisms overload operator(), so they can be directly applied to DDD nodes. Note that evaluation through this operator uses and updates a cache.

Parameters
+ + +
dthe DDD to apply this h to.
+
+
+
Returns
h(d), the result of applying this h to d.
+ +

References cache, concret, _GHom::eval(), _GHom::immediat, Cache< FuncType, ParamType, ResType, EvalFunc >::insert(), and GDDD::null.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + + + + +
bool GHom::operator< (const GHomh) const
+
+ +

Total ordering function between Hom.

+

Note that comparison is based on chronological ordering of creation, and delegated to "concret". Unlike comparison on addresses in unicity table, this ensures reproductible results. This ordering is necessary for hash and map storage of GHom.

Parameters
+ + +
hthe node to compare to
+
+
+
Returns
true if argument h is greater than "this".
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::operator== (const GHomh) const
+
+inline
+
+ +

Comparison between Homomorphisms.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
hthe hom to compare to
+
+
+
Returns
true if the nodes are equal.
+
+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GHom::pstats (bool reinit = true)
+
+static
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase.

Todo:
allow output in other place than cout. Clean up output.
+ +

References _GHom, cache, and canonical.

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + + + +
int GHom::refCounter () const
+
+ +

Accessor to visualize the reference count of the concret instance.

+

See _GHom::refCounter for details.

+ +

References concret, and _GHom::refCounter.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + + + + +
bool GHom::skip_variable (int var) const
+
+ +

References concret, and _GHom::skip_variable().

+ +

Referenced by nsMLHom::GHomAdapter::skip_variable().

+ +
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GHom::statistics ()
+
+static
+
+ +

Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed.

+ +

References canonical.

+ +

Referenced by Statistic::load(), and MemoryManager::nbHom().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ _GHom

+ +
+
+ + + + + +
+ + + + +
friend class _GHom
+
+friend
+
+ +

Open access to _GHom based homomophisms.

+ +

Referenced by pstats().

+ +
+
+ +

◆ fixpoint

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom fixpoint (const GHom,
bool  
)
+
+friend
+
+ +

This operator applies its argument to a node until a fixpoint is reached.

+

Application consists in : while ( h(d) != d ) d = h(d); Where d is a DDD and h a homomorphism.

+

This new unary operator is introduced to implement local saturation in transition relation evaluation. Proper use of fixpoint allows to effectively tackle the intermediate size problem of decision diagram based representations. Note that evaluation simply iterates until a fixpoint is reached, thus to cumulate new states with previously reached it should be combined with GShom::id as in

+

fixpoint ( h + GShom::id )

+ +
+
+ +

◆ Hom

+ +
+
+ + + + + +
+ + + + +
friend class Hom
+
+friend
+
+ +

Open access to Hom derived class.

+ +
+
+ +

◆ monotonic

+ +
+
+ + + + + +
+ + + + + + + + +
GHom monotonic (const d3::set< GHom >::type & set)
+
+friend
+
+ +

This operator applies its arguments to a node until a fixpoint is reached.

+

Similar to the fixpoint, but we suppose here that the parameters are commutative And that any application order converges to the same result Typically this is the property of a base of monotonic< permutations.

+ +
+
+ +

◆ operator&

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator& (const GHom,
const GHom 
)
+
+friend
+
+ +

This operator creates an operation that is the composition of two operations.

+

(h & g) (d) = h( g(d) ) ; Where g,h are homomorphisms and d is a DDD.

+

Semantics : (h1 & h2) (d) = h1( h2(d) ).

+ +
+
+ +

◆ operator* [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GDDD,
const GHom 
)
+
+friend
+
+ +

This operator creates an operation that is the intersection of an operation and a constant DDD.

+

(d1 * h) (d2) = d1 * h(d2) ; Where h is a homomorphism and d1, d2 are DDD.

+

Semantics : (h * d1) (d) = h(d) * d1

+ +
+
+ +

◆ operator* [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator* (const GHom,
const GDDD 
)
+
+friend
+
+ +

This operator creates an operation that is the intersection of an operation and a constant DDD.

+

(h * d1) (d2) = h(d2) * d1 ; Where h is a homomorphism and d1, d2 are DDD.

+

Semantics : (d1 * h) (d) = d1 * h(d)

+ +
+
+ +

◆ operator+

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator+ (const GHom,
const GHom 
)
+
+friend
+
+ +

This operator creates an operation that is the union of two operations.

+

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a DDD.

+

See also GShom::add(). This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+ +

◆ operator-

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator- (const GHom,
const GDDD 
)
+
+friend
+
+ +

This is a set difference constructor, only available for (hom - ddd), not hom - hom as that might not preserve linearity.

+

(h - d1) (d2) = h(d2) - d1 Where h is a homomorphism and d1, d2 are DDD.

+

Note that this operation is not commutative, nor is it linear. This means the difference of two linear homomorphisms is not necessarily linear; (h1 - h2) (d) is not necessarily equal to h1(d) - h2(d). Therefore this operator is not defined for composition of two homomorphisms, only for a constant and a homomorphism.

+

Semantics : (h - d1) (d) = h(d) - d1

+ +
+
+ +

◆ operator<<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GHomh 
)
+
+friend
+
+ +
+
+ +

◆ operator^ [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GDDD,
const GHom 
)
+
+friend
+
+ +

This is the left concatenantion operator, that adds a constant DDD above the operation.

+

(d1 ^ h) (d2) = d1 ^ h(d2) Where h is a homomorphism and d1, d2 are DDD.

+

Note that this is inherently inefficient, the nodes of d1 are constructed, but the result a priori will not contain them, unless h(d) == GSDD::one.

+

Semantics : (d1 ^ h) (d) = d1 ^ h(d)

+ +
+
+ +

◆ operator^ [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom operator^ (const GHom,
const GDDD 
)
+
+friend
+
+ +

This is the right concatenantion operator, that adds a constant DDD below the operation.

+

(h ^ d1) (d2) = h(d1) ^ d2 Where h is a homomorphism and d1, d2 are DDD.

+

This is used to construct new nodes, and has the same efficiency issue as left concatenation.

+

Semantics : (h ^ d1) (d) = h(d) ^ d1

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GHom* GHom::concret
+
+private
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.
+

+ +

Referenced by compose(), eval(), _GHom::get_concret(), get_range(), hash(), Hom::Hom(), invert(), is_selector(), mark(), negate(), operator!=(), operator()(), operator<(), Hom::operator=(), refCounter(), skip_variable(), and Hom::~Hom().

+ +
+
+ +

◆ full_range

+ +
+
+ + + + + +
+ + + + +
const GHom::range_t GHom::full_range = GHom::range_t()
+
+static
+
+ +

The full_range : that targets everyone.

+ +

Referenced by _GHom::get_range().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const GHom GHom::id
+
+static
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGHom__coll__graph.map b/libddd.html/classGHom__coll__graph.map new file mode 100644 index 000000000..128b85571 --- /dev/null +++ b/libddd.html/classGHom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classGHom__coll__graph.md5 b/libddd.html/classGHom__coll__graph.md5 new file mode 100644 index 000000000..46285007e --- /dev/null +++ b/libddd.html/classGHom__coll__graph.md5 @@ -0,0 +1 @@ +a158a603164da2a13639739d481f3939 \ No newline at end of file diff --git a/libddd.html/classGHom__coll__graph.png b/libddd.html/classGHom__coll__graph.png new file mode 100644 index 000000000..f0fd57854 Binary files /dev/null and b/libddd.html/classGHom__coll__graph.png differ diff --git a/libddd.html/classGHom__inherit__graph.map b/libddd.html/classGHom__inherit__graph.map new file mode 100644 index 000000000..41aa96637 --- /dev/null +++ b/libddd.html/classGHom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classGHom__inherit__graph.md5 b/libddd.html/classGHom__inherit__graph.md5 new file mode 100644 index 000000000..90c9baf4b --- /dev/null +++ b/libddd.html/classGHom__inherit__graph.md5 @@ -0,0 +1 @@ +08747baa4fbd6a6113832cd251bf01da \ No newline at end of file diff --git a/libddd.html/classGHom__inherit__graph.png b/libddd.html/classGHom__inherit__graph.png new file mode 100644 index 000000000..be5f1f6ba Binary files /dev/null and b/libddd.html/classGHom__inherit__graph.png differ diff --git a/libddd.html/classGSDD-members.html b/libddd.html/classGSDD-members.html new file mode 100644 index 000000000..8e24f424e --- /dev/null +++ b/libddd.html/classGSDD-members.html @@ -0,0 +1,103 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
GSDD Member List
+
+
+ +

This is the complete list of members for GSDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GSDD classGSDDfriend
begin() constGSDD
concretGSDDprivate
const_iterator typedefGSDD
empty() constGSDDvirtual
empty_set() constGSDDvirtual
end() constGSDD
garbage()GSDDstatic
GSDD(int variable, Valuation value)GSDD
GSDD()GSDDinline
GSDD(int var, const DataSet &val, const GSDD &d=one)GSDD
GSDD(int var, const GSDD &val, const GSDD &d=one)GSDD
GSDD(int var, const class SDD &val, const GSDD &d=one)GSDD
GSDD(const _GSDD &_g)GSDD
GSDD(_GSDD *_g)GSDD
GSDD(const _GSDD *_g)GSDD
hash() constGSDDinline
mark() constGSDDvirtual
nbsons() constGSDD
nbStates() constGSDD
newcopy() constGSDDinlinevirtual
node_size() constGSDD
nullGSDDstatic
oneGSDDstatic
operator!=(const GSDD &g) constGSDDinline
operator<(const GSDD &g) constGSDD
operator<<(std::ostream &os, const GSDD &g)GSDDfriend
operator==(const GSDD &g) constGSDDinline
peak()GSDDstatic
print(std::ostream &os, std::string s) constGSDDprivate
pstats(bool reinit=true)GSDDstatic
refCounter() constGSDD
SDD classGSDDfriend
set_equal(const DataSet &b) constGSDDvirtual
set_hash() constGSDDvirtual
set_intersect(const DataSet &b) constGSDDvirtual
set_less_than(const DataSet &b) constGSDDvirtual
set_minus(const DataSet &b) constGSDDvirtual
set_print(std::ostream &os) constGSDDinlinevirtual
set_size() constGSDDvirtual
set_union(const DataSet &b) constGSDDvirtual
size() constGSDD
statistics()GSDDstatic
topGSDDstatic
Valuation typedefGSDD
variable() constGSDD
~DataSet()DataSetinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGSDD.html b/libddd.html/classGSDD.html new file mode 100644 index 000000000..530f1e964 --- /dev/null +++ b/libddd.html/classGSDD.html @@ -0,0 +1,1612 @@ + + + + + + + +DDD: GSDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
GSDD Class Reference
+
+
+ +

This class is the base class representing a hierarchical Set Decision Diagram. + More...

+ +

#include <SDD.h>

+
+Inheritance diagram for GSDD:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for GSDD:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Public Constructors
 GSDD (int variable, Valuation value)
 Construct a GSDD with arguments given. More...
 
 GSDD ()
 Default constructor creates the empty set SDD. More...
 
 GSDD (int var, const DataSet &val, const GSDD &d=one)
 The most common way for the user of creating SDD. More...
 
 GSDD (int var, const GSDD &val, const GSDD &d=one)
 Another common way for the user to create SDD. More...
 
 GSDD (int var, const class SDD &val, const GSDD &d=one)
 
 GSDD (const _GSDD &_g)
 A should be private constructor used in internals, DO NOT USE THIS. More...
 
 GSDD (_GSDD *_g)
 UNIMPLEMENTED DELIBERATELY: see SHom.h for details. More...
 
 GSDD (const _GSDD *_g)
 
Comparisons for hash and map storage
bool operator== (const GSDD &g) const
 Comparison between DDD. More...
 
bool operator!= (const GSDD &g) const
 Comparison between DDD. More...
 
bool operator< (const GSDD &g) const
 Total ordering function between DDD. More...
 
unsigned int refCounter () const
 Returns current reference count of a node. More...
 
unsigned long int size () const
 Returns the size in number of nodes of a SDD structure. More...
 
std::pair< unsigned long int, unsigned long int > node_size () const
 
size_t nbsons () const
 Returns the number of successors of a given node. This is the size of the arc array of the node. More...
 
long double nbStates () const
 Returns the number of states or paths represented by a given node. More...
 
DataSet implementation interface

This is the implementation of the DataSet class interface used in SDD context.

+

These functions allow to reference SDD from SDD arcs. IMPORTANT Remember to delete returned values after use.

+

Note these functions are not resistant to incompatible DataSet types. When these functions have a parameter "b", it should be a reference to a SDD from proper behavior.

+
DataSetnewcopy () const
 Return a new copy of a SDD. More...
 
DataSetset_intersect (const DataSet &b) const
 Compute intersection of two SDD. More...
 
DataSetset_union (const DataSet &b) const
 Compute union of two SDD. More...
 
DataSetset_minus (const DataSet &b) const
 Compute set difference of two SDD. More...
 
bool empty () const
 Return true if this is the empty set. More...
 
DataSetempty_set () const
 Returns a pointer to GSDD::null. More...
 
bool set_equal (const DataSet &b) const
 Compares to DataSet for equality. More...
 
bool set_less_than (const DataSet &b) const
 Compares two sets with a total order. More...
 
long double set_size () const
 Compares to DataSet for equality. More...
 
size_t set_hash () const
 Returns a hash key for the SDD. More...
 
void set_print (std::ostream &os) const
 Textual (human readable) output of a SDD. More...
 
+ + + + + + + + + + + +

+Static Public Attributes

Terminal nodes defined as constants
static const GSDD one
 The accepting terminal. This is the basic leaf for accepted sequences. More...
 
static const GSDD null
 The non-accepting terminal. More...
 
static const GSDD top
 The approximation terminal. More...
 
+ + + + +

+Private Member Functions

void print (std::ostream &os, std::string s) const
 Internal function used in recursion for textual printing of GDDD. More...
 
+ + + + +

+Private Attributes

const _GSDDconcret
 The real implementation class. More...
 
+ + + + + + + + + + +

+Friends

class SDD
 Open access to concret for reference counting in DDD. More...
 
class _GSDD
 open access to internal implementation class. More...
 
std::ostream & operator<< (std::ostream &os, const GSDD &g)
 A textual output. More...
 
+ + + + + + + + + + + + + + + + +

Public Accessors

typedef std::vector< std::pair< DataSet *, GSDD > > Valuation
 To hide how arcs are actually stored. Use GSDD::Valuation to refer to arcs type. More...
 
typedef Valuation::const_iterator const_iterator
 To hide how arcs are stored. More...
 
int variable () const
 Returns a node's variable. More...
 
const_iterator begin () const
 API for iterating over the arcs of a DDD manually. More...
 
const_iterator end () const
 API for iterating over the arcs of a DDD manually. More...
 
+ + + + + + + + + + + + + + + + + + + + +

Memory Management

Broken right now, dont use me or fixme first Returns the number of nodes that would be used to represent a SDD if no unicity table was used.

+
void mark () const
 For garbage collection internals. More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different nodes created and not yet destroyed. More...
 
static void garbage ()
 For garbage collection, do not call this directly, use MemoryManager::garbage() instead. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static size_t peak ()
 Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection. More...
 
+

Detailed Description

+

This class is the base class representing a hierarchical Set Decision Diagram.

+

It is composed of a set of arcs labeled by sets of values (DataSet in fact) that point to successor GSDD nodes. This class does not implement reference counting : GSDD are destroyed on MemoryManager::Garbage unless they are also referenced as SDD. Note that this class is in fact a kind of smart pointer : operations are delegated on "concret" the true implementation class (of private hidden type _GSDD) that contains the data and has a single memory occurrence thanks to the unicity table.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+ + + + +
typedef Valuation::const_iterator GSDD::const_iterator
+
+ +

To hide how arcs are stored.

+

Also for more compact expressions : use GDDD::const_iterator to iterate over the arcs of a DDD

+ +
+
+ +

◆ Valuation

+ +
+
+ + + + +
typedef std::vector<std::pair<DataSet *,GSDD> > GSDD::Valuation
+
+ +

To hide how arcs are actually stored. Use GSDD::Valuation to refer to arcs type.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ GSDD() [1/8]

+ +
+
+ + + + + + + + + + + + + + + + + + +
GSDD::GSDD (int variable,
Valuation value 
)
+
+ +

Construct a GSDD with arguments given.

+
Parameters
+ + + +
variablethe variable labeling the node
valuethe outgoing arc of the node
+
+
+ +

References _GSDD, canonical, concret, and variable().

+ +
+
+ +

◆ GSDD() [2/8]

+ +
+
+ + + + + +
+ + + + + + + +
GSDD::GSDD ()
+
+inline
+
+ +

Default constructor creates the empty set SDD.

+ +

Referenced by empty_set(), newcopy(), set_intersect(), set_minus(), and set_union().

+ +
+
+ +

◆ GSDD() [3/8]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GSDD::GSDD (int var,
const DataSetval,
const GSDDd = one 
)
+
+ +

The most common way for the user of creating SDD.

+

This constructor builds a node with a single arc of the form var-val->d. Usually a user will create these single path SDD, possibly by imbrication as in GSDD(var1, val1, GSDD( var2, val2 )). Then compose them using +, -, *, ^ ...

Parameters
+ + + + +
varthe variable labeling the node
valthe value labeling the arc
dthe successor node or defaults to terminal GSDD::one if none provided
+
+
+
+ +

References _GSDD, canonical, concret, DataSet::empty(), DataSet::newcopy(), and _GSDD::valuation.

+ +
+
+ +

◆ GSDD() [4/8]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GSDD::GSDD (int var,
const GSDDval,
const GSDDd = one 
)
+
+ +

Another common way for the user to create SDD.

+

This constructor builds a node with a single arc of the form var-val->d. This adapted version is useful when the arc value is itself the result of Hom applications as the compiler needs the change from GSDD to SDD type to recognize a DataSet

Parameters
+ + + + +
varthe variable labeling the node
valthe value labeling the arc
dthe successor node or defaults to terminal GSDD::one if none provided
+
+
+
+ +

References _GSDD, canonical, concret, empty(), newcopy(), and _GSDD::valuation.

+ +
+
+ +

◆ GSDD() [5/8]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GSDD::GSDD (int var,
const class SDDval,
const GSDDd = one 
)
+
+ +
+
+ +

◆ GSDD() [6/8]

+ +
+
+ + + + + + + + +
GSDD::GSDD (const _GSDD_g)
+
+ +

A should be private constructor used in internals, DO NOT USE THIS.

+

Calls canonical to uniquify the pointer provided

+ +
+
+ +

◆ GSDD() [7/8]

+ +
+
+ + + + + + + + +
GSDD::GSDD (_GSDD_g)
+
+ +

UNIMPLEMENTED DELIBERATELY: see SHom.h for details.

+

user should use version above const & or below const * into unique storage.

+ +
+
+ +

◆ GSDD() [8/8]

+ +
+
+ + + + + + + + +
GSDD::GSDD (const _GSDD_g)
+
+
Parameters
+ + +
_gThe pointer provided should point into the unicity table
+
+
+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
GSDD::const_iterator GSDD::begin () const
+
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool GSDD::empty () const
+
+virtual
+
+ +

Return true if this is the empty set.

+ +

Implements DataSet.

+ +

References null.

+ +

Referenced by GSDD().

+ +
+
+ +

◆ empty_set()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet * GSDD::empty_set () const
+
+virtual
+
+ +

Returns a pointer to GSDD::null.

+ +

Implements DataSet.

+ +

References GSDD().

+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
GSDD::const_iterator GSDD::end () const
+
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GSDD::garbage ()
+
+static
+
+ +

For garbage collection, do not call this directly, use MemoryManager::garbage() instead.

+
Todo:
describe garbage collection algorithm(s) + mark usage homogeneously in one place.
+ +

References canonical, MySDDNbStates::clear(), Max_SDD, and _GSDD::set_mark().

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::hash () const
+
+inline
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void GSDD::mark () const
+
+virtual
+
+ +

For garbage collection internals.

+

Marks a GSDD as in use in garbage collection phase.

+ +

Implements DataSet.

+ +

References concret, and _GSDD::mark().

+ +

Referenced by sns::Fixpoint::eval(), sns::Constant::mark(), sns::SApply2k::mark(), sns::Mult::mark(), sns::LeftConcat::mark(), sns::RightConcat::mark(), and sns::Minus::mark().

+ +
+
+ +

◆ nbsons()

+ +
+
+ + + + + + + +
size_t GSDD::nbsons () const
+
+ +

Returns the number of successors of a given node. This is the size of the arc array of the node.

+ +

References concret, and _GSDD::valuation.

+ +

Referenced by _GShom::eval_skip().

+ +
+
+ +

◆ nbStates()

+ +
+
+ + + + + + + +
long double GSDD::nbStates () const
+
+ +

Returns the number of states or paths represented by a given node.

+ +

Referenced by Statistic::load(), and set_size().

+ +
+
+ +

◆ newcopy()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet* GSDD::newcopy () const
+
+inlinevirtual
+
+ +

Return a new copy of a SDD.

+ +

Implements DataSet.

+ +

References GSDD().

+ +

Referenced by GSDD().

+ +
+
+ +

◆ node_size()

+ +
+
+ + + + + + + +
std::pair< unsigned long int, unsigned long int > GSDD::node_size () const
+
+ +

References SddSize::d3res, and SddSize::res.

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::operator!= (const GSDDg) const
+
+inline
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are not equal.
+ +

References concret.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + + + + +
bool GSDD::operator< (const GSDDg) const
+
+ +

Total ordering function between DDD.

+

Note that comparison is based on "concret" address in unicity table. This ordering is necessary for hash and map storage of GDDD.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if argument g is greater than "this" node.
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::operator== (const GSDDg) const
+
+inline
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are equal.
+ +
+
+ +

◆ peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::peak ()
+
+static
+
+ +

Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection.

+ +

References canonical, and Max_SDD.

+ +

Referenced by Statistic::load(), and pstats().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GSDD::print (std::ostream & os,
std::string s 
) const
+
+private
+
+ +

Internal function used in recursion for textual printing of GDDD.

+ +

References begin(), end(), one, top, and variable().

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GSDD::pstats (bool reinit = true)
+
+static
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase. See also MemoryManager::pstats().

Todo:
allow output in other place than cout. Clean up output.
+ +

References _GSDD, canonical, and peak().

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + + + +
unsigned int GSDD::refCounter () const
+
+ +

Returns current reference count of a node.

+

Reference count corresponds to the number of SDD that use a given concrete node. No recursive reference counting is used : son nodes may have refCount=0 even if this node has a positive refCounter.

+ +

References concret, and _GSDD::refCounter().

+ +

Referenced by dotExporter::collect().

+ +
+
+ +

◆ set_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::set_equal (const DataSetb) const
+
+virtual
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::set_hash () const
+
+virtual
+
+ +

Returns a hash key for the SDD.

+ +

Implements DataSet.

+ +

References concret.

+ +
+
+ +

◆ set_intersect()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_intersect (const DataSetb) const
+
+virtual
+
+ +

Compute intersection of two SDD.

+ +

Implements DataSet.

+ +

References GSDD().

+ +
+
+ +

◆ set_less_than()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::set_less_than (const DataSetb) const
+
+virtual
+
+ +

Compares two sets with a total order.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_minus()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_minus (const DataSetb) const
+
+virtual
+
+ +

Compute set difference of two SDD.

+ +

Implements DataSet.

+ +

References GSDD().

+ +
+
+ +

◆ set_print()

+ +
+
+ + + + + +
+ + + + + + + + +
void GSDD::set_print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Textual (human readable) output of a SDD.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_size()

+ +
+
+ + + + + +
+ + + + + + + +
long double GSDD::set_size () const
+
+virtual
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +

References nbStates().

+ +
+
+ +

◆ set_union()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_union (const DataSetb) const
+
+virtual
+
+ +

Compute union of two SDD.

+ +

Implements DataSet.

+ +

References GSDD().

+ +
+
+ +

◆ size()

+ +
+
+ + + + + + + +
unsigned long int GSDD::size () const
+
+ +

Returns the size in number of nodes of a SDD structure.

+ +
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GSDD::statistics ()
+
+static
+
+ +

Returns unicity table current size. Gives the number of different nodes created and not yet destroyed.

+ +

References canonical.

+ +

Referenced by MemoryManager::nbSDD().

+ +
+
+ +

◆ variable()

+ +
+
+ + + + + + + +
int GSDD::variable () const
+
+
+

Friends And Related Function Documentation

+ +

◆ _GSDD

+ +
+
+ + + + + +
+ + + + +
friend class _GSDD
+
+friend
+
+ +

open access to internal implementation class.

+ +

Referenced by GSDD(), and pstats().

+ +
+
+ +

◆ operator<<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GSDDg 
)
+
+friend
+
+ +

A textual output.

+

Don't use it with large number of paths as each element is printed on a different line

+ +
+
+ +

◆ SDD

+ +
+
+ + + + + +
+ + + + +
friend class SDD
+
+friend
+
+ +

Open access to concret for reference counting in DDD.

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GSDD* GSDD::concret
+
+private
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.

+ +

Referenced by begin(), end(), GSDD(), hash(), mark(), nbsons(), operator!=(), operator<(), SDD::operator=(), refCounter(), SDD::SDD(), set_hash(), variable(), and SDD::~SDD().

+ +
+
+ +

◆ null

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::null
+
+static
+
+
+ +

◆ one

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::one
+
+static
+
+
+ +

◆ top

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::top
+
+static
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGSDD__coll__graph.map b/libddd.html/classGSDD__coll__graph.map new file mode 100644 index 000000000..0b5d408f5 --- /dev/null +++ b/libddd.html/classGSDD__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classGSDD__coll__graph.md5 b/libddd.html/classGSDD__coll__graph.md5 new file mode 100644 index 000000000..15a44d139 --- /dev/null +++ b/libddd.html/classGSDD__coll__graph.md5 @@ -0,0 +1 @@ +a2977dcd0eb0e5fa6154b05fae90d556 \ No newline at end of file diff --git a/libddd.html/classGSDD__coll__graph.png b/libddd.html/classGSDD__coll__graph.png new file mode 100644 index 000000000..d0d86dd1f Binary files /dev/null and b/libddd.html/classGSDD__coll__graph.png differ diff --git a/libddd.html/classGSDD__inherit__graph.map b/libddd.html/classGSDD__inherit__graph.map new file mode 100644 index 000000000..61bfc7542 --- /dev/null +++ b/libddd.html/classGSDD__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classGSDD__inherit__graph.md5 b/libddd.html/classGSDD__inherit__graph.md5 new file mode 100644 index 000000000..a683ad02a --- /dev/null +++ b/libddd.html/classGSDD__inherit__graph.md5 @@ -0,0 +1 @@ +818e55b0d4be3c244c84f8220a4f4ee9 \ No newline at end of file diff --git a/libddd.html/classGSDD__inherit__graph.png b/libddd.html/classGSDD__inherit__graph.png new file mode 100644 index 000000000..1d4c3a6cf Binary files /dev/null and b/libddd.html/classGSDD__inherit__graph.png differ diff --git a/libddd.html/classGShom-members.html b/libddd.html/classGShom-members.html new file mode 100644 index 000000000..329523027 --- /dev/null +++ b/libddd.html/classGShom-members.html @@ -0,0 +1,115 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
GShom Member List
+
+
+ +

This is the complete list of members for GShom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom classGShomfriend
add(const d3::set< GShom >::type &)GShomfriend
add(const d3::set< GShom >::type &s)GShomstatic
BFS enum valueGShom
cache_peak()GShomstatic
cache_size()GShomstatic
compose(const GShom &) constGShom
concretGShomprivate
DFS enum valueGShom
eval(const GSDD &d) constGShom
fixpoint(const GShom &, bool is_top_level)GShomfriend
fixpointStrategy enum nameGShom
fixpointStrategy_GShomprivatestatic
full_rangeGShomstatic
garbage()GShomstatic
get_range() constGShom
getFixpointStrategy()GShominlinestatic
getSaturationStrategy()GShominlinestatic
GShom()GShominline
GShom(const _GShom *_h)GShom
GShom(_GShom *_h)GShom
GShom(const _GShom &_h)GShom
GShom(const MLShom &)GShom
GShom(const GSDD &d)GShom
GShom(int var, const DataSet &val, const GShom &h=GShom::id)GShom
has_image(const GSDD &d) constGShom
hash() constGShominline
idGShomstatic
invert(const GSDD &pot) constGShom
is_selector() constGShom
localApply(const GHom &, int target)GShomfriend
localApply(const GShom &, int target)GShomfriend
mark() constGShom
NodeType typedefGShom
operator!=(const GShom &h) constGShominline
operator&(const GShom &, const GShom &)GShomfriend
operator()(const GSDD &d) constGShom
operator*(const GSDD &, const GShom &)GShomfriend
operator*(const GShom &, const GSDD &)GShomfriend
operator+(const GShom &, const GShom &)GShomfriend
operator-(const GShom &, const GSDD &)GShomfriend
operator<(const GShom &h) constGShominline
operator<<(std::ostream &os, const GShom &h)GShomfriend
operator==(const GShom &h) constGShominline
operator^(const GSDD &, const GShom &)GShomfriend
operator^(const GShom &, const GSDD &)GShomfriend
ORDINARY enum valueGShom
pstats(bool reinit=true)GShomstatic
range_it typedefGShom
range_t typedefGShom
RECFIREANDSAT enum valueGShom
refCounter() constGShom
saturationStrategy enum nameGShom
saturationStrategy_GShomprivatestatic
setFixpointStrategy(fixpointStrategy strat)GShominlinestatic
setSaturationStrategy(saturationStrategy strat)GShominlinestatic
Shom classGShomfriend
skip_variable(int) constGShom
statistics()GShomstatic
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGShom.html b/libddd.html/classGShom.html new file mode 100644 index 000000000..89e34ca1a --- /dev/null +++ b/libddd.html/classGShom.html @@ -0,0 +1,1802 @@ + + + + + + + +DDD: GShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Friends | +List of all members
+
+
GShom Class Reference
+
+
+ +

This class is the base class for Homomorphisms over SDD. + More...

+ +

#include <SHom.h>

+
+Inheritance diagram for GShom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for GShom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + +

+Friends

class Shom
 Open access to concret for Shom class. More...
 
class _GShom
 Open access to _GShom based homomophisms. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Memory Management routines.

enum  fixpointStrategy { BFS +, DFS + }
 
enum  saturationStrategy { ORDINARY +, RECFIREANDSAT + }
 
static fixpointStrategy fixpointStrategy_ = BFS
 
static saturationStrategy saturationStrategy_ = ORDINARY
 
void mark () const
 Mark a concrete data as in use (forbids garbage collection of the data). More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Return the current size of the unicity table for GShom. More...
 
static size_t cache_size ()
 Return the current size of the cache for GShom. More...
 
static size_t cache_peak ()
 Return the peak size of the cache for GShom. More...
 
static void pstats (bool reinit=true)
 Print some usage statistics on Shom. More...
 
static void garbage ()
 Collects and destroys unused homomorphisms. More...
 
static fixpointStrategy getFixpointStrategy ()
 
static void setFixpointStrategy (fixpointStrategy strat)
 
static saturationStrategy getSaturationStrategy ()
 
static void setSaturationStrategy (saturationStrategy strat)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Friendly hard coded composition operators.

Open full access for library implemented hard coded operations.

+


+

+
typedef GSDD NodeType
 
GShom fixpoint (const GShom &, bool is_top_level)
 Apply a homomorphism until fixpoint is reached. More...
 
GShom localApply (const GHom &, int target)
 Apply a homomorphism on a target variable. More...
 
GShom localApply (const GShom &, int target)
 
GShom add (const d3::set< GShom >::type &)
 
GShom operator+ (const GShom &, const GShom &)
 Composition by union of two homomorphisms. More...
 
GShom operator& (const GShom &, const GShom &)
 Composition by circ (rond) of homomorphisms. More...
 
GShom operator* (const GSDD &, const GShom &)
 Intersection with a constant SDD. More...
 
GShom operator* (const GShom &, const GSDD &)
 Intersection with a constant SDD. More...
 
GShom operator^ (const GSDD &, const GShom &)
 Left Concatenation of a constant SDD. More...
 
GShom operator^ (const GShom &, const GSDD &)
 Right Concatenation of a constant SDD. More...
 
GShom operator- (const GShom &, const GSDD &)
 Set difference. More...
 
const _GShomconcret
 Pointer to the data instance in the unicity table. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

Comparisons between GShom.

Comparisons between GShom for unicity table.

+

Both equality comparison and total ordering provided to allow hash and map storage of GShom

+
typedef d3::set< int >::type range_t
 
typedef range_t::const_iterator range_it
 
static const range_t full_range = GShom::range_t()
 The full_range : that targets everyone. More...
 
bool operator== (const GShom &h) const
 
bool operator!= (const GShom &h) const
 
bool operator< (const GShom &h) const
 
bool is_selector () const
 This predicate is true if the homomorphism global behavior is only to prune some paths. More...
 
bool skip_variable (int) const
 This predicate is true if the homomorphism "skips" this variable. More...
 
const range_t get_range () const
 Returns the range for this homomorphism, i.e. the dual of skip_variable. More...
 
+ + + + + + + + + + + + + + + +

Evaluation mechanism for homomorphisms.

std::ostream & operator<< (std::ostream &os, const GShom &h)
 
GSDD operator() (const GSDD &d) const
 Applying a homomorphism to a node returns a node. More...
 
GSDD eval (const GSDD &d) const
 The full evaluation, this is the computational procedure, that is called when the computation cache yields a miss. More...
 
int refCounter () const
 For debug and development purposes. Gives the reference count of the concrete data. More...
 
static GShom add (const d3::set< GShom >::type &s)
 Compute an n-ary sum between homomorphisms. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Constructors

static const GShom id
 Elementary SDD homomorphism identity. Applied to any SDD d, it returns d. More...
 
 GShom ()
 Default constructor builds identity homomorphism. More...
 
 GShom (const _GShom *_h)
 Pseudo-private constructor. More...
 
 GShom (_GShom *_h)
 THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote to const _GShom *_h and bypass unicity. More...
 
 GShom (const _GShom &_h)
 To build GShom from pointers to user homomomorphisms. More...
 
 GShom (const MLShom &)
 Encapsulate an MLShom, by setting a stop level for the upstream homomorphisms. More...
 
 GShom (const GSDD &d)
 Construct a constant homomorphism. More...
 
 GShom (int var, const DataSet &val, const GShom &h=GShom::id)
 Left concatenation of a single arc SDD. More...
 
GShom invert (const GSDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GSDD has_image (const GSDD &d) const
 returns true if and only if h(d) != SDD::null More...
 
GShom compose (const GShom &) const
 
+

Detailed Description

+

This class is the base class for Homomorphisms over SDD.

+

Composition operators between homomorphisms are defined at this level, so this is the common ground between user-defined homomorphisms (i.e. derived classes of StrongShom) and hard-coded operations such as union, concatenation etc... Like GSDD, GShom implement a smart pointer behavior, the actual data (instance of hidden private class _GShom) linked to an instance of GShom has only one occurrence in memory, thanks to a unicity table.

+

User homomorphisms should be manipulated and instanciated using Shom, as GShom provide no reference counting and are thus likely to be collected in a MemoryManager::garbage() call. Shom provides reference counting.

+

Member Typedef Documentation

+ +

◆ NodeType

+ +
+
+ + + + +
typedef GSDD GShom::NodeType
+
+ +
+
+ +

◆ range_it

+ +
+
+ + + + +
typedef range_t::const_iterator GShom::range_it
+
+ +
+
+ +

◆ range_t

+ +
+
+ + + + +
typedef d3::set<int>::type GShom::range_t
+
+ +
+
+

Member Enumeration Documentation

+ +

◆ fixpointStrategy

+ +
+
+ + + + +
enum GShom::fixpointStrategy
+
+ + + +
Enumerator
BFS 
DFS 
+ +
+
+ +

◆ saturationStrategy

+ +
+
+ + + + +
enum GShom::saturationStrategy
+
+ + + +
Enumerator
ORDINARY 
RECFIREANDSAT 
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ GShom() [1/7]

+ +
+
+ + + + + +
+ + + + + + + +
GShom::GShom ()
+
+inline
+
+ +

Default constructor builds identity homomorphism.

+ +
+
+ +

◆ GShom() [2/7]

+ +
+
+ + + + + + + + +
GShom::GShom (const _GShom_h)
+
+ +

Pseudo-private constructor.

+

This should only be called with pointers into the unicity table. For example return this in a StrongHom phi() body is legal.

Parameters
+ + +
_hpointer into the unicity table
+
+
+ +
+
+ +

◆ GShom() [3/7]

+ +
+
+ + + + + + + + +
GShom::GShom (_GShom_h)
+
+ +

THIS VERSION IS DELIBERATELY UNIMPLEMENTED OTHERWISE bad calls like GShom(new myHom()) would promote to const _GShom *_h and bypass unicity.

+

User code prior to 20/05/08 would use this in the form : return new myHom(xx); This is now illegal as we take up memory allocation now, so the user should stack alloc and pass a reference as in GShom(const _GShom &_h). Exceptionally, for efficiency, return this; in a phi user function is permitted hence public visibility of above GShom(const _GShom *_h); This signature is here to ensure link errors in old user code.

+ +
+
+ +

◆ GShom() [4/7]

+ +
+
+ + + + + + + + +
GShom::GShom (const _GShom_h)
+
+ +

To build GShom from pointers to user homomomorphisms.

+

This call ensures unicity of representation.

+ +
+
+ +

◆ GShom() [5/7]

+ +
+
+ + + + + + + + +
GShom::GShom (const MLShomh)
+
+ +

Encapsulate an MLShom, by setting a stop level for the upstream homomorphisms.

+ +
+
+ +

◆ GShom() [6/7]

+ +
+
+ + + + + + + + +
GShom::GShom (const GSDDd)
+
+ +

Construct a constant homomorphism.

+

Applied to any SDD this homomorphism will return the value it was initialized with.

+ +
+
+ +

◆ GShom() [7/7]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GShom::GShom (int var,
const DataSetval,
const GShomh = GShom::id 
)
+
+ +

Left concatenation of a single arc SDD.

+

This is provided as a convenience and to avoid the inefficiency if we build a node pointing to GSDD::one and then concatenate something to it. Applied to a SDD d, this homomorphism will return var–val->h(d).

Parameters
+ + + + +
varthe variable labeling the node to left concat
valthe set of values labeling the arc
hthe homomorphism to apply on the argument d. This defaults to GSHom::id.
+
+
+ +

References canonical, concret, DataSet::empty(), _GShom::get_concret(), and Shom::null.

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + + +
static GShom GShom::add (const d3::set< GShom >::type & s)
+
+static
+
+ +

Compute an n-ary sum between homomorphisms.

+

This should be slightly more efficient in evaluation than a composition of binary sums constructed using the friend operator+.

Todo:
: move this to friend status not static member for more homogeneity with other operators.
+ +
+
+ +

◆ cache_peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::cache_peak ()
+
+static
+
+ +

Return the peak size of the cache for GShom.

+ +

References sns::cache, and Cache< FuncType, ParamType, ResType, EvalFunc >::peak().

+ +
+
+ +

◆ cache_size()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::cache_size ()
+
+static
+
+ +

Return the current size of the cache for GShom.

+ +

References sns::cache, and Cache< FuncType, ParamType, ResType, EvalFunc >::size().

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + + + + +
GShom GShom::compose (const GShomo) const
+
+ +

References _GShom::compose(), and concret.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + + + + +
GSDD GShom::eval (const GSDDd) const
+
+ +

The full evaluation, this is the computational procedure, that is called when the computation cache yields a miss.

+

Users should not use this function directly, but only through GSDD::operator().

+ +

References concret, and _GShom::eval_skip().

+ +

Referenced by operator()().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GShom::garbage ()
+
+static
+
+ +

Collects and destroys unused homomorphisms.

+

Do not call this directly but through MemoryManager::garbage() as order of calls (among GSDD::garbage(), GShom::garbage(), SDED::garbage()) is important.

+ +

References addCache, sns::cache, canonical, Cache< FuncType, ParamType, ResType, EvalFunc >::clear(), sns::imgcache, and _GShom::set_mark().

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + + + +
const GShom::range_t GShom::get_range () const
+
+ +

Returns the range for this homomorphism, i.e. the dual of skip_variable.

+ +

References concret, and _GShom::get_range().

+ +

Referenced by commutative(), sns::SNotCond::get_range(), sns::RecFireSat::get_range(), sns::Compose::get_range(), sns::Fixpoint::get_range(), and notInRange().

+ +
+
+ +

◆ getFixpointStrategy()

+ +
+
+ + + + + +
+ + + + + + + +
static fixpointStrategy GShom::getFixpointStrategy ()
+
+inlinestatic
+
+ +

References fixpointStrategy_.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+ +

◆ getSaturationStrategy()

+ +
+
+ + + + + +
+ + + + + + + +
static saturationStrategy GShom::getSaturationStrategy ()
+
+inlinestatic
+
+ +

References saturationStrategy_.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + + + + +
GSDD GShom::has_image (const GSDDd) const
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::hash () const
+
+inline
+
+
+ +

◆ invert()

+ +
+
+ + + + + + + + +
GShom GShom::invert (const GSDDpot) const
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

References concret, and _GShom::invert().

+ +

Referenced by sns::Mult::invert(), sns::Inter::invert(), sns::SLocalApply::invert(), sns::RecFireSat::invert(), sns::Compose::invert(), sns::Minus::invert(), sns::HomMinus::invert(), and sns::Fixpoint::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + + + +
bool GShom::is_selector () const
+
+
+ +

◆ mark()

+ +
+
+ + + + + + + +
void GShom::mark () const
+
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator!= (const GShomh) const
+
+inline
+
+ +

References concret.

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + + + + +
GSDD GShom::operator() (const GSDDd) const
+
+ +

Applying a homomorphism to a node returns a node.

+

This is the normal way for users of computing the application of a homomorphism.

+ +

References sns::cache, concret, eval(), _GShom::immediat(), and GSDD::null.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator< (const GShomh) const
+
+inline
+
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator== (const GShomh) const
+
+inline
+
+ +

References concret.

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GShom::pstats (bool reinit = true)
+
+static
+
+ +

Print some usage statistics on Shom.

+

Mostly used for development and debug.

Todo:
Allow output not in std::cout.
+ +

References _GShom, sns::cache, and canonical.

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + + + +
int GShom::refCounter () const
+
+ +

For debug and development purposes. Gives the reference count of the concrete data.

+ +

References concret, and _GShom::refCounter().

+ +
+
+ +

◆ setFixpointStrategy()

+ +
+
+ + + + + +
+ + + + + + + + +
static void GShom::setFixpointStrategy (fixpointStrategy strat)
+
+inlinestatic
+
+ +

References fixpointStrategy_.

+ +
+
+ +

◆ setSaturationStrategy()

+ +
+
+ + + + + +
+ + + + + + + + +
static void GShom::setSaturationStrategy (saturationStrategy strat)
+
+inlinestatic
+
+ +

References saturationStrategy_.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + + + + +
bool GShom::skip_variable (int var) const
+
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GShom::statistics ()
+
+static
+
+ +

Return the current size of the unicity table for GShom.

+ +

References canonical.

+ +

Referenced by Statistic::load(), and MemoryManager::nbShom().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ _GShom

+ +
+
+ + + + + +
+ + + + +
friend class _GShom
+
+friend
+
+ +

Open access to _GShom based homomophisms.

+ +

Referenced by pstats().

+ +
+
+ +

◆ add

+ +
+
+ + + + + +
+ + + + + + + + +
GShom GShom::add (const d3::set< GShom >::type & set)
+
+friend
+
+
+ +

◆ fixpoint

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom fixpoint (const GShom,
bool is_top_level 
)
+
+friend
+
+ +

Apply a homomorphism until fixpoint is reached.

+

This new unary operator is introduced to implement local saturation in transition relation evaluation. Proper use of fixpoint allows to effectively tackle the intermediate size problem of decision diagram based representations. Note that evaluation simply iterates until a fixpoint is reached, thus to cumulate new states with previously reached it should be combined with GShom::id as in

+

fixpoint ( h + GShom::id )

+ +
+
+ +

◆ localApply [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GHom,
int target 
)
+
+friend
+
+ +

Apply a homomorphism on a target variable.

+

This ensures that the operation is local to this variable, and is used to implement auto-saturation.

+ +
+
+ +

◆ localApply [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom localApply (const GShom,
int target 
)
+
+friend
+
+ +
+
+ +

◆ operator&

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator& (const GShom,
const GShom 
)
+
+friend
+
+ +

Composition by circ (rond) of homomorphisms.

+

Semantics : (h1 & h2) (d) = h1( h2(d) ).

+ +
+
+ +

◆ operator* [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GSDD,
const GShom 
)
+
+friend
+
+ +

Intersection with a constant SDD.

+

Semantics : (h * d1) (d) = h(d) * d1

+ +
+
+ +

◆ operator* [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator* (const GShom,
const GSDD 
)
+
+friend
+
+ +

Intersection with a constant SDD.

+

Semantics : (d1 * h) (d) = d1 * h(d)

+ +
+
+ +

◆ operator+

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator+ (const GShom,
const GShom 
)
+
+friend
+
+ +

Composition by union of two homomorphisms.

+

See also GShom::add(). This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+ +

◆ operator-

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator- (const GShom,
const GSDD 
)
+
+friend
+
+ +

Set difference.

+

Note that this operation is not commutative, nor is it linear. This means the difference of two linear homomorphisms is not necessarily linear; (h1 - h2) (d) is not necessarily equal to h1(d) - h2(d). Therefore this operator is not defined for composition of two homomorphisms, only for a constant and a homomorphism.

+

Semantics : (h - d1) (d) = h(d) - d1

+ +
+
+ +

◆ operator<<

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& operator<< (std::ostream & os,
const GShomh 
)
+
+friend
+
+ +
+
+ +

◆ operator^ [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GSDD,
const GShom 
)
+
+friend
+
+ +

Left Concatenation of a constant SDD.

+

Note that this is inherently inefficient, the nodes of d1 are constructed, but the result a priori will not contain them, unless h(d) == GSDD::one.

+

Semantics : (d1 ^ h) (d) = d1 ^ h(d)

+ +
+
+ +

◆ operator^ [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GShom operator^ (const GShom,
const GSDD 
)
+
+friend
+
+ +

Right Concatenation of a constant SDD.

+

This is used to construct new nodes, and has the same efficiency issue as left concatenation.

+

Semantics : (h ^ d1) (d) = h(d) ^ d1

+ +
+
+ +

◆ Shom

+ +
+
+ + + + + +
+ + + + +
friend class Shom
+
+friend
+
+ +

Open access to concret for Shom class.

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GShom* GShom::concret
+
+private
+
+
+ +

◆ fixpointStrategy_

+ +
+
+ + + + + +
+ + + + +
GShom::fixpointStrategy GShom::fixpointStrategy_ = BFS
+
+staticprivate
+
+ +

Referenced by getFixpointStrategy(), and setFixpointStrategy().

+ +
+
+ +

◆ full_range

+ +
+
+ + + + + +
+ + + + +
const GShom::range_t GShom::full_range = GShom::range_t()
+
+static
+
+ +

The full_range : that targets everyone.

+ +

Referenced by _GShom::get_range().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const GShom GShom::id
+
+static
+
+
+ +

◆ saturationStrategy_

+ +
+
+ + + + + +
+ + + + +
GShom::saturationStrategy GShom::saturationStrategy_ = ORDINARY
+
+staticprivate
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classGShom__coll__graph.map b/libddd.html/classGShom__coll__graph.map new file mode 100644 index 000000000..9d39f7ca6 --- /dev/null +++ b/libddd.html/classGShom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classGShom__coll__graph.md5 b/libddd.html/classGShom__coll__graph.md5 new file mode 100644 index 000000000..38e420c84 --- /dev/null +++ b/libddd.html/classGShom__coll__graph.md5 @@ -0,0 +1 @@ +074f5e141359e555f3b6b00ee00e2a64 \ No newline at end of file diff --git a/libddd.html/classGShom__coll__graph.png b/libddd.html/classGShom__coll__graph.png new file mode 100644 index 000000000..9646ec435 Binary files /dev/null and b/libddd.html/classGShom__coll__graph.png differ diff --git a/libddd.html/classGShom__inherit__graph.map b/libddd.html/classGShom__inherit__graph.map new file mode 100644 index 000000000..1361b262f --- /dev/null +++ b/libddd.html/classGShom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classGShom__inherit__graph.md5 b/libddd.html/classGShom__inherit__graph.md5 new file mode 100644 index 000000000..e1f72376d --- /dev/null +++ b/libddd.html/classGShom__inherit__graph.md5 @@ -0,0 +1 @@ +7f1eed200242a8b42d132412bc7382bf \ No newline at end of file diff --git a/libddd.html/classGShom__inherit__graph.png b/libddd.html/classGShom__inherit__graph.png new file mode 100644 index 000000000..b906ce3a2 Binary files /dev/null and b/libddd.html/classGShom__inherit__graph.png differ diff --git a/libddd.html/classHom-members.html b/libddd.html/classHom-members.html new file mode 100644 index 000000000..29c866478 --- /dev/null +++ b/libddd.html/classHom-members.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Hom Member List
+
+
+ +

This is the complete list of members for Hom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add(const d3::set< GHom >::type &set)GHomstatic
ccompose(const d3::set< GHom >::type &set)GHomstatic
compose(const GHom &r) constGHom
concretGHomprivate
eval(const GDDD &d) constGHom
full_rangeGHomstatic
garbage()GHomstatic
get_range() constGHom
GHom(const _GHom *_h)GHominline
GHom(_GHom *_h)GHom
GHom(const _GHom &_h)GHom
GHom()GHominline
GHom(const MLHom &)GHom
GHom(const GDDD &d)GHom
GHom(int var, int val, const GHom &h=GHom::id)GHom
has_image(const GDDD &d) constGHom
hash() constGHominline
Hom(const GHom &h=GHom::id)Hom
Hom(const Hom &h)Hom
Hom(const GDDD &d)Hom
Hom(int var, int val, const GHom &h=GHom::id)Hom
idGHomstatic
invert(const GDDD &pot) constGHom
is_selector() constGHom
mark() constGHom
negate() constGHom
NodeType typedefGHom
operator!=(const GHom &h) constGHominline
operator()(const GDDD &d) constGHom
operator<(const GHom &h) constGHom
operator=(const GHom &)Hom
operator=(const Hom &)Hom
operator==(const GHom &h) constGHominline
pstats(bool reinit=true)GHomstatic
range_it typedefGHom
range_t typedefGHom
refCounter() constGHom
skip_variable(int var) constGHom
statistics()GHomstatic
~Hom()Hom
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classHom.html b/libddd.html/classHom.html new file mode 100644 index 000000000..a041fddad --- /dev/null +++ b/libddd.html/classHom.html @@ -0,0 +1,1204 @@ + + + + + + + +DDD: Hom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Private Attributes | +List of all members
+
+
Hom Class Reference
+
+
+ +

This is the user interface class to manipulate homomorphisms. + More...

+ +

#include <Hom.h>

+
+Inheritance diagram for Hom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Hom:
+
+
Collaboration graph
+ + + + + +
+ + + + +

+Public Types

typedef GDDD NodeType
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Public Constructors.

Default constructor builds identity homomorphism.

+
 Hom (const GHom &h=GHom::id)
 Build an Hom from a GHom. More...
 
 Hom (const Hom &h)
 Copy constructor. Maintains reference count. More...
 
 Hom (const GDDD &d)
 Constructs a constant homomorphism. More...
 
 Hom (int var, int val, const GHom &h=GHom::id)
 Left concatenation of a single arc DDD. More...
 
 ~Hom ()
 Destructor maintains reference counting. More...
 
Assignment operators.
Homoperator= (const GHom &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
Homoperator= (const Hom &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
+ + + + + +

+Static Public Attributes

Public Constructors
static const GHom id
 Elementary homomorphism Identity, defined as a constant. More...
 
+ + + + +

+Private Attributes

const _GHomconcret
 The real implementation class. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Comparisons for hash and map storage

bool operator== (const GHom &h) const
 Comparison between Homomorphisms. More...
 
bool operator!= (const GHom &h) const
 Comparison between Homomorphisms. More...
 
bool operator< (const GHom &h) const
 Total ordering function between Hom. More...
 
bool is_selector () const
 This predicate is true if the homomorphism global behavior is only to prune some paths. More...
 
const range_t get_range () const
 Returns the range for this homomorphism, i.e. the dual of skip_variable. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GDDD has_image (const GDDD &d) const
 returns true if and only if h(d) != SDD::null More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD operator() (const GDDD &d) const
 Evaluation operator. More...
 
GDDD eval (const GDDD &d) const
 Evaluation function : users should use operator() instead of this. More...
 
bool skip_variable (int var) const
 
GHom compose (const GHom &r) const
 
int refCounter () const
 Accessor to visualize the reference count of the concret instance. More...
 
typedef d3::set< int >::type range_t
 
typedef range_t::const_iterator range_it
 
static const range_t full_range = GHom::range_t()
 The full_range : that targets everyone. More...
 
static GHom add (const d3::set< GHom >::type &set)
 A constructor for a union of several homomorphisms. More...
 
static GHom ccompose (const d3::set< GHom >::type &set)
 A constructor for a commutative composition of several homomorphisms. More...
 
+ + + + + + + + + + + + + + + + +

Memory Management

void mark () const
 For garbage collection internals. Marks a GHom as in use in garbage collection phase. More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static void garbage ()
 For garbage collection. More...
 
+

Detailed Description

+

This is the user interface class to manipulate homomorphisms.

+

The only difference with Hom is that it implements reference counting so that instances of Hom are not collected upon MemoryManager::garbage().

+

Member Typedef Documentation

+ +

◆ NodeType

+ +
+
+ + + + + +
+ + + + +
typedef GDDD GHom::NodeType
+
+inherited
+
+ +
+
+ +

◆ range_it

+ +
+
+ + + + + +
+ + + + +
typedef range_t::const_iterator GHom::range_it
+
+inherited
+
+ +
+
+ +

◆ range_t

+ +
+
+ + + + + +
+ + + + +
typedef d3::set<int>::type GHom::range_t
+
+inherited
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Hom() [1/4]

+ +
+
+ + + + + + + + +
Hom::Hom (const GHomh = GHom::id)
+
+ +

Build an Hom from a GHom.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ Hom() [2/4]

+ +
+
+ + + + + + + + +
Hom::Hom (const Homh)
+
+ +

Copy constructor. Maintains reference count.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ Hom() [3/4]

+ +
+
+ + + + + + + + +
Hom::Hom (const GDDDd)
+
+ +

Constructs a constant homomorphism.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ Hom() [4/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Hom::Hom (int var,
int val,
const GHomh = GHom::id 
)
+
+ +

Left concatenation of a single arc DDD.

+

This is provided as a convenience and to avoid the inefficiency if we build a node pointing to GSDD::one and then concatenate something to it. Applied to a SDD d, this homomorphism will return var–val->h(d).

Parameters
+ + + + +
varthe variable labeling the node to left concat
valthe set of values labeling the arc
hthe homomorphism to apply on the argument d. This defaults to GSHom::id.
+
+
+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ ~Hom()

+ +
+
+ + + + + + + +
Hom::~Hom ()
+
+ +

Destructor maintains reference counting.

+

Note that the destructor does not truly reclaim memory, MemoryManager::garbage() does that.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::add (const d3::set< GHom >::type & set)
+
+staticinherited
+
+ +

A constructor for a union of several homomorphisms.

+

Note that for canonisation and optimization reasons, union is an n-ary and commutative composition operator. Use of this constructor may be slightly more efficient than using operator+ multiple times. H({h1,h2, ..hn}) (d) = sum_i h_i (d).

Parameters
+ + +
setthe set of homomorphisms to put in the union.
+
+
+
Todo:
std::set not very efficient for storage, replace by a sorted vector ?
+ +

References canonical, GHom::GHom(), and GDDD::null.

+ +

Referenced by Add::invert(), _setVarConst::invert(), And::negate(), and Add::skip_variable().

+ +
+
+ +

◆ ccompose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::ccompose (const d3::set< GHom >::type & set)
+
+staticinherited
+
+ +

A constructor for a commutative composition of several homomorphisms.

+

It's up to user to ensure pairwise commutatitivity off all arguments in the set

Parameters
+ + +
setthe set of homomorphisms to put in the composition.
+
+
+
Todo:
std::set not very efficient for storage, replace by a sorted vector ?
+ +

References canonical, and GHom::id.

+ +

Referenced by Add::negate().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::compose (const GHomr) const
+
+inherited
+
+ +

References _GHom::compose(), and GHom::concret.

+ +

Referenced by nsMLHom::ConstantUp::eval().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD GHom::eval (const GDDDd) const
+
+inherited
+
+ +

Evaluation function : users should use operator() instead of this.

+

This evaluation function does not use the cache, it is called in case of cache miss in the call to operator().

Parameters
+ + +
dthe argument DDD
+
+
+
Returns
h(d)
+
+ +

References GHom::concret, and _GHom::eval_skip().

+ +

Referenced by _DED_Hom::eval().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GHom::garbage ()
+
+staticinherited
+
+ +

For garbage collection.

+

WARNING Do not use this function directly !! Use MemoryManager::garbage() to ensure proper reference counting and cache cleanup. Garbage collection algorithm is a simple two phase mark and sweep : in phase mark, all nodes with positive reference counts are marked, as well as their descendants, recursively. In phase sweep, all nodes which are unmarked are destroyed. This avoids maintaining reference counts during operation : only external references made through the DDD class are counted, and no recursive reference counting is needed.

+ +

References cache, canonical, Cache< FuncType, ParamType, ResType, EvalFunc >::clear(), imgcache, and _GHom::marking.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t GHom::get_range () const
+
+inherited
+
+ +

Returns the range for this homomorphism, i.e. the dual of skip_variable.

+ +

References GHom::concret, and _GHom::get_range().

+ +

Referenced by commutative(), NotCond::get_range(), Compose::get_range(), Fixpoint::get_range(), and notInRange().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD GHom::has_image (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GHom::hash () const
+
+inlineinherited
+
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom GHom::invert (const GDDDpot) const
+
+inherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

References GHom::concret, and _GHom::invert().

+ +

Referenced by Mult::invert(), Inter::invert(), Compose::invert(), Minus::invert(), Fixpoint::invert(), and sns::LocalApply::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool GHom::is_selector () const
+
+inherited
+
+ +

This predicate is true if the homomorphism global behavior is only to prune some paths.

+ +

References GHom::concret, and _GHom::is_selector().

+ +

Referenced by commutative(), Mult::is_selector(), Inter::is_selector(), Compose::is_selector(), Minus::is_selector(), Fixpoint::is_selector(), sns::LocalApply::is_selector(), ITE(), and operator*().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void GHom::mark () const
+
+inherited
+
+ +

For garbage collection internals. Marks a GHom as in use in garbage collection phase.

+ +

References GHom::concret, _GHom::mark(), and _GHom::marking.

+ +

Referenced by Fixpoint::eval(), Mult::mark(), Inter::mark(), NotCond::mark(), Compose::mark(), LeftConcat::mark(), RightConcat::mark(), Minus::mark(), Fixpoint::mark(), sns::LocalApply::mark(), and MemoryManager::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom GHom::negate () const
+
+inherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

References GHom::concret, and _GHom::negate().

+ +

Referenced by NotCond::has_image(), and Inter::negate().

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::operator!= (const GHomh) const
+
+inlineinherited
+
+ +

Comparison between Homomorphisms.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
hthe hom to compare to
+
+
+
Returns
true if the nodes are NOT equal.
+
+ +

References GHom::concret.

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD GHom::operator() (const GDDDd) const
+
+inherited
+
+ +

Evaluation operator.

+

Homomorphisms overload operator(), so they can be directly applied to DDD nodes. Note that evaluation through this operator uses and updates a cache.

Parameters
+ + +
dthe DDD to apply this h to.
+
+
+
Returns
h(d), the result of applying this h to d.
+ +

References cache, GHom::concret, _GHom::eval(), _GHom::immediat, Cache< FuncType, ParamType, ResType, EvalFunc >::insert(), and GDDD::null.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::operator< (const GHomh) const
+
+inherited
+
+ +

Total ordering function between Hom.

+

Note that comparison is based on chronological ordering of creation, and delegated to "concret". Unlike comparison on addresses in unicity table, this ensures reproductible results. This ordering is necessary for hash and map storage of GHom.

Parameters
+ + +
hthe node to compare to
+
+
+
Returns
true if argument h is greater than "this".
+ +

References GHom::concret.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + + + + +
Hom & Hom::operator= (const GHomh)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + + + + +
Hom & Hom::operator= (const Homh)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::operator== (const GHomh) const
+
+inlineinherited
+
+ +

Comparison between Homomorphisms.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
hthe hom to compare to
+
+
+
Returns
true if the nodes are equal.
+
+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GHom::pstats (bool reinit = true)
+
+staticinherited
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase.

Todo:
allow output in other place than cout. Clean up output.
+ +

References GHom::_GHom, cache, and canonical.

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
int GHom::refCounter () const
+
+inherited
+
+ +

Accessor to visualize the reference count of the concret instance.

+

See _GHom::refCounter for details.

+ +

References GHom::concret, and _GHom::refCounter.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GHom::skip_variable (int var) const
+
+inherited
+
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GHom::statistics ()
+
+staticinherited
+
+ +

Returns unicity table current size. Gives the number of different _GHom created and not yet destroyed.

+ +

References canonical.

+ +

Referenced by Statistic::load(), and MemoryManager::nbHom().

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GHom* GHom::concret
+
+privateinherited
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.
+

+ +

Referenced by GHom::compose(), GHom::eval(), _GHom::get_concret(), GHom::get_range(), GHom::hash(), Hom(), GHom::invert(), GHom::is_selector(), GHom::mark(), GHom::negate(), GHom::operator!=(), GHom::operator()(), GHom::operator<(), operator=(), GHom::refCounter(), GHom::skip_variable(), and ~Hom().

+ +
+
+ +

◆ full_range

+ +
+
+ + + + + +
+ + + + +
const GHom::range_t GHom::full_range = GHom::range_t()
+
+staticinherited
+
+ +

The full_range : that targets everyone.

+ +

Referenced by _GHom::get_range().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const GHom GHom::id
+
+staticinherited
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classHom__coll__graph.map b/libddd.html/classHom__coll__graph.map new file mode 100644 index 000000000..68bcf33fb --- /dev/null +++ b/libddd.html/classHom__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classHom__coll__graph.md5 b/libddd.html/classHom__coll__graph.md5 new file mode 100644 index 000000000..ef1e02ab5 --- /dev/null +++ b/libddd.html/classHom__coll__graph.md5 @@ -0,0 +1 @@ +c80eb797662705f617250047ea26217e \ No newline at end of file diff --git a/libddd.html/classHom__coll__graph.png b/libddd.html/classHom__coll__graph.png new file mode 100644 index 000000000..97e979ca4 Binary files /dev/null and b/libddd.html/classHom__coll__graph.png differ diff --git a/libddd.html/classHom__inherit__graph.map b/libddd.html/classHom__inherit__graph.map new file mode 100644 index 000000000..2de2e6d9e --- /dev/null +++ b/libddd.html/classHom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classHom__inherit__graph.md5 b/libddd.html/classHom__inherit__graph.md5 new file mode 100644 index 000000000..6a73294ce --- /dev/null +++ b/libddd.html/classHom__inherit__graph.md5 @@ -0,0 +1 @@ +747fecfb97c4b2d1c824d714abd3aeaa \ No newline at end of file diff --git a/libddd.html/classHom__inherit__graph.png b/libddd.html/classHom__inherit__graph.png new file mode 100644 index 000000000..d15802c6c Binary files /dev/null and b/libddd.html/classHom__inherit__graph.png differ diff --git a/libddd.html/classIdentity-members.html b/libddd.html/classIdentity-members.html new file mode 100644 index 000000000..4dcef8a5a --- /dev/null +++ b/libddd.html/classIdentity-members.html @@ -0,0 +1,80 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Identity Member List
+
+
+ +

This is the complete list of members for Identity, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constIdentityinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constIdentityinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &d) constIdentityinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constIdentityinlinevirtual
Identity(int ref=0)Identityinline
immediat_GHommutableprivate
invert(const GDDD &pot) constIdentityinlinevirtual
is_selector() constIdentityinlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() constIdentityinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &) constIdentityinlinevirtual
print(std::ostream &os) constIdentityinlinevirtual
refCounter_GHommutableprivate
skip_variable(int) constIdentityinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classIdentity.html b/libddd.html/classIdentity.html new file mode 100644 index 000000000..56d2d0547 --- /dev/null +++ b/libddd.html/classIdentity.html @@ -0,0 +1,803 @@ + + + + + + + +DDD: Identity Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Identity Class Reference
+
+
+
+Inheritance diagram for Identity:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Identity:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Identity (int ref=0)
 
bool operator== (const _GHom &) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GDDD has_image (const GDDD &d) const
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
void print (std::ostream &os) const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GDDD has_image_skip (const GDDD &) const
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Identity()

+ +
+
+ + + + + +
+ + + + + + + + +
Identity::Identity (int ref = 0)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Identity::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Identity().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Identity::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Identity::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Identity::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Identity::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Identity::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom Identity::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References _GHom::GHom, and GDDD::null.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Identity::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Identity::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Identity::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classIdentity__coll__graph.map b/libddd.html/classIdentity__coll__graph.map new file mode 100644 index 000000000..6e0e28d97 --- /dev/null +++ b/libddd.html/classIdentity__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classIdentity__coll__graph.md5 b/libddd.html/classIdentity__coll__graph.md5 new file mode 100644 index 000000000..a3446f262 --- /dev/null +++ b/libddd.html/classIdentity__coll__graph.md5 @@ -0,0 +1 @@ +c79ecbdbe8ccd95a8aae8bfa8398e766 \ No newline at end of file diff --git a/libddd.html/classIdentity__coll__graph.png b/libddd.html/classIdentity__coll__graph.png new file mode 100644 index 000000000..5ba142dd0 Binary files /dev/null and b/libddd.html/classIdentity__coll__graph.png differ diff --git a/libddd.html/classIdentity__inherit__graph.map b/libddd.html/classIdentity__inherit__graph.map new file mode 100644 index 000000000..6e0e28d97 --- /dev/null +++ b/libddd.html/classIdentity__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classIdentity__inherit__graph.md5 b/libddd.html/classIdentity__inherit__graph.md5 new file mode 100644 index 000000000..a3446f262 --- /dev/null +++ b/libddd.html/classIdentity__inherit__graph.md5 @@ -0,0 +1 @@ +c79ecbdbe8ccd95a8aae8bfa8398e766 \ No newline at end of file diff --git a/libddd.html/classIdentity__inherit__graph.png b/libddd.html/classIdentity__inherit__graph.png new file mode 100644 index 000000000..5ba142dd0 Binary files /dev/null and b/libddd.html/classIdentity__inherit__graph.png differ diff --git a/libddd.html/classIntDataSet-members.html b/libddd.html/classIntDataSet-members.html new file mode 100644 index 000000000..058be1f14 --- /dev/null +++ b/libddd.html/classIntDataSet-members.html @@ -0,0 +1,86 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
IntDataSet Member List
+
+
+ +

This is the complete list of members for IntDataSet, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() constIntDataSetinline
canonicalIntDataSetprivatestatic
canonical_it typedefIntDataSetprivate
canonical_t typedefIntDataSetprivate
const_iterator typedefIntDataSet
dataIntDataSetprivate
empty() constIntDataSetinlinevirtual
empty_IntDataSetprivatestatic
empty_set() constIntDataSetinlinevirtual
end() constIntDataSetinline
garbage()IntDataSetstatic
IntDataSet(const std::vector< int > *ddata)IntDataSetinlineprivate
IntDataSet(const std::vector< int > &ddata)IntDataSetinline
IntDataSet(const std::vector< int >::iterator &begin, const std::vector< int >::iterator &end)IntDataSetinline
IntDataSet()IntDataSetinline
mark() constIntDataSetinlinevirtual
marktableIntDataSetprivatestatic
marktable_it typedefIntDataSetprivate
marktable_t typedefIntDataSetprivate
newcopy() constIntDataSetinlinevirtual
set_equal(const DataSet &b) constIntDataSetinlinevirtual
set_hash() constIntDataSetinlinevirtual
set_intersect(const DataSet &b) constIntDataSetinlinevirtual
set_less_than(const DataSet &b) constIntDataSetinlinevirtual
set_minus(const DataSet &b) constIntDataSetinlinevirtual
set_print(std::ostream &os) constIntDataSetinlinevirtual
set_size() constIntDataSetinlinevirtual
set_union(const DataSet &b) constIntDataSetinlinevirtual
~DataSet()DataSetinlinevirtual
~IntDataSet()IntDataSetinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classIntDataSet.html b/libddd.html/classIntDataSet.html new file mode 100644 index 000000000..4fc36a2bc --- /dev/null +++ b/libddd.html/classIntDataSet.html @@ -0,0 +1,1015 @@ + + + + + + + +DDD: IntDataSet Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions | +Private Types | +Private Member Functions | +Private Attributes | +Static Private Attributes | +List of all members
+
+
IntDataSet Class Reference
+
+
+ +

This class is a very basic implementation of DataSet interface based on std::std::vector<int> and a unicity table. + More...

+ +

#include <IntDataSet.h>

+
+Inheritance diagram for IntDataSet:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for IntDataSet:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + +

+Public Types

typedef std::vector< int >::const_iterator const_iterator
 typedef IntDataSet::const_iterator More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

const_iterator begin () const
 read-only iterator interface More...
 
const_iterator end () const
 
 IntDataSet (const std::vector< int > &ddata)
 public constructor from non unique std::vector<int> More...
 
 IntDataSet (const std::vector< int >::iterator &begin, const std::vector< int >::iterator &end)
 public constructor from iterator (begin,end) More...
 
 IntDataSet ()
 public deafult constructor = empty set More...
 
virtual ~IntDataSet ()
 destructor More...
 
DataSetnewcopy () const
 returns a new instance copy of this More...
 
DataSetset_intersect (const DataSet &b) const
 returns a new instance with elements = this inter b More...
 
DataSetset_union (const DataSet &b) const
 returns a new instance with elements = this union b More...
 
DataSetset_minus (const DataSet &b) const
 returns a new instance with elements = this setminus b More...
 
bool empty () const
 returns true if this is the empty set More...
 
DataSetempty_set () const
 returns a pointer to an instance of the empty set More...
 
bool set_equal (const DataSet &b) const
 Compares two sets for equality. More...
 
bool set_less_than (const DataSet &b) const
 Compares two sets for equality. More...
 
long double set_size () const
 
virtual size_t set_hash () const
 returns a hash function, used in the SDD hash function computation More...
 
virtual void set_print (std::ostream &os) const
 returns a formatted string description of the set More...
 
void mark () const
 for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing More...
 
+ + + +

+Static Public Member Functions

static void garbage ()
 
+ + + + + + + + + +

+Private Types

typedef UniqueTable< std::vector< int > > canonical_t
 
typedef canonical_t::Table::iterator canonical_it
 
typedef std::set< const std::vector< int > * > marktable_t
 
typedef marktable_t::const_iterator marktable_it
 
+ + + +

+Private Member Functions

 IntDataSet (const std::vector< int > *ddata)
 
+ + + +

+Private Attributes

const std::vector< int > * data
 
+ + + + + + + +

+Static Private Attributes

static canonical_t canonical = UniqueTable<std::vector<int> > ()
 
static marktable_t marktable = marktable_t()
 
static const std::vector< int > * empty_ = canonical(std::vector<int>(0))
 
+

Detailed Description

+

This class is a very basic implementation of DataSet interface based on std::std::vector<int> and a unicity table.

+

Member Typedef Documentation

+ +

◆ canonical_it

+ +
+
+ + + + + +
+ + + + +
typedef canonical_t::Table::iterator IntDataSet::canonical_it
+
+private
+
+ +
+
+ +

◆ canonical_t

+ +
+
+ + + + + +
+ + + + +
typedef UniqueTable<std::vector<int> > IntDataSet::canonical_t
+
+private
+
+ +
+
+ +

◆ const_iterator

+ +
+
+ + + + +
typedef std::vector<int>::const_iterator IntDataSet::const_iterator
+
+
+ +

◆ marktable_it

+ +
+
+ + + + + +
+ + + + +
typedef marktable_t::const_iterator IntDataSet::marktable_it
+
+private
+
+ +
+
+ +

◆ marktable_t

+ +
+
+ + + + + +
+ + + + +
typedef std::set<const std::vector<int> *> IntDataSet::marktable_t
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ IntDataSet() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
IntDataSet::IntDataSet (const std::vector< int > * ddata)
+
+inlineprivate
+
+ +
+
+ +

◆ IntDataSet() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
IntDataSet::IntDataSet (const std::vector< int > & ddata)
+
+inline
+
+ +

public constructor from non unique std::vector<int>

+ +

References canonical, and data.

+ +
+
+ +

◆ IntDataSet() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IntDataSet::IntDataSet (const std::vector< int >::iterator & begin,
const std::vector< int >::iterator & end 
)
+
+inline
+
+ +

public constructor from iterator (begin,end)

+ +

References begin(), canonical, data, and end().

+ +
+
+ +

◆ IntDataSet() [4/4]

+ +
+
+ + + + + +
+ + + + + + + +
IntDataSet::IntDataSet ()
+
+inline
+
+ +

public deafult constructor = empty set

+ +

References data, and empty_.

+ +

Referenced by empty_set(), newcopy(), set_intersect(), set_minus(), and set_union().

+ +
+
+ +

◆ ~IntDataSet()

+ +
+
+ + + + + +
+ + + + + + + +
virtual IntDataSet::~IntDataSet ()
+
+inlinevirtual
+
+ +

destructor

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator IntDataSet::begin () const
+
+inline
+
+ +

read-only iterator interface

+ +

References data.

+ +

Referenced by IntDataSet().

+ +
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool IntDataSet::empty () const
+
+inlinevirtual
+
+ +

returns true if this is the empty set

+ +

Implements DataSet.

+ +

References data, and empty_.

+ +
+
+ +

◆ empty_set()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet* IntDataSet::empty_set () const
+
+inlinevirtual
+
+ +

returns a pointer to an instance of the empty set

+ +

Implements DataSet.

+ +

References IntDataSet().

+ +
+
+ +

◆ end()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator IntDataSet::end () const
+
+inline
+
+ +

References data.

+ +

Referenced by IntDataSet().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void IntDataSet::garbage ()
+
+static
+
+ +

References canonical, marktable, and UniqueTable< T >::table.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void IntDataSet::mark () const
+
+inlinevirtual
+
+ +

for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing

+ +

Implements DataSet.

+ +

References data, and marktable.

+ +
+
+ +

◆ newcopy()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet* IntDataSet::newcopy () const
+
+inlinevirtual
+
+ +

returns a new instance copy of this

+ +

Implements DataSet.

+ +

References data, and IntDataSet().

+ +
+
+ +

◆ set_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
bool IntDataSet::set_equal (const DataSetb) const
+
+inlinevirtual
+
+ +

Compares two sets for equality.

+ +

Implements DataSet.

+ +

References data.

+ +
+
+ +

◆ set_hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t IntDataSet::set_hash () const
+
+inlinevirtual
+
+ +

returns a hash function, used in the SDD hash function computation

+ +

Implements DataSet.

+ +

References data.

+ +
+
+ +

◆ set_intersect()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet* IntDataSet::set_intersect (const DataSetb) const
+
+inlinevirtual
+
+ +

returns a new instance with elements = this inter b

+ +

Implements DataSet.

+ +

References canonical, data, and IntDataSet().

+ +
+
+ +

◆ set_less_than()

+ +
+
+ + + + + +
+ + + + + + + + +
bool IntDataSet::set_less_than (const DataSetb) const
+
+inlinevirtual
+
+ +

Compares two sets for equality.

+ +

Implements DataSet.

+ +

References data.

+ +
+
+ +

◆ set_minus()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet* IntDataSet::set_minus (const DataSetb) const
+
+inlinevirtual
+
+ +

returns a new instance with elements = this setminus b

+ +

Implements DataSet.

+ +

References canonical, data, and IntDataSet().

+ +
+
+ +

◆ set_print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void IntDataSet::set_print (std::ostream & os) const
+
+inlinevirtual
+
+ +

returns a formatted string description of the set

+ +

Implements DataSet.

+ +

References data.

+ +
+
+ +

◆ set_size()

+ +
+
+ + + + + +
+ + + + + + + +
long double IntDataSet::set_size () const
+
+inlinevirtual
+
+
Returns
the size (number of elements) in a set
+ +

Implements DataSet.

+ +

References data.

+ +
+
+ +

◆ set_union()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet* IntDataSet::set_union (const DataSetb) const
+
+inlinevirtual
+
+ +

returns a new instance with elements = this union b

+ +

Implements DataSet.

+ +

References canonical, data, and IntDataSet().

+ +
+
+

Member Data Documentation

+ +

◆ canonical

+ +
+
+ + + + + +
+ + + + +
UniqueTable< std::vector< int > > IntDataSet::canonical = UniqueTable<std::vector<int> > ()
+
+staticprivate
+
+
+ +

◆ data

+ +
+
+ + + + + +
+ + + + +
const std::vector<int>* IntDataSet::data
+
+private
+
+
+ +

◆ empty_

+ +
+
+ + + + + +
+ + + + +
const std::vector< int > * IntDataSet::empty_ = canonical(std::vector<int>(0))
+
+staticprivate
+
+ +

Referenced by empty(), and IntDataSet().

+ +
+
+ +

◆ marktable

+ +
+
+ + + + + +
+ + + + +
IntDataSet::marktable_t IntDataSet::marktable = marktable_t()
+
+staticprivate
+
+ +

Referenced by garbage(), and mark().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classIntDataSet__coll__graph.map b/libddd.html/classIntDataSet__coll__graph.map new file mode 100644 index 000000000..76e4c2b18 --- /dev/null +++ b/libddd.html/classIntDataSet__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classIntDataSet__coll__graph.md5 b/libddd.html/classIntDataSet__coll__graph.md5 new file mode 100644 index 000000000..13a6936d9 --- /dev/null +++ b/libddd.html/classIntDataSet__coll__graph.md5 @@ -0,0 +1 @@ +6259982e961ff3394d331a9e0fabb6cf \ No newline at end of file diff --git a/libddd.html/classIntDataSet__coll__graph.png b/libddd.html/classIntDataSet__coll__graph.png new file mode 100644 index 000000000..1c9121e25 Binary files /dev/null and b/libddd.html/classIntDataSet__coll__graph.png differ diff --git a/libddd.html/classIntDataSet__inherit__graph.map b/libddd.html/classIntDataSet__inherit__graph.map new file mode 100644 index 000000000..ef6420821 --- /dev/null +++ b/libddd.html/classIntDataSet__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classIntDataSet__inherit__graph.md5 b/libddd.html/classIntDataSet__inherit__graph.md5 new file mode 100644 index 000000000..bd700bbae --- /dev/null +++ b/libddd.html/classIntDataSet__inherit__graph.md5 @@ -0,0 +1 @@ +dcc56b5654bc7e4df3857559ad3e4aec \ No newline at end of file diff --git a/libddd.html/classIntDataSet__inherit__graph.png b/libddd.html/classIntDataSet__inherit__graph.png new file mode 100644 index 000000000..6813e580d Binary files /dev/null and b/libddd.html/classIntDataSet__inherit__graph.png differ diff --git a/libddd.html/classInter-members.html b/libddd.html/classInter-members.html new file mode 100644 index 000000000..b8623bcbf --- /dev/null +++ b/libddd.html/classInter-members.html @@ -0,0 +1,83 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Inter Member List
+
+
+ +

This is the complete list of members for Inter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constInterinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constInterinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
Fixpoint classInterfriend
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &d) constInterinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constInterinlinevirtual
immediat_GHommutableprivate
Inter(const GHom &l, const GHom &r, int ref=0)Interinline
invert(const GDDD &pot) constInterinlinevirtual
is_selector() constInterinlinevirtual
leftInterprivate
mark() constInterinlinevirtual
marking_GHommutableprivate
negate() constInterinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constInterinlinevirtual
print(std::ostream &os) constInterinlinevirtual
refCounter_GHommutableprivate
rightInterprivate
skip_variable(int var) constInterinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classInter.html b/libddd.html/classInter.html new file mode 100644 index 000000000..5c84ee00e --- /dev/null +++ b/libddd.html/classInter.html @@ -0,0 +1,917 @@ + + + + + + + +DDD: Inter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
Inter Class Reference
+
+
+
+Inheritance diagram for Inter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Inter:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Inter (const GHom &l, const GHom &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD has_image (const GDDD &d) const
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GHom left
 
GHom right
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+ + + +

+Friends

class Fixpoint
 
+

Constructor & Destructor Documentation

+ +

◆ Inter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Inter::Inter (const GHoml,
const GHomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Inter::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Inter().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Inter::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Inter::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References _GHom::has_image(), GHom::has_image(), left, GDDD::null, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Inter::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Inter::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::invert(), left, and right.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Inter::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References GHom::is_selector(), left, and right.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Inter::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom Inter::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References left, GHom::negate(), and right.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Inter::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Inter::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Inter::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References _GHom::get_concret(), left, right, and _GHom::skip_variable().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ Fixpoint

+ +
+
+ + + + + +
+ + + + +
friend class Fixpoint
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GHom Inter::left
+
+private
+
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GHom Inter::right
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classInter__coll__graph.map b/libddd.html/classInter__coll__graph.map new file mode 100644 index 000000000..a88c7cc4d --- /dev/null +++ b/libddd.html/classInter__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classInter__coll__graph.md5 b/libddd.html/classInter__coll__graph.md5 new file mode 100644 index 000000000..b2910edfc --- /dev/null +++ b/libddd.html/classInter__coll__graph.md5 @@ -0,0 +1 @@ +b86fc1944514649384e6f4c3f419476c \ No newline at end of file diff --git a/libddd.html/classInter__coll__graph.png b/libddd.html/classInter__coll__graph.png new file mode 100644 index 000000000..8455c0c96 Binary files /dev/null and b/libddd.html/classInter__coll__graph.png differ diff --git a/libddd.html/classInter__inherit__graph.map b/libddd.html/classInter__inherit__graph.map new file mode 100644 index 000000000..76eed215b --- /dev/null +++ b/libddd.html/classInter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classInter__inherit__graph.md5 b/libddd.html/classInter__inherit__graph.md5 new file mode 100644 index 000000000..d059f4e08 --- /dev/null +++ b/libddd.html/classInter__inherit__graph.md5 @@ -0,0 +1 @@ +943d9f513007f185c976e84054cd3ef8 \ No newline at end of file diff --git a/libddd.html/classInter__inherit__graph.png b/libddd.html/classInter__inherit__graph.png new file mode 100644 index 000000000..c055c89d6 Binary files /dev/null and b/libddd.html/classInter__inherit__graph.png differ diff --git a/libddd.html/classLeftConcat-members.html b/libddd.html/classLeftConcat-members.html new file mode 100644 index 000000000..98e669986 --- /dev/null +++ b/libddd.html/classLeftConcat-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
LeftConcat Member List
+
+
+ +

This is the complete list of members for LeftConcat, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constLeftConcatinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constLeftConcatinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &d) constLeftConcatinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constLeftConcatinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
leftLeftConcatprivate
LeftConcat(const GDDD &l, const GHom &r, int ref=0)LeftConcatinline
mark() constLeftConcatinlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constLeftConcatinlinevirtual
print(std::ostream &os) constLeftConcatinlinevirtual
refCounter_GHommutableprivate
rightLeftConcatprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classLeftConcat.html b/libddd.html/classLeftConcat.html new file mode 100644 index 000000000..c88286ae2 --- /dev/null +++ b/libddd.html/classLeftConcat.html @@ -0,0 +1,893 @@ + + + + + + + +DDD: LeftConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
LeftConcat Class Reference
+
+
+
+Inheritance diagram for LeftConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for LeftConcat:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LeftConcat (const GDDD &l, const GHom &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GDDD has_image (const GDDD &d) const
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GDDD left
 
GHom right
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ LeftConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
LeftConcat::LeftConcat (const GDDDl,
const GHomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* LeftConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References LeftConcat().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD LeftConcat::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD LeftConcat::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References GHom::has_image(), left, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t LeftConcat::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void LeftConcat::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GDDD::mark(), GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool LeftConcat::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void LeftConcat::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GDDD LeftConcat::left
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GHom LeftConcat::right
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classLeftConcat__coll__graph.map b/libddd.html/classLeftConcat__coll__graph.map new file mode 100644 index 000000000..1e80df0c4 --- /dev/null +++ b/libddd.html/classLeftConcat__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classLeftConcat__coll__graph.md5 b/libddd.html/classLeftConcat__coll__graph.md5 new file mode 100644 index 000000000..f0aa44d81 --- /dev/null +++ b/libddd.html/classLeftConcat__coll__graph.md5 @@ -0,0 +1 @@ +b5f5c73af53f95a3b9de840acc272ee0 \ No newline at end of file diff --git a/libddd.html/classLeftConcat__coll__graph.png b/libddd.html/classLeftConcat__coll__graph.png new file mode 100644 index 000000000..815d045d4 Binary files /dev/null and b/libddd.html/classLeftConcat__coll__graph.png differ diff --git a/libddd.html/classLeftConcat__inherit__graph.map b/libddd.html/classLeftConcat__inherit__graph.map new file mode 100644 index 000000000..afafc0aca --- /dev/null +++ b/libddd.html/classLeftConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classLeftConcat__inherit__graph.md5 b/libddd.html/classLeftConcat__inherit__graph.md5 new file mode 100644 index 000000000..c425622ba --- /dev/null +++ b/libddd.html/classLeftConcat__inherit__graph.md5 @@ -0,0 +1 @@ +ce8a93aea74cc5dd9a8835952e421cf8 \ No newline at end of file diff --git a/libddd.html/classLeftConcat__inherit__graph.png b/libddd.html/classLeftConcat__inherit__graph.png new file mode 100644 index 000000000..1b645d359 Binary files /dev/null and b/libddd.html/classLeftConcat__inherit__graph.png differ diff --git a/libddd.html/classMLCache-members.html b/libddd.html/classMLCache-members.html new file mode 100644 index 000000000..12ade2517 --- /dev/null +++ b/libddd.html/classMLCache-members.html @@ -0,0 +1,64 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLCache< MLHomType, NodeType, HomNodeMapType > Member List
+
+
+ +

This is the complete list of members for MLCache< MLHomType, NodeType, HomNodeMapType >, including all inherited members.

+ + + + + + + + + +
cache_MLCache< MLHomType, NodeType, HomNodeMapType >private
clear(bool keepstats=false)MLCache< MLHomType, NodeType, HomNodeMapType >inline
hash_map typedefMLCache< MLHomType, NodeType, HomNodeMapType >private
insert(const MLHomType &hom, const NodeType &node)MLCache< MLHomType, NodeType, HomNodeMapType >inline
MLCache()MLCache< MLHomType, NodeType, HomNodeMapType >inline
peak() constMLCache< MLHomType, NodeType, HomNodeMapType >inline
peak_MLCache< MLHomType, NodeType, HomNodeMapType >mutableprivate
size() constMLCache< MLHomType, NodeType, HomNodeMapType >inline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLCache.html b/libddd.html/classMLCache.html new file mode 100644 index 000000000..106e7f661 --- /dev/null +++ b/libddd.html/classMLCache.html @@ -0,0 +1,345 @@ + + + + + + + +DDD: MLCache< MLHomType, NodeType, HomNodeMapType > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Types | +Private Attributes | +List of all members
+
+
MLCache< MLHomType, NodeType, HomNodeMapType > Class Template Reference
+
+
+ +

#include <MLCache.hh>

+
+Collaboration diagram for MLCache< MLHomType, NodeType, HomNodeMapType >:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + +

+Public Member Functions

 MLCache ()
 
void clear (bool keepstats=false)
 clear the cache, discarding all values. More...
 
size_t peak () const
 
size_t size () const
 
std::pair< bool, HomNodeMapType > insert (const MLHomType &hom, const NodeType &node)
 
+ + + +

+Private Types

typedef hash_map< std::pair< MLHomType, NodeType >, HomNodeMapType >::type hash_map
 
+ + + + + +

+Private Attributes

size_t peak_
 
hash_map cache_
 
+

Member Typedef Documentation

+ +

◆ hash_map

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + +
typedef hash_map< std::pair<MLHomType, NodeType>, HomNodeMapType >::type MLCache< MLHomType, NodeType, HomNodeMapType >::hash_map
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ MLCache()

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + + + + +
MLCache< MLHomType, NodeType, HomNodeMapType >::MLCache ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clear()

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + + + + + +
void MLCache< MLHomType, NodeType, HomNodeMapType >::clear (bool keepstats = false)
+
+inline
+
+
+ +

◆ insert()

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::pair<bool,HomNodeMapType> MLCache< MLHomType, NodeType, HomNodeMapType >::insert (const MLHomType & hom,
const NodeType & node 
)
+
+inline
+
+
+ +

◆ peak()

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + + + + +
size_t MLCache< MLHomType, NodeType, HomNodeMapType >::peak () const
+
+inline
+
+
+ +

◆ size()

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + + + + +
size_t MLCache< MLHomType, NodeType, HomNodeMapType >::size () const
+
+inline
+
+
+

Member Data Documentation

+ +

◆ cache_

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + +
hash_map MLCache< MLHomType, NodeType, HomNodeMapType >::cache_
+
+private
+
+
+ +

◆ peak_

+ +
+
+
+template<typename MLHomType , typename NodeType , typename HomNodeMapType >
+ + + + + +
+ + + + +
size_t MLCache< MLHomType, NodeType, HomNodeMapType >::peak_
+
+mutableprivate
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLCache__coll__graph.map b/libddd.html/classMLCache__coll__graph.map new file mode 100644 index 000000000..d9ca61f7a --- /dev/null +++ b/libddd.html/classMLCache__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classMLCache__coll__graph.md5 b/libddd.html/classMLCache__coll__graph.md5 new file mode 100644 index 000000000..d0f3d58a1 --- /dev/null +++ b/libddd.html/classMLCache__coll__graph.md5 @@ -0,0 +1 @@ +aeba7ca2943ed5bd50af3e082d3a9ddc \ No newline at end of file diff --git a/libddd.html/classMLCache__coll__graph.png b/libddd.html/classMLCache__coll__graph.png new file mode 100644 index 000000000..27ca132a4 Binary files /dev/null and b/libddd.html/classMLCache__coll__graph.png differ diff --git a/libddd.html/classMLHom-members.html b/libddd.html/classMLHom-members.html new file mode 100644 index 000000000..e263d290d --- /dev/null +++ b/libddd.html/classMLHom-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLHom Member List
+
+
+ +

This is the complete list of members for MLHom, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
concretMLHomprivate
eval(const GDDD &d) constMLHom
garbage()MLHomstatic
hash() constMLHominline
idMLHomstatic
MLHom()MLHominline
MLHom(const GHom &h)MLHom
MLHom(const GHom &up, const MLHom &down)MLHom
MLHom(const _MLHom &)MLHom
MLHom(_MLHom *)MLHom
MLHom(const _MLHom *)MLHom
MLHom(int var, int val, const MLHom &h=MLHom::id)MLHom
operator()(const GDDD &) constMLHom
operator+(const MLHom &, const MLHom &)MLHomfriend
operator<(const MLHom &h) constMLHominline
operator==(const MLHom &h) constMLHominline
~MLHom()MLHomvirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLHom.html b/libddd.html/classMLHom.html new file mode 100644 index 000000000..0520b85ab --- /dev/null +++ b/libddd.html/classMLHom.html @@ -0,0 +1,594 @@ + + + + + + + +DDD: MLHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Static Public Attributes | +Private Attributes | +Friends | +List of all members
+
+
MLHom Class Reference
+
+
+ +

#include <MLHom.h>

+
+Collaboration diagram for MLHom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MLHom ()
 Default public constructor. More...
 
 MLHom (const GHom &h)
 
 MLHom (const GHom &up, const MLHom &down)
 
 MLHom (const _MLHom &)
 
 MLHom (_MLHom *)
 
 MLHom (const _MLHom *)
 
 MLHom (int var, int val, const MLHom &h=MLHom::id)
 Create variable/value pair and left concatenate to a homomorphism. More...
 
virtual ~MLHom ()
 
bool operator< (const MLHom &h) const
 
bool operator== (const MLHom &h) const
 
size_t hash () const
 Hash key computation. More...
 
HomNodeMap eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
HomNodeMap operator() (const GDDD &) const
 cache calls to eval More...
 
+ + + + +

+Static Public Member Functions

static void garbage ()
 Collects and destroys unused homomorphisms. More...
 
+ + + + +

+Static Public Attributes

static const MLHom id
 Elementary homomorphism Identity, defined as a constant. More...
 
+ + + + +

+Private Attributes

const _MLHomconcret
 The real implementation class. More...
 
+ + + + +

+Friends

MLHom operator+ (const MLHom &, const MLHom &)
 By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ;. More...
 
+

Constructor & Destructor Documentation

+ +

◆ MLHom() [1/7]

+ +
+
+ + + + + +
+ + + + + + + +
MLHom::MLHom ()
+
+inline
+
+ +

Default public constructor.

+

Builds Identity homomorphism : forall d in DDD, id(d) = d

+ +
+
+ +

◆ MLHom() [2/7]

+ +
+
+ + + + + + + + +
MLHom::MLHom (const GHomh)
+
+ +
+
+ +

◆ MLHom() [3/7]

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLHom::MLHom (const GHomup,
const MLHomdown 
)
+
+ +
+
+ +

◆ MLHom() [4/7]

+ +
+
+ + + + + + + + +
MLHom::MLHom (const _MLHomh)
+
+ +
+
+ +

◆ MLHom() [5/7]

+ +
+
+ + + + + + + + +
MLHom::MLHom (_MLHom)
+
+ +
+
+ +

◆ MLHom() [6/7]

+ +
+
+ + + + + + + + +
MLHom::MLHom (const _MLHomh)
+
+ +
+
+ +

◆ MLHom() [7/7]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
MLHom::MLHom (int var,
int val,
const MLHomh = MLHom::id 
)
+
+ +

Create variable/value pair and left concatenate to a homomorphism.

+

h(var,val,g) (d) = DDD(var,val) ^ g(d). In other words : var – val -> g

Parameters
+ + + + +
varthe variable index
valthe value associated to the variable
hthe homomorphism to apply on successor node. Default is identity, so is equivalent to a left concatenation of a DDD(var,val).
+
+
+ +
+
+ +

◆ ~MLHom()

+ +
+
+ + + + + +
+ + + + + + + +
MLHom::~MLHom ()
+
+virtual
+
+ +
+
+

Member Function Documentation

+ +

◆ eval()

+ +
+
+ + + + + + + + +
HomNodeMap MLHom::eval (const GDDDd) const
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use operator() that encapsulates this call with operation caching.

+ +

References concret, and _MLHom::eval().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void MLHom::garbage ()
+
+static
+
+ +

Collects and destroys unused homomorphisms.

+

Do not call this directly but through MemoryManager::garbage() as order of calls (among GSDD::garbage(), GShom::garbage(), SDED::garbage()) is important.

+ +

References canonical, MLCache< MLHomType, NodeType, HomNodeMapType >::clear(), _MLHom::marking, and nsMLHom::mlcache.

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t MLHom::hash () const
+
+inline
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

References concret, and ddd::knuth32_hash().

+ +

Referenced by MLHomAdapter::hash(), nsMLHom::ConstantUp::hash(), and nsMLHom::LeftConcat::hash().

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + + + + +
HomNodeMap MLHom::operator() (const GDDDd) const
+
+ +

cache calls to eval

+ +

References MLCache< MLHomType, NodeType, HomNodeMapType >::insert(), and nsMLHom::mlcache.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MLHom::operator< (const MLHomh) const
+
+inline
+
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MLHom::operator== (const MLHomh) const
+
+inline
+
+ +

References concret.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator+

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MLHom operator+ (const MLHom,
const MLHom 
)
+
+friend
+
+ +

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ;.

+

Where g,h are homomorphisms and d is a DDD.

+

This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _MLHom* MLHom::concret
+
+private
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.
+

+ +

Referenced by eval(), hash(), operator<(), and operator==().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const MLHom MLHom::id
+
+static
+
+ +

Elementary homomorphism Identity, defined as a constant.

+

id(d) = <id, d>

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLHomAdapter-members.html b/libddd.html/classMLHomAdapter-members.html new file mode 100644 index 000000000..04d928a48 --- /dev/null +++ b/libddd.html/classMLHomAdapter-members.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLHomAdapter Member List
+
+
+ +

This is the complete list of members for MLHomAdapter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constMLHomAdapterinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constMLHomAdapterinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
hMLHomAdapterprivate
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constMLHomAdapterinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
mark() constMLHomAdapterinlinevirtual
marking_GHommutableprivate
MLHomAdapter(const MLHom &hh)MLHomAdapterinline
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &other) constMLHomAdapterinlinevirtual
print(std::ostream &os) constMLHomAdapterinlinevirtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLHomAdapter.html b/libddd.html/classMLHomAdapter.html new file mode 100644 index 000000000..f4a6b6867 --- /dev/null +++ b/libddd.html/classMLHomAdapter.html @@ -0,0 +1,850 @@ + + + + + + + +DDD: MLHomAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
MLHomAdapter Class Reference
+
+
+
+Inheritance diagram for MLHomAdapter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for MLHomAdapter:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MLHomAdapter (const MLHom &hh)
 
bool operator== (const _GHom &other) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + +

+Private Attributes

MLHom h
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ MLHomAdapter()

+ +
+
+ + + + + +
+ + + + + + + + +
MLHomAdapter::MLHomAdapter (const MLHomhh)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* MLHomAdapter::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References MLHomAdapter().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD MLHomAdapter::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References DED::add(), AdditiveMap< K, V, EqualKey >::begin(), AdditiveMap< K, V, EqualKey >::end(), and h.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t MLHomAdapter::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References h, and MLHom::hash().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void MLHomAdapter::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+

???????

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MLHomAdapter::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References h.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void MLHomAdapter::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
MLHom MLHomAdapter::h
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLHomAdapter__coll__graph.map b/libddd.html/classMLHomAdapter__coll__graph.map new file mode 100644 index 000000000..17461c366 --- /dev/null +++ b/libddd.html/classMLHomAdapter__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classMLHomAdapter__coll__graph.md5 b/libddd.html/classMLHomAdapter__coll__graph.md5 new file mode 100644 index 000000000..82fe4ea0e --- /dev/null +++ b/libddd.html/classMLHomAdapter__coll__graph.md5 @@ -0,0 +1 @@ +a016615702812258d5ffa549083460a5 \ No newline at end of file diff --git a/libddd.html/classMLHomAdapter__coll__graph.png b/libddd.html/classMLHomAdapter__coll__graph.png new file mode 100644 index 000000000..8dd61c048 Binary files /dev/null and b/libddd.html/classMLHomAdapter__coll__graph.png differ diff --git a/libddd.html/classMLHomAdapter__inherit__graph.map b/libddd.html/classMLHomAdapter__inherit__graph.map new file mode 100644 index 000000000..b43c57cae --- /dev/null +++ b/libddd.html/classMLHomAdapter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMLHomAdapter__inherit__graph.md5 b/libddd.html/classMLHomAdapter__inherit__graph.md5 new file mode 100644 index 000000000..fec2b8c69 --- /dev/null +++ b/libddd.html/classMLHomAdapter__inherit__graph.md5 @@ -0,0 +1 @@ +68d6d52240a0bd072e1ff182948e2fe6 \ No newline at end of file diff --git a/libddd.html/classMLHomAdapter__inherit__graph.png b/libddd.html/classMLHomAdapter__inherit__graph.png new file mode 100644 index 000000000..0fa10a7c4 Binary files /dev/null and b/libddd.html/classMLHomAdapter__inherit__graph.png differ diff --git a/libddd.html/classMLHom__coll__graph.map b/libddd.html/classMLHom__coll__graph.map new file mode 100644 index 000000000..6459eeee4 --- /dev/null +++ b/libddd.html/classMLHom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMLHom__coll__graph.md5 b/libddd.html/classMLHom__coll__graph.md5 new file mode 100644 index 000000000..fd33c5762 --- /dev/null +++ b/libddd.html/classMLHom__coll__graph.md5 @@ -0,0 +1 @@ +d4c58f41f4e4639be88160b2131405cb \ No newline at end of file diff --git a/libddd.html/classMLHom__coll__graph.png b/libddd.html/classMLHom__coll__graph.png new file mode 100644 index 000000000..0389b5747 Binary files /dev/null and b/libddd.html/classMLHom__coll__graph.png differ diff --git a/libddd.html/classMLShom-members.html b/libddd.html/classMLShom-members.html new file mode 100644 index 000000000..0313a7e50 --- /dev/null +++ b/libddd.html/classMLShom-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MLShom Member List
+
+
+ +

This is the complete list of members for MLShom, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
concretMLShomprivate
eval(const GSDD &) constMLShom
garbage()MLShomstatic
hash() constMLShominline
idMLShomstatic
MLShom()MLShominline
MLShom(const GShom &h)MLShom
MLShom(const GShom &up, const MLShom &down)MLShom
MLShom(const _MLShom &)MLShom
MLShom(_MLShom *)MLShom
MLShom(const _MLShom *)MLShom
MLShom(int var, const DataSet &val, const MLShom &h=MLShom::id)MLShom
operator()(const GSDD &) constMLShom
operator+(const MLShom &, const MLShom &)MLShomfriend
operator<(const MLShom &h) constMLShominline
operator==(const MLShom &h) constMLShominline
~MLShom()MLShomvirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLShom.html b/libddd.html/classMLShom.html new file mode 100644 index 000000000..9ef15a3dd --- /dev/null +++ b/libddd.html/classMLShom.html @@ -0,0 +1,589 @@ + + + + + + + +DDD: MLShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Static Public Attributes | +Private Attributes | +Friends | +List of all members
+
+
MLShom Class Reference
+
+
+ +

#include <MLSHom.h>

+
+Collaboration diagram for MLShom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MLShom ()
 Default public constructor. More...
 
 MLShom (const GShom &h)
 
 MLShom (const GShom &up, const MLShom &down)
 
 MLShom (const _MLShom &)
 
 MLShom (_MLShom *)
 
 MLShom (const _MLShom *)
 
 MLShom (int var, const DataSet &val, const MLShom &h=MLShom::id)
 Create variable/value pair and left concatenate to a homomorphism. More...
 
virtual ~MLShom ()
 
bool operator< (const MLShom &h) const
 
bool operator== (const MLShom &h) const
 
size_t hash () const
 Hash key computation. More...
 
SHomNodeMap eval (const GSDD &) const
 The computation function responsible for evaluation over a node. More...
 
SHomNodeMap operator() (const GSDD &) const
 cache calls to eval More...
 
+ + + + +

+Static Public Member Functions

static void garbage ()
 Collects and destroys unused homomorphisms. More...
 
+ + + + +

+Static Public Attributes

static const MLShom id
 Elementary homomorphism Identity, defined as a constant. More...
 
+ + + + +

+Private Attributes

const _MLShomconcret
 The real implementation class. More...
 
+ + + + +

+Friends

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 d is a SDDD. More...
 
+

Constructor & Destructor Documentation

+ +

◆ MLShom() [1/7]

+ +
+
+ + + + + +
+ + + + + + + +
MLShom::MLShom ()
+
+inline
+
+ +

Default public constructor.

+

Builds Identity homomorphism : forall d in DDD, id(d) = d

+ +
+
+ +

◆ MLShom() [2/7]

+ +
+
+ + + + + + + + +
MLShom::MLShom (const GShomh)
+
+ +
+
+ +

◆ MLShom() [3/7]

+ +
+
+ + + + + + + + + + + + + + + + + + +
MLShom::MLShom (const GShomup,
const MLShomdown 
)
+
+ +
+
+ +

◆ MLShom() [4/7]

+ +
+
+ + + + + + + + +
MLShom::MLShom (const _MLShomh)
+
+ +
+
+ +

◆ MLShom() [5/7]

+ +
+
+ + + + + + + + +
MLShom::MLShom (_MLShom)
+
+ +
+
+ +

◆ MLShom() [6/7]

+ +
+
+ + + + + + + + +
MLShom::MLShom (const _MLShomh)
+
+ +
+
+ +

◆ MLShom() [7/7]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
MLShom::MLShom (int var,
const DataSetval,
const MLShomh = MLShom::id 
)
+
+ +

Create variable/value pair and left concatenate to a homomorphism.

+

h(var,val,g) (d) = DDD(var,val) ^ g(d). In other words : var – val -> g

Parameters
+ + + + +
varthe variable index
valthe value associated to the variable
hthe homomorphism to apply on successor node. Default is identity, so is equivalent to a left concatenation of a DDD(var,val).
+
+
+ +
+
+ +

◆ ~MLShom()

+ +
+
+ + + + + +
+ + + + + + + +
MLShom::~MLShom ()
+
+virtual
+
+ +
+
+

Member Function Documentation

+ +

◆ eval()

+ +
+
+ + + + + + + + +
SHomNodeMap MLShom::eval (const GSDD) const
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use operator() that encapsulates this call with operation caching.

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void MLShom::garbage ()
+
+static
+
+ +

Collects and destroys unused homomorphisms.

+

Do not call this directly but through MemoryManager::garbage() as order of calls (among GSDD::garbage(), GShom::garbage(), SDED::garbage()) is important.

+ +

References canonical, and _MLShom::marking.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t MLShom::hash () const
+
+inline
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

References concret, and ddd::knuth32_hash().

+ +

Referenced by nsMLShom::ConstantUp::hash(), nsMLShom::LeftConcat::hash(), and sns::MLShomAdapter::hash().

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + + + + +
SHomNodeMap MLShom::operator() (const GSDDd) const
+
+ +

cache calls to eval

+ +

References concret, and _MLShom::eval().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MLShom::operator< (const MLShomh) const
+
+inline
+
+ +

References concret.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool MLShom::operator== (const MLShomh) const
+
+inline
+
+ +

References concret.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator+

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MLShom operator+ (const MLShom,
const MLShom 
)
+
+friend
+
+ +

By definition, as homomorphism are linear, (h+g) (d) = h(d) + g(d) ; Where g,h are homomorphisms and d is a SDDD.

+

This commutative operation computes a homomorphism that evaluates as the sum of two homomorphism.

+

Semantics : (h1 + h2) (d) = h1(d) + h2(d).

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _MLShom* MLShom::concret
+
+private
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.
+

+ +

Referenced by hash(), operator()(), operator<(), and operator==().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const MLShom MLShom::id
+
+static
+
+ +

Elementary homomorphism Identity, defined as a constant.

+

id(d) = <id, d>

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMLShom__coll__graph.map b/libddd.html/classMLShom__coll__graph.map new file mode 100644 index 000000000..6673070f2 --- /dev/null +++ b/libddd.html/classMLShom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMLShom__coll__graph.md5 b/libddd.html/classMLShom__coll__graph.md5 new file mode 100644 index 000000000..ef0bfaad7 --- /dev/null +++ b/libddd.html/classMLShom__coll__graph.md5 @@ -0,0 +1 @@ +fea0a1baaca0e52832c1c35d62d83b1c \ No newline at end of file diff --git a/libddd.html/classMLShom__coll__graph.png b/libddd.html/classMLShom__coll__graph.png new file mode 100644 index 000000000..707a32426 Binary files /dev/null and b/libddd.html/classMLShom__coll__graph.png differ diff --git a/libddd.html/classMemoryManager-members.html b/libddd.html/classMemoryManager-members.html new file mode 100644 index 000000000..6ea85f3b5 --- /dev/null +++ b/libddd.html/classMemoryManager-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MemoryManager Member List
+
+
+ +

This is the complete list of members for MemoryManager, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
addHook(GCHook *hook)MemoryManagerinlinestatic
garbage()MemoryManagerinlinestatic
getPeakMemory()MemoryManagerinlinestatic
hooks_MemoryManagerprivatestatic
hooks_it typedefMemoryManagerprivate
hooks_t typedefMemoryManagerprivate
last_memMemoryManagerprivatestatic
mark(const GDDD &g)MemoryManagerinlinestatic
mark(const GHom &h)MemoryManagerinlinestatic
nbDDD()MemoryManagerinlinestatic
nbDED()MemoryManagerinlinestatic
nbHom()MemoryManagerinlinestatic
nbSDD()MemoryManagerinlinestatic
nbSDED()MemoryManagerinlinestatic
nbShom()MemoryManagerinlinestatic
pstats(bool reinit=true)MemoryManagerinlinestatic
setGCThreshold(size_t nbKbyte)MemoryManagerinlinestatic
should_garbage()MemoryManagerinlinestatic
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMemoryManager.html b/libddd.html/classMemoryManager.html new file mode 100644 index 000000000..6f02427d5 --- /dev/null +++ b/libddd.html/classMemoryManager.html @@ -0,0 +1,644 @@ + + + + + + + +DDD: MemoryManager Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Static Public Member Functions | +Private Types | +Static Private Attributes | +List of all members
+
+
MemoryManager Class Reference
+
+
+ +

This class defines a few utility functions common to DDD. + More...

+ +

#include <MemoryManager.h>

+
+Collaboration diagram for MemoryManager:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static unsigned int nbDDD ()
 Returns the size of the unicity table for DDD. More...
 
static unsigned int nbDED ()
 Returns the size of the cache unicity table for DDD. More...
 
static unsigned int nbHom ()
 Returns the size of the unicity table for DDD Homomorphisms. More...
 
static unsigned int nbSDD ()
 Returns the size of the unicity table for SDD. More...
 
static unsigned int nbSDED ()
 Returns the size of the cache unicity table for SDD. More...
 
static unsigned int nbShom ()
 Returns the size of the unicity table for SDD Homomorphisms. More...
 
static void mark (const GDDD &g)
 Convenience function to mark a node as non collectible. More...
 
static void mark (const GHom &h)
 Convenience function to mark a Hom as non collectible. More...
 
static bool should_garbage ()
 tester for memory management routine triggering in a top level fixpoint More...
 
static void garbage ()
 Garbage collection function. More...
 
static void pstats (bool reinit=true)
 Prints some statistics about use of unicity tables, also reinitializes peak sizes. More...
 
static void setGCThreshold (size_t nbKbyte)
 
static size_t getPeakMemory ()
 
static void addHook (GCHook *hook)
 
+ + + + + +

+Private Types

typedef std::vector< GCHook * > hooks_t
 
typedef hooks_t::iterator hooks_it
 
+ + + + + +

+Static Private Attributes

static hooks_t hooks_ = MemoryManager::hooks_t()
 
static size_t last_mem = 1300000
 
+

Detailed Description

+

This class defines a few utility functions common to DDD.

+

Note that all functions are declared static, so this is more of a namespace than a class. One important function is garbage(), only this MemoryManager::garbage() should be caled : avoid GHom::garbage(), DED::garbage(), GDDD::garbage() (and SDD versions of the same, they should not be called directly.

+

Member Typedef Documentation

+ +

◆ hooks_it

+ +
+
+ + + + + +
+ + + + +
typedef hooks_t::iterator MemoryManager::hooks_it
+
+private
+
+ +
+
+ +

◆ hooks_t

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<GCHook*> MemoryManager::hooks_t
+
+private
+
+ +
+
+

Member Function Documentation

+ +

◆ addHook()

+ +
+
+ + + + + +
+ + + + + + + + +
static void MemoryManager::addHook (GCHookhook)
+
+inlinestatic
+
+ +

References hooks_.

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
static void MemoryManager::garbage ()
+
+inlinestatic
+
+ +

Garbage collection function.

+

Call this to reclaim intermediate nodes, unused operations and related cache. Note that this function is quite costly, and it totally destroys the cache

+ +

References GDDD::garbage(), DED::garbage(), GHom::garbage(), IntDataSet::garbage(), MLHom::garbage(), GSDD::garbage(), SDED::garbage(), GShom::garbage(), and hooks_.

+ +

Referenced by Fixpoint::eval(), and sns::Fixpoint::eval().

+ +
+
+ +

◆ getPeakMemory()

+ +
+
+ + + + + +
+ + + + + + + +
static size_t MemoryManager::getPeakMemory ()
+
+inlinestatic
+
+ +

References last_mem, and should_garbage().

+ +
+
+ +

◆ mark() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static void MemoryManager::mark (const GDDDg)
+
+inlinestatic
+
+ +

Convenience function to mark a node as non collectible.

+
Todo:
: track usage and check whether this is useful, SDD version undefined.
+
+ +

References GDDD::mark().

+ +
+
+ +

◆ mark() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static void MemoryManager::mark (const GHomh)
+
+inlinestatic
+
+ +

Convenience function to mark a Hom as non collectible.

+
Todo:
: track usage and check whether this is useful, SDD version undefined.
+
+ +

References GHom::mark().

+ +
+
+ +

◆ nbDDD()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbDDD ()
+
+inlinestatic
+
+ +

Returns the size of the unicity table for DDD.

+ +

References GDDD::statistics().

+ +
+
+ +

◆ nbDED()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbDED ()
+
+inlinestatic
+
+ +

Returns the size of the cache unicity table for DDD.

+ +

References DED::statistics().

+ +
+
+ +

◆ nbHom()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbHom ()
+
+inlinestatic
+
+ +

Returns the size of the unicity table for DDD Homomorphisms.

+ +

References GHom::statistics().

+ +
+
+ +

◆ nbSDD()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbSDD ()
+
+inlinestatic
+
+ +

Returns the size of the unicity table for SDD.

+ +

References GSDD::statistics().

+ +
+
+ +

◆ nbSDED()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbSDED ()
+
+inlinestatic
+
+ +

Returns the size of the cache unicity table for SDD.

+ +

References SDED::statistics().

+ +
+
+ +

◆ nbShom()

+ +
+
+ + + + + +
+ + + + + + + +
static unsigned int MemoryManager::nbShom ()
+
+inlinestatic
+
+ +

Returns the size of the unicity table for SDD Homomorphisms.

+ +

References GShom::statistics().

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
static void MemoryManager::pstats (bool reinit = true)
+
+inlinestatic
+
+ +

Prints some statistics about use of unicity tables, also reinitializes peak sizes.

+ +

References GDDD::pstats(), DED::pstats(), GHom::pstats(), GSDD::pstats(), SDED::pstats(), and GShom::pstats().

+ +
+
+ +

◆ setGCThreshold()

+ +
+
+ + + + + +
+ + + + + + + + +
static void MemoryManager::setGCThreshold (size_t nbKbyte)
+
+inlinestatic
+
+ +

References last_mem.

+ +
+
+ +

◆ should_garbage()

+ +
+
+ + + + + +
+ + + + + + + +
static bool MemoryManager::should_garbage ()
+
+inlinestatic
+
+ +

tester for memory management routine triggering in a top level fixpoint

+ +

References process::getResidentMemory(), and last_mem.

+ +

Referenced by Fixpoint::eval(), sns::Fixpoint::eval(), and getPeakMemory().

+ +
+
+

Member Data Documentation

+ +

◆ hooks_

+ +
+
+ + + + + +
+ + + + +
MemoryManager::hooks_t MemoryManager::hooks_ = MemoryManager::hooks_t()
+
+staticprivate
+
+ +

Referenced by addHook(), and garbage().

+ +
+
+ +

◆ last_mem

+ +
+
+ + + + + +
+ + + + +
size_t MemoryManager::last_mem = 1300000
+
+staticprivate
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMemoryManager__coll__graph.map b/libddd.html/classMemoryManager__coll__graph.map new file mode 100644 index 000000000..d9aeafc2c --- /dev/null +++ b/libddd.html/classMemoryManager__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classMemoryManager__coll__graph.md5 b/libddd.html/classMemoryManager__coll__graph.md5 new file mode 100644 index 000000000..3e6303b82 --- /dev/null +++ b/libddd.html/classMemoryManager__coll__graph.md5 @@ -0,0 +1 @@ +ec39a69ba453f6c7f521bb2c881010dc \ No newline at end of file diff --git a/libddd.html/classMemoryManager__coll__graph.png b/libddd.html/classMemoryManager__coll__graph.png new file mode 100644 index 000000000..d4608198f Binary files /dev/null and b/libddd.html/classMemoryManager__coll__graph.png differ diff --git a/libddd.html/classMinus-members.html b/libddd.html/classMinus-members.html new file mode 100644 index 000000000..19aa1f107 --- /dev/null +++ b/libddd.html/classMinus-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Minus Member List
+
+
+ +

This is the complete list of members for Minus, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constMinusinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constMinusinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constMinusinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constMinusinlinevirtual
is_selector() constMinusinlinevirtual
leftMinusprivate
mark() constMinusinlinevirtual
marking_GHommutableprivate
Minus(const GHom &l, const GDDD &r, int ref=0)Minusinline
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constMinusinlinevirtual
print(std::ostream &os) constMinusinlinevirtual
refCounter_GHommutableprivate
rightMinusprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMinus.html b/libddd.html/classMinus.html new file mode 100644 index 000000000..08a2a3351 --- /dev/null +++ b/libddd.html/classMinus.html @@ -0,0 +1,893 @@ + + + + + + + +DDD: Minus Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Minus Class Reference
+
+
+
+Inheritance diagram for Minus:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Minus:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Minus (const GHom &l, const GDDD &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GHom left
 
GDDD right
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Minus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Minus::Minus (const GHoml,
const GDDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Minus::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Minus().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Minus::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Minus::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Minus::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::id, GHom::invert(), left, and right.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Minus::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References GHom::is_selector(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Minus::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GDDD::mark(), GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Minus::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Minus::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GHom Minus::left
+
+private
+
+ +

Referenced by eval(), hash(), invert(), is_selector(), mark(), operator==(), and print().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GDDD Minus::right
+
+private
+
+ +

Referenced by eval(), hash(), invert(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMinus__coll__graph.map b/libddd.html/classMinus__coll__graph.map new file mode 100644 index 000000000..54954ebc4 --- /dev/null +++ b/libddd.html/classMinus__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classMinus__coll__graph.md5 b/libddd.html/classMinus__coll__graph.md5 new file mode 100644 index 000000000..9d7cac81a --- /dev/null +++ b/libddd.html/classMinus__coll__graph.md5 @@ -0,0 +1 @@ +13e624ceaa643dd2837f3f9a6590ff88 \ No newline at end of file diff --git a/libddd.html/classMinus__coll__graph.png b/libddd.html/classMinus__coll__graph.png new file mode 100644 index 000000000..d56c8ee18 Binary files /dev/null and b/libddd.html/classMinus__coll__graph.png differ diff --git a/libddd.html/classMinus__inherit__graph.map b/libddd.html/classMinus__inherit__graph.map new file mode 100644 index 000000000..b4a6053e2 --- /dev/null +++ b/libddd.html/classMinus__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMinus__inherit__graph.md5 b/libddd.html/classMinus__inherit__graph.md5 new file mode 100644 index 000000000..0fc62c90c --- /dev/null +++ b/libddd.html/classMinus__inherit__graph.md5 @@ -0,0 +1 @@ +c02f95f156febfd3f822b02e137be3f6 \ No newline at end of file diff --git a/libddd.html/classMinus__inherit__graph.png b/libddd.html/classMinus__inherit__graph.png new file mode 100644 index 000000000..f440f5f29 Binary files /dev/null and b/libddd.html/classMinus__inherit__graph.png differ diff --git a/libddd.html/classMonotonic-members.html b/libddd.html/classMonotonic-members.html new file mode 100644 index 000000000..55cdafbc6 --- /dev/null +++ b/libddd.html/classMonotonic-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Monotonic Member List
+
+
+ +

This is the complete list of members for Monotonic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constMonotonicinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constMonotonicinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_parameters()Monotonicinline
get_partition(int var)Monotonicinline
get_range() constMonotonicinlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constMonotonicinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constMonotonicinlinevirtual
is_selector() constMonotonicinlinevirtual
mark() constMonotonicinlinevirtual
marking_GHommutableprivate
Monotonic(const std::set< GHom > &param, int ref=0)Monotonicinline
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constMonotonicinlinevirtual
param_it typedefMonotonic
param_t typedefMonotonic
parametersMonotonicprivate
partition typedefMonotonic
partition_cacheMonotonicmutableprivate
partition_cache_type typedefMonotonic
print(std::ostream &os) constMonotonicinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constMonotonicinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMonotonic.html b/libddd.html/classMonotonic.html new file mode 100644 index 000000000..b2e5354b5 --- /dev/null +++ b/libddd.html/classMonotonic.html @@ -0,0 +1,1009 @@ + + + + + + + +DDD: Monotonic Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Monotonic Class Reference
+
+
+
+Inheritance diagram for Monotonic:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Monotonic:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + +

+Public Types

typedef std::set< GHomparam_t
 
typedef param_t::const_iterator param_it
 
typedef std::pair< GHom, param_tpartition
 
typedef std::map< int, partitionpartition_cache_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Monotonic (const std::set< GHom > &param, int ref=0)
 
param_tget_parameters ()
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
partition get_partition (int var)
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
_GHomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

param_t parameters
 
partition_cache_type partition_cache
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Member Typedef Documentation

+ +

◆ param_it

+ +
+
+ + + + +
typedef param_t::const_iterator Monotonic::param_it
+
+ +
+
+ +

◆ param_t

+ +
+
+ + + + +
typedef std::set<GHom> Monotonic::param_t
+
+ +
+
+ +

◆ partition

+ +
+
+ + + + +
typedef std::pair< GHom , param_t > Monotonic::partition
+
+ +
+
+ +

◆ partition_cache_type

+ +
+
+ + + + +
typedef std::map<int,partition> Monotonic::partition_cache_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Monotonic()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Monotonic::Monotonic (const std::set< GHom > & param,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Monotonic::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Monotonic().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Monotonic::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References GDDD::null, GDDD::one, partition_cache, skip_variable(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_parameters()

+ +
+
+ + + + + +
+ + + + + + + +
param_t& Monotonic::get_parameters ()
+
+inline
+
+ +

References parameters.

+ +
+
+ +

◆ get_partition()

+ +
+
+ + + + + +
+ + + + + + + + +
partition Monotonic::get_partition (int var)
+
+inline
+
+ +

References partition_cache, and skip_variable().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t Monotonic::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References parameters.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Monotonic::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Monotonic::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Monotonic::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Monotonic::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References parameters, and partition_cache.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Monotonic::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Monotonic::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References parameters.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Monotonic::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References _GHom::get_concret(), monotonic(), parameters, partition_cache, and _GHom::skip_variable().

+ +

Referenced by eval(), and get_partition().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + + +
+ + + + +
param_t Monotonic::parameters
+
+private
+
+
+ +

◆ partition_cache

+ +
+
+ + + + + +
+ + + + +
partition_cache_type Monotonic::partition_cache
+
+mutableprivate
+
+ +

Referenced by eval(), get_partition(), mark(), and skip_variable().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMonotonic__coll__graph.map b/libddd.html/classMonotonic__coll__graph.map new file mode 100644 index 000000000..9c663e352 --- /dev/null +++ b/libddd.html/classMonotonic__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMonotonic__coll__graph.md5 b/libddd.html/classMonotonic__coll__graph.md5 new file mode 100644 index 000000000..cff6f1443 --- /dev/null +++ b/libddd.html/classMonotonic__coll__graph.md5 @@ -0,0 +1 @@ +e0a061435b8e672461562b28e24459cf \ No newline at end of file diff --git a/libddd.html/classMonotonic__coll__graph.png b/libddd.html/classMonotonic__coll__graph.png new file mode 100644 index 000000000..0f3dd8f07 Binary files /dev/null and b/libddd.html/classMonotonic__coll__graph.png differ diff --git a/libddd.html/classMonotonic__inherit__graph.map b/libddd.html/classMonotonic__inherit__graph.map new file mode 100644 index 000000000..9c663e352 --- /dev/null +++ b/libddd.html/classMonotonic__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMonotonic__inherit__graph.md5 b/libddd.html/classMonotonic__inherit__graph.md5 new file mode 100644 index 000000000..cff6f1443 --- /dev/null +++ b/libddd.html/classMonotonic__inherit__graph.md5 @@ -0,0 +1 @@ +e0a061435b8e672461562b28e24459cf \ No newline at end of file diff --git a/libddd.html/classMonotonic__inherit__graph.png b/libddd.html/classMonotonic__inherit__graph.png new file mode 100644 index 000000000..0f3dd8f07 Binary files /dev/null and b/libddd.html/classMonotonic__inherit__graph.png differ diff --git a/libddd.html/classMult-members.html b/libddd.html/classMult-members.html new file mode 100644 index 000000000..22e494686 --- /dev/null +++ b/libddd.html/classMult-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Mult Member List
+
+
+ +

This is the complete list of members for Mult, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constMultinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constMultinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() constMultinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &pot) constMultinlinevirtual
is_selector() constMultinlinevirtual
leftMultprivate
mark() constMultinlinevirtual
marking_GHommutableprivate
Mult(const GHom &l, const GDDD &r, int ref=0)Multinline
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constMultinlinevirtual
print(std::ostream &os) constMultinlinevirtual
refCounter_GHommutableprivate
rightMultprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMult.html b/libddd.html/classMult.html new file mode 100644 index 000000000..3352cb164 --- /dev/null +++ b/libddd.html/classMult.html @@ -0,0 +1,893 @@ + + + + + + + +DDD: Mult Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Mult Class Reference
+
+
+
+Inheritance diagram for Mult:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Mult:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Mult (const GHom &l, const GDDD &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GHom invert (const GDDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GHom left
 
GDDD right
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ Mult()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Mult::Mult (const GHoml,
const GDDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* Mult::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References Mult().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD Mult::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t Mult::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom Mult::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::id, GHom::invert(), left, and right.

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool Mult::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +

References GHom::is_selector(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void Mult::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GDDD::mark(), GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool Mult::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void Mult::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GHom Mult::left
+
+private
+
+ +

Referenced by eval(), hash(), invert(), is_selector(), mark(), operator==(), and print().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GDDD Mult::right
+
+private
+
+ +

Referenced by eval(), hash(), invert(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMult__coll__graph.map b/libddd.html/classMult__coll__graph.map new file mode 100644 index 000000000..8fa22d5f2 --- /dev/null +++ b/libddd.html/classMult__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classMult__coll__graph.md5 b/libddd.html/classMult__coll__graph.md5 new file mode 100644 index 000000000..fc4b0d582 --- /dev/null +++ b/libddd.html/classMult__coll__graph.md5 @@ -0,0 +1 @@ +51d9b9c432c9236e5abefa5b6962b95e \ No newline at end of file diff --git a/libddd.html/classMult__coll__graph.png b/libddd.html/classMult__coll__graph.png new file mode 100644 index 000000000..3f390e84d Binary files /dev/null and b/libddd.html/classMult__coll__graph.png differ diff --git a/libddd.html/classMult__inherit__graph.map b/libddd.html/classMult__inherit__graph.map new file mode 100644 index 000000000..8cc7ee994 --- /dev/null +++ b/libddd.html/classMult__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMult__inherit__graph.md5 b/libddd.html/classMult__inherit__graph.md5 new file mode 100644 index 000000000..86a002ffd --- /dev/null +++ b/libddd.html/classMult__inherit__graph.md5 @@ -0,0 +1 @@ +b29f5fe78f847fe3209247866eb43c95 \ No newline at end of file diff --git a/libddd.html/classMult__inherit__graph.png b/libddd.html/classMult__inherit__graph.png new file mode 100644 index 000000000..b71402727 Binary files /dev/null and b/libddd.html/classMult__inherit__graph.png differ diff --git a/libddd.html/classMyGHom-members.html b/libddd.html/classMyGHom-members.html new file mode 100644 index 000000000..a93cc6cc7 --- /dev/null +++ b/libddd.html/classMyGHom-members.html @@ -0,0 +1,79 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MyGHom Member List
+
+
+ +

This is the complete list of members for MyGHom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() const =0_GHompure virtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &) const =0_GHompure virtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const =0_GHompure virtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) const =0_GHompure virtual
print(std::ostream &os) const =0_GHompure virtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyGHom.html b/libddd.html/classMyGHom.html new file mode 100644 index 000000000..9451aa15b --- /dev/null +++ b/libddd.html/classMyGHom.html @@ -0,0 +1,796 @@ + + + + + + + +DDD: MyGHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
MyGHom Class Referenceabstract
+
+
+ +

Unknown function for this class. + More...

+ +

#include <Hom.h>

+
+Inheritance diagram for MyGHom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for MyGHom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
virtual bool operator== (const _GHom &h) const =0
 Comparator. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GHomclone () const =0
 
virtual GDDD eval (const GDDD &) const =0
 The computation function responsible for evaluation over a node. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
virtual void print (std::ostream &os) const =0
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Detailed Description

+

Unknown function for this class.

+
Todo:
: What IS this for ? get rid of it.
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GHom* _GHom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GDDD _GHom::eval (const GDDD) const
+
+pure virtualinherited
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Apply2k, Constant, Identity, and StrongHom.

+ +

Referenced by _GHom::eval_skip(), and GHom::operator()().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GHom::hash () const
+
+pure virtualinherited
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Apply2k, Constant, and Identity.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::operator== (const _GHomh) const
+
+pure virtualinherited
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implemented in NotCond, DomExtract, MLHomAdapter, StrongHom, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void _GHom::print (std::ostream & os) const
+
+pure virtualinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyGHom__coll__graph.map b/libddd.html/classMyGHom__coll__graph.map new file mode 100644 index 000000000..ca888d77f --- /dev/null +++ b/libddd.html/classMyGHom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMyGHom__coll__graph.md5 b/libddd.html/classMyGHom__coll__graph.md5 new file mode 100644 index 000000000..0bffdc8d1 --- /dev/null +++ b/libddd.html/classMyGHom__coll__graph.md5 @@ -0,0 +1 @@ +c42cbf8a3ade2d94eacd0867b185694f \ No newline at end of file diff --git a/libddd.html/classMyGHom__coll__graph.png b/libddd.html/classMyGHom__coll__graph.png new file mode 100644 index 000000000..7bb879fb7 Binary files /dev/null and b/libddd.html/classMyGHom__coll__graph.png differ diff --git a/libddd.html/classMyGHom__inherit__graph.map b/libddd.html/classMyGHom__inherit__graph.map new file mode 100644 index 000000000..ca888d77f --- /dev/null +++ b/libddd.html/classMyGHom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMyGHom__inherit__graph.md5 b/libddd.html/classMyGHom__inherit__graph.md5 new file mode 100644 index 000000000..0bffdc8d1 --- /dev/null +++ b/libddd.html/classMyGHom__inherit__graph.md5 @@ -0,0 +1 @@ +c42cbf8a3ade2d94eacd0867b185694f \ No newline at end of file diff --git a/libddd.html/classMyGHom__inherit__graph.png b/libddd.html/classMyGHom__inherit__graph.png new file mode 100644 index 000000000..7bb879fb7 Binary files /dev/null and b/libddd.html/classMyGHom__inherit__graph.png differ diff --git a/libddd.html/classMyGShom-members.html b/libddd.html/classMyGShom-members.html new file mode 100644 index 000000000..fb48c5d29 --- /dev/null +++ b/libddd.html/classMyGShom-members.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MyGShom Member List
+
+
+ +

This is the complete list of members for MyGShom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() const =0_GShompure virtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &) const =0_GShompure virtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() const =0_GShompure virtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
mark() const_GShominlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) const =0_GShompure virtual
print(std::ostream &os) const =0_GShompure virtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyGShom.html b/libddd.html/classMyGShom.html new file mode 100644 index 000000000..a5de6af81 --- /dev/null +++ b/libddd.html/classMyGShom.html @@ -0,0 +1,852 @@ + + + + + + + +DDD: MyGShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
MyGShom Class Referenceabstract
+
+
+ +

#include <SHom.h>

+
+Inheritance diagram for MyGShom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for MyGShom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual bool operator== (const _GShom &h) const =0
 Comparator. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GShomclone () const =0
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
virtual GSDD eval (const GSDD &) const =0
 The computation function responsible for evaluation over a node. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual void print (std::ostream &os) const =0
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GShom* _GShom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GSDD _GShom::eval (const GSDD) const
+
+pure virtualinherited
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implemented in sns::MLShomAdapter, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, sns::Identity, and StrongShom.

+ +

Referenced by _GShom::eval_skip().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GShom::hash () const
+
+pure virtualinherited
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in sns::MLShomAdapter, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GShom::mark () const
+
+inlinevirtualinherited
+
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::operator== (const _GShomh) const
+
+pure virtualinherited
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implemented in sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::MLShomAdapter, StrongShom, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void _GShom::print (std::ostream & os) const
+
+pure virtualinherited
+
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyGShom__coll__graph.map b/libddd.html/classMyGShom__coll__graph.map new file mode 100644 index 000000000..8ee9584db --- /dev/null +++ b/libddd.html/classMyGShom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMyGShom__coll__graph.md5 b/libddd.html/classMyGShom__coll__graph.md5 new file mode 100644 index 000000000..21504f559 --- /dev/null +++ b/libddd.html/classMyGShom__coll__graph.md5 @@ -0,0 +1 @@ +c1bfeba157ed89a882d5efb1c3eeb8ee \ No newline at end of file diff --git a/libddd.html/classMyGShom__coll__graph.png b/libddd.html/classMyGShom__coll__graph.png new file mode 100644 index 000000000..8d45c3bd7 Binary files /dev/null and b/libddd.html/classMyGShom__coll__graph.png differ diff --git a/libddd.html/classMyGShom__inherit__graph.map b/libddd.html/classMyGShom__inherit__graph.map new file mode 100644 index 000000000..8ee9584db --- /dev/null +++ b/libddd.html/classMyGShom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMyGShom__inherit__graph.md5 b/libddd.html/classMyGShom__inherit__graph.md5 new file mode 100644 index 000000000..21504f559 --- /dev/null +++ b/libddd.html/classMyGShom__inherit__graph.md5 @@ -0,0 +1 @@ +c1bfeba157ed89a882d5efb1c3eeb8ee \ No newline at end of file diff --git a/libddd.html/classMyGShom__inherit__graph.png b/libddd.html/classMyGShom__inherit__graph.png new file mode 100644 index 000000000..8d45c3bd7 Binary files /dev/null and b/libddd.html/classMyGShom__inherit__graph.png differ diff --git a/libddd.html/classMyNbStates-members.html b/libddd.html/classMyNbStates-members.html new file mode 100644 index 000000000..52b1cba98 --- /dev/null +++ b/libddd.html/classMyNbStates-members.html @@ -0,0 +1,63 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MyNbStates Member List
+
+
+ +

This is the complete list of members for MyNbStates, including all inherited members.

+ + + + + + + + +
cacheMyNbStatesprivatestatic
cache_type typedefMyNbStatesprivate
clear()MyNbStatesinlinestatic
MyNbStates(int v)MyNbStatesinline
nbStates(const GDDD &g)MyNbStatesinlineprivate
operator()(const GDDD &g)MyNbStatesinline
valMyNbStatesprivate
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyNbStates.html b/libddd.html/classMyNbStates.html new file mode 100644 index 000000000..c6cd9df74 --- /dev/null +++ b/libddd.html/classMyNbStates.html @@ -0,0 +1,293 @@ + + + + + + + +DDD: MyNbStates Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Types | +Private Member Functions | +Private Attributes | +Static Private Attributes | +List of all members
+
+
MyNbStates Class Reference
+
+
+
+Collaboration diagram for MyNbStates:
+
+
Collaboration graph
+ + + + +
+ + + + + + +

+Public Member Functions

 MyNbStates (int v)
 
long double operator() (const GDDD &g)
 
+ + + +

+Static Public Member Functions

static void clear ()
 
+ + + +

+Private Types

typedef ext_hash_map< GDDD, long double > cache_type
 
+ + + +

+Private Member Functions

long double nbStates (const GDDD &g)
 
+ + + +

+Private Attributes

int val
 
+ + + +

+Static Private Attributes

static cache_type cache = ext_hash_map<GDDD,long double> ()
 
+

Member Typedef Documentation

+ +

◆ cache_type

+ +
+
+ + + + + +
+ + + + +
typedef ext_hash_map<GDDD,long double> MyNbStates::cache_type
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ MyNbStates()

+ +
+
+ + + + + +
+ + + + + + + + +
MyNbStates::MyNbStates (int v)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clear()

+ +
+
+ + + + + +
+ + + + + + + +
static void MyNbStates::clear ()
+
+inlinestatic
+
+
+ +

◆ nbStates()

+ +
+
+ + + + + +
+ + + + + + + + +
long double MyNbStates::nbStates (const GDDDg)
+
+inlineprivate
+
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
long double MyNbStates::operator() (const GDDDg)
+
+inline
+
+ +

References nbStates().

+ +
+
+

Member Data Documentation

+ +

◆ cache

+ +
+
+ + + + + +
+ + + + +
ext_hash_map< GDDD, long double > MyNbStates::cache = ext_hash_map<GDDD,long double> ()
+
+staticprivate
+
+ +

Referenced by clear(), and nbStates().

+ +
+
+ +

◆ val

+ +
+
+ + + + + +
+ + + + +
int MyNbStates::val
+
+private
+
+ +

Referenced by nbStates().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMyNbStates__coll__graph.map b/libddd.html/classMyNbStates__coll__graph.map new file mode 100644 index 000000000..742be5bb2 --- /dev/null +++ b/libddd.html/classMyNbStates__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMyNbStates__coll__graph.md5 b/libddd.html/classMyNbStates__coll__graph.md5 new file mode 100644 index 000000000..e56780fe2 --- /dev/null +++ b/libddd.html/classMyNbStates__coll__graph.md5 @@ -0,0 +1 @@ +c747cccecf0d994c8e411173346fb337 \ No newline at end of file diff --git a/libddd.html/classMyNbStates__coll__graph.png b/libddd.html/classMyNbStates__coll__graph.png new file mode 100644 index 000000000..83a850cfe Binary files /dev/null and b/libddd.html/classMyNbStates__coll__graph.png differ diff --git a/libddd.html/classMySDDNbStates-members.html b/libddd.html/classMySDDNbStates-members.html new file mode 100644 index 000000000..0f285fee5 --- /dev/null +++ b/libddd.html/classMySDDNbStates-members.html @@ -0,0 +1,63 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MySDDNbStates Member List
+
+
+ +

This is the complete list of members for MySDDNbStates, including all inherited members.

+ + + + + + + + +
cacheMySDDNbStatesprivatestatic
cache_type typedefMySDDNbStatesprivate
clear()MySDDNbStatesinlinestatic
MySDDNbStates(int v)MySDDNbStatesinline
nbStates(const GSDD &g)MySDDNbStatesinlineprivate
operator()(const GSDD &g)MySDDNbStatesinline
valMySDDNbStatesprivate
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMySDDNbStates.html b/libddd.html/classMySDDNbStates.html new file mode 100644 index 000000000..77a2846fe --- /dev/null +++ b/libddd.html/classMySDDNbStates.html @@ -0,0 +1,293 @@ + + + + + + + +DDD: MySDDNbStates Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Types | +Private Member Functions | +Private Attributes | +Static Private Attributes | +List of all members
+
+
MySDDNbStates Class Reference
+
+
+
+Collaboration diagram for MySDDNbStates:
+
+
Collaboration graph
+ + + + +
+ + + + + + +

+Public Member Functions

 MySDDNbStates (int v)
 
long double operator() (const GSDD &g)
 
+ + + +

+Static Public Member Functions

static void clear ()
 
+ + + +

+Private Types

typedef ext_hash_map< GSDD, long double > cache_type
 
+ + + +

+Private Member Functions

long double nbStates (const GSDD &g)
 
+ + + +

+Private Attributes

int val
 
+ + + +

+Static Private Attributes

static cache_type cache = ext_hash_map<GSDD,long double> ()
 
+

Member Typedef Documentation

+ +

◆ cache_type

+ +
+
+ + + + + +
+ + + + +
typedef ext_hash_map<GSDD,long double> MySDDNbStates::cache_type
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ MySDDNbStates()

+ +
+
+ + + + + +
+ + + + + + + + +
MySDDNbStates::MySDDNbStates (int v)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clear()

+ +
+
+ + + + + +
+ + + + + + + +
static void MySDDNbStates::clear ()
+
+inlinestatic
+
+
+ +

◆ nbStates()

+ +
+
+ + + + + +
+ + + + + + + + +
long double MySDDNbStates::nbStates (const GSDDg)
+
+inlineprivate
+
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
long double MySDDNbStates::operator() (const GSDDg)
+
+inline
+
+ +

References nbStates().

+ +
+
+

Member Data Documentation

+ +

◆ cache

+ +
+
+ + + + + +
+ + + + +
ext_hash_map< GSDD, long double > MySDDNbStates::cache = ext_hash_map<GSDD,long double> ()
+
+staticprivate
+
+ +

Referenced by clear(), and nbStates().

+ +
+
+ +

◆ val

+ +
+
+ + + + + +
+ + + + +
int MySDDNbStates::val
+
+private
+
+ +

Referenced by nbStates().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMySDDNbStates__coll__graph.map b/libddd.html/classMySDDNbStates__coll__graph.map new file mode 100644 index 000000000..3e6925bbf --- /dev/null +++ b/libddd.html/classMySDDNbStates__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classMySDDNbStates__coll__graph.md5 b/libddd.html/classMySDDNbStates__coll__graph.md5 new file mode 100644 index 000000000..6398eafd7 --- /dev/null +++ b/libddd.html/classMySDDNbStates__coll__graph.md5 @@ -0,0 +1 @@ +de425eb3a2f32fd50929377326bf4426 \ No newline at end of file diff --git a/libddd.html/classMySDDNbStates__coll__graph.png b/libddd.html/classMySDDNbStates__coll__graph.png new file mode 100644 index 000000000..a819d8903 Binary files /dev/null and b/libddd.html/classMySDDNbStates__coll__graph.png differ diff --git a/libddd.html/classMySize-members.html b/libddd.html/classMySize-members.html new file mode 100644 index 000000000..f41ae936b --- /dev/null +++ b/libddd.html/classMySize-members.html @@ -0,0 +1,60 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
MySize Member List
+
+
+ +

This is the complete list of members for MySize, including all inherited members.

+ + + + + +
mysize(const GDDD &g)MySizeinlineprivate
operator()(const GDDD &g)MySizeinline
resMySizeprivate
sMySizeprivate
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMySize.html b/libddd.html/classMySize.html new file mode 100644 index 000000000..99e6aa5d3 --- /dev/null +++ b/libddd.html/classMySize.html @@ -0,0 +1,195 @@ + + + + + + + +DDD: MySize Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
MySize Class Reference
+
+
+
+Collaboration diagram for MySize:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Member Functions

unsigned long int operator() (const GDDD &g)
 
+ + + +

+Private Member Functions

void mysize (const GDDD &g)
 
+ + + + + +

+Private Attributes

unsigned long int res
 
std::set< GDDDs
 
+

Member Function Documentation

+ +

◆ mysize()

+ +
+
+ + + + + +
+ + + + + + + + +
void MySize::mysize (const GDDDg)
+
+inlineprivate
+
+ +

References GDDD::begin(), GDDD::end(), res, and s.

+ +

Referenced by operator()().

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
unsigned long int MySize::operator() (const GDDDg)
+
+inline
+
+ +

References mysize(), res, and s.

+ +
+
+

Member Data Documentation

+ +

◆ res

+ +
+
+ + + + + +
+ + + + +
unsigned long int MySize::res
+
+private
+
+ +

Referenced by mysize(), and operator()().

+ +
+
+ +

◆ s

+ +
+
+ + + + + +
+ + + + +
std::set<GDDD> MySize::s
+
+private
+
+ +

Referenced by mysize(), and operator()().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classMySize__coll__graph.map b/libddd.html/classMySize__coll__graph.map new file mode 100644 index 000000000..cd9c7f02f --- /dev/null +++ b/libddd.html/classMySize__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classMySize__coll__graph.md5 b/libddd.html/classMySize__coll__graph.md5 new file mode 100644 index 000000000..e47c93292 --- /dev/null +++ b/libddd.html/classMySize__coll__graph.md5 @@ -0,0 +1 @@ +f81bc8b3532044695a750c0358adf9e0 \ No newline at end of file diff --git a/libddd.html/classMySize__coll__graph.png b/libddd.html/classMySize__coll__graph.png new file mode 100644 index 000000000..d1228209f Binary files /dev/null and b/libddd.html/classMySize__coll__graph.png differ diff --git a/libddd.html/classNotCond-members.html b/libddd.html/classNotCond-members.html new file mode 100644 index 000000000..c59a25eda --- /dev/null +++ b/libddd.html/classNotCond-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
NotCond Member List
+
+
+ +

This is the complete list of members for NotCond, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constNotCondinlinevirtual
compose(const GHom &r) const_GHomvirtual
cond_NotCondprivate
creation_counter_GHomprivate
eval(const GDDD &d) constNotCondinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() constNotCondinlinevirtual
has_image(const GDDD &d) constNotCondinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constNotCondinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() constNotCondinlinevirtual
mark() constNotCondinlinevirtual
marking_GHommutableprivate
negate() constNotCondinlinevirtual
NotCond(const GHom &cond)NotCondinline
operator!(const GHom &)NotCondfriend
operator<(const _GHom &h) const_GHom
operator==(const _GHom &s) constNotCondinlinevirtual
print(std::ostream &os) constNotCondinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) constNotCondinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classNotCond.html b/libddd.html/classNotCond.html new file mode 100644 index 000000000..fb3ee271b --- /dev/null +++ b/libddd.html/classNotCond.html @@ -0,0 +1,881 @@ + + + + + + + +DDD: NotCond Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
NotCond Class Reference
+
+
+
+Inheritance diagram for NotCond:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for NotCond:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NotCond (const GHom &cond)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
size_t hash () const
 Hash key computation. More...
 
bool operator== (const _GHom &s) const
 Comparator. More...
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
GDDD has_image (const GDDD &d) const
 
_GHomclone () const
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + +

+Private Attributes

GHom cond_
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+ + + + +

+Friends

GHom operator! (const GHom &)
 A negation/complement constructor for selector homomophisms. More...
 
+

Constructor & Destructor Documentation

+ +

◆ NotCond()

+ +
+
+ + + + + +
+ + + + + + + + +
NotCond::NotCond (const GHomcond)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* NotCond::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References NotCond().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD NotCond::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References cond_, GDDD::null, GDDD::one, and GDDD::top.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t NotCond::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References cond_, and GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD NotCond::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References cond_, GHom::has_image(), GHom::negate(), and GDDD::null.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t NotCond::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References cond_, and GHom::hash().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool NotCond::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void NotCond::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References cond_, and GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom NotCond::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References cond_.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NotCond::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References cond_.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void NotCond::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References cond_.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NotCond::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References cond_, _GHom::get_concret(), and _GHom::skip_variable().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator!

+ +
+
+ + + + + +
+ + + + + + + + +
GHom operator! (const GHom)
+
+friend
+
+ +

A negation/complement constructor for selector homomophisms.

+

Let cond be a selector, !cond(d) = d - cond(d) PITFALL : Raises an assert violation if is_selector() returns false !

+ +
+
+

Member Data Documentation

+ +

◆ cond_

+ +
+
+ + + + + +
+ + + + +
GHom NotCond::cond_
+
+private
+
+
+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classNotCond__coll__graph.map b/libddd.html/classNotCond__coll__graph.map new file mode 100644 index 000000000..9be667e25 --- /dev/null +++ b/libddd.html/classNotCond__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classNotCond__coll__graph.md5 b/libddd.html/classNotCond__coll__graph.md5 new file mode 100644 index 000000000..504ebecc8 --- /dev/null +++ b/libddd.html/classNotCond__coll__graph.md5 @@ -0,0 +1 @@ +1608057ca178a8a8b30acc3955daef11 \ No newline at end of file diff --git a/libddd.html/classNotCond__coll__graph.png b/libddd.html/classNotCond__coll__graph.png new file mode 100644 index 000000000..1e58c27e9 Binary files /dev/null and b/libddd.html/classNotCond__coll__graph.png differ diff --git a/libddd.html/classNotCond__inherit__graph.map b/libddd.html/classNotCond__inherit__graph.map new file mode 100644 index 000000000..5f8f2a179 --- /dev/null +++ b/libddd.html/classNotCond__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classNotCond__inherit__graph.md5 b/libddd.html/classNotCond__inherit__graph.md5 new file mode 100644 index 000000000..4234bdac9 --- /dev/null +++ b/libddd.html/classNotCond__inherit__graph.md5 @@ -0,0 +1 @@ +bf81ad5e77014c2fee2e3e35701859ea \ No newline at end of file diff --git a/libddd.html/classNotCond__inherit__graph.png b/libddd.html/classNotCond__inherit__graph.png new file mode 100644 index 000000000..3ed1cad37 Binary files /dev/null and b/libddd.html/classNotCond__inherit__graph.png differ diff --git a/libddd.html/classRightConcat-members.html b/libddd.html/classRightConcat-members.html new file mode 100644 index 000000000..d331629e0 --- /dev/null +++ b/libddd.html/classRightConcat-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
RightConcat Member List
+
+
+ +

This is the complete list of members for RightConcat, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() constRightConcatinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &d) constRightConcatinlinevirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &d) constRightConcatinlinevirtual
has_image_skip(const GDDD &) const_GHom
hash() constRightConcatinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
leftRightConcatprivate
mark() constRightConcatinlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) constRightConcatinlinevirtual
print(std::ostream &os) constRightConcatinlinevirtual
refCounter_GHommutableprivate
rightRightConcatprivate
RightConcat(const GHom &l, const GDDD &r, int ref=0)RightConcatinline
skip_variable(int var) constRightConcatinlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classRightConcat.html b/libddd.html/classRightConcat.html new file mode 100644 index 000000000..e0b3c0098 --- /dev/null +++ b/libddd.html/classRightConcat.html @@ -0,0 +1,893 @@ + + + + + + + +DDD: RightConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
RightConcat Class Reference
+
+
+
+Inheritance diagram for RightConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for RightConcat:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RightConcat (const GHom &l, const GDDD &r, int ref=0)
 
bool operator== (const _GHom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GHomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GDDD has_image (const GDDD &d) const
 
GDDD eval (const GDDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

GHom left
 
GDDD right
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ RightConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
RightConcat::RightConcat (const GHoml,
const GDDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* RightConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References RightConcat().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD RightConcat::eval (const GDDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD RightConcat::has_image (const GDDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References GHom::has_image(), left, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t RightConcat::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References GDDD::hash(), GHom::hash(), left, and right.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void RightConcat::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GHom.

+ +

References left, GDDD::mark(), GHom::mark(), and right.

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool RightConcat::operator== (const _GHomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void RightConcat::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References left, and right.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool RightConcat::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References _GHom::get_concret(), left, and _GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GHom RightConcat::left
+
+private
+
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GDDD RightConcat::right
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classRightConcat__coll__graph.map b/libddd.html/classRightConcat__coll__graph.map new file mode 100644 index 000000000..91df53c33 --- /dev/null +++ b/libddd.html/classRightConcat__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classRightConcat__coll__graph.md5 b/libddd.html/classRightConcat__coll__graph.md5 new file mode 100644 index 000000000..c544daec3 --- /dev/null +++ b/libddd.html/classRightConcat__coll__graph.md5 @@ -0,0 +1 @@ +41708da685fa0d8e8904210adc9f5dc8 \ No newline at end of file diff --git a/libddd.html/classRightConcat__coll__graph.png b/libddd.html/classRightConcat__coll__graph.png new file mode 100644 index 000000000..23fa39943 Binary files /dev/null and b/libddd.html/classRightConcat__coll__graph.png differ diff --git a/libddd.html/classRightConcat__inherit__graph.map b/libddd.html/classRightConcat__inherit__graph.map new file mode 100644 index 000000000..f35c3c530 --- /dev/null +++ b/libddd.html/classRightConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classRightConcat__inherit__graph.md5 b/libddd.html/classRightConcat__inherit__graph.md5 new file mode 100644 index 000000000..72f88e513 --- /dev/null +++ b/libddd.html/classRightConcat__inherit__graph.md5 @@ -0,0 +1 @@ +1a66b2dd9dec61639b15f01de69c8b57 \ No newline at end of file diff --git a/libddd.html/classRightConcat__inherit__graph.png b/libddd.html/classRightConcat__inherit__graph.png new file mode 100644 index 000000000..1741a5932 Binary files /dev/null and b/libddd.html/classRightConcat__inherit__graph.png differ diff --git a/libddd.html/classSDD-members.html b/libddd.html/classSDD-members.html new file mode 100644 index 000000000..96f422235 --- /dev/null +++ b/libddd.html/classSDD-members.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
SDD Member List
+
+
+ +

This is the complete list of members for SDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() constGSDD
concretGSDDprivate
const_iterator typedefGSDD
empty() constGSDDvirtual
empty_set() constGSDDvirtual
end() constGSDD
garbage()GSDDstatic
GSDD(int variable, Valuation value)GSDD
GSDD()GSDDinline
GSDD(int var, const DataSet &val, const GSDD &d=one)GSDD
GSDD(int var, const GSDD &val, const GSDD &d=one)GSDD
GSDD(int var, const class SDD &val, const GSDD &d=one)GSDD
GSDD(const _GSDD &_g)GSDD
GSDD(_GSDD *_g)GSDD
GSDD(const _GSDD *_g)GSDD
hash() constGSDDinline
mark() constGSDDvirtual
nbsons() constGSDD
nbStates() constGSDD
newcopy() constGSDDinlinevirtual
node_size() constGSDD
nullGSDDstatic
oneGSDDstatic
operator!=(const GSDD &g) constGSDDinline
operator<(const GSDD &g) constGSDD
operator=(const GSDD &)SDD
operator=(const SDD &)SDD
operator==(const GSDD &g) constGSDDinline
peak()GSDDstatic
print(std::ostream &os, std::string s) constGSDDprivate
pstats(bool reinit=true)GSDDstatic
refCounter() constGSDD
SDD(const SDD &)SDD
SDD(const GSDD &g=GSDD::null)SDD
SDD(int var, const DataSet &val, const GSDD &d=one)SDD
SDD(int var, const GSDD &val, const GSDD &d=one)SDD
SDD(int var, const SDD &val, const GSDD &d=one)SDD
set_equal(const DataSet &b) constGSDDvirtual
set_hash() constGSDDvirtual
set_intersect(const DataSet &b) constGSDDvirtual
set_less_than(const DataSet &b) constGSDDvirtual
set_minus(const DataSet &b) constGSDDvirtual
set_print(std::ostream &os) constGSDDinlinevirtual
set_size() constGSDDvirtual
set_union(const DataSet &b) constGSDDvirtual
size() constGSDD
statistics()GSDDstatic
topGSDDstatic
Valuation typedefGSDD
variable() constGSDD
~DataSet()DataSetinlinevirtual
~SDD()SDDvirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classSDD.html b/libddd.html/classSDD.html new file mode 100644 index 000000000..d6401fa52 --- /dev/null +++ b/libddd.html/classSDD.html @@ -0,0 +1,1575 @@ + + + + + + + +DDD: SDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
SDD Class Reference
+
+
+ +

This class is the public interface for manipulating Data Decision Diagrams. + More...

+ +

#include <SDD.h>

+
+Inheritance diagram for SDD:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for SDD:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SDD (const SDD &)
 Copy constructor. More...
 
 SDD (const GSDD &g=GSDD::null)
 Copy constructor from base class GDDD, also default DDD constructor to empty set. More...
 
 SDD (int var, const DataSet &val, const GSDD &d=one)
 The most common way for the user of creating DDD. More...
 
 SDD (int var, const GSDD &val, const GSDD &d=one)
 
 SDD (int var, const SDD &val, const GSDD &d=one)
 
virtual ~SDD ()
 Destructor, maintains refCount. More...
 
Assignment operators.
SDDoperator= (const GSDD &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
SDDoperator= (const SDD &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
Comparisons for hash and map storage
bool operator== (const GSDD &g) const
 Comparison between DDD. More...
 
bool operator!= (const GSDD &g) const
 Comparison between DDD. More...
 
bool operator< (const GSDD &g) const
 Total ordering function between DDD. More...
 
unsigned int refCounter () const
 Returns current reference count of a node. More...
 
unsigned long int size () const
 Returns the size in number of nodes of a SDD structure. More...
 
std::pair< unsigned long int, unsigned long int > node_size () const
 
size_t nbsons () const
 Returns the number of successors of a given node. This is the size of the arc array of the node. More...
 
long double nbStates () const
 Returns the number of states or paths represented by a given node. More...
 
DataSet implementation interface

This is the implementation of the DataSet class interface used in SDD context.

+

These functions allow to reference SDD from SDD arcs. IMPORTANT Remember to delete returned values after use.

+

Note these functions are not resistant to incompatible DataSet types. When these functions have a parameter "b", it should be a reference to a SDD from proper behavior.

+
DataSetnewcopy () const
 Return a new copy of a SDD. More...
 
DataSetset_intersect (const DataSet &b) const
 Compute intersection of two SDD. More...
 
DataSetset_union (const DataSet &b) const
 Compute union of two SDD. More...
 
DataSetset_minus (const DataSet &b) const
 Compute set difference of two SDD. More...
 
bool empty () const
 Return true if this is the empty set. More...
 
DataSetempty_set () const
 Returns a pointer to GSDD::null. More...
 
bool set_equal (const DataSet &b) const
 Compares to DataSet for equality. More...
 
bool set_less_than (const DataSet &b) const
 Compares two sets with a total order. More...
 
long double set_size () const
 Compares to DataSet for equality. More...
 
size_t set_hash () const
 Returns a hash key for the SDD. More...
 
void set_print (std::ostream &os) const
 Textual (human readable) output of a SDD. More...
 
+ + + + + + + + + + + +

+Static Public Attributes

Terminal nodes defined as constants
static const GSDD one
 The accepting terminal. This is the basic leaf for accepted sequences. More...
 
static const GSDD null
 The non-accepting terminal. More...
 
static const GSDD top
 The approximation terminal. More...
 
+ + + + +

+Private Member Functions

void print (std::ostream &os, std::string s) const
 Internal function used in recursion for textual printing of GDDD. More...
 
+ + + + +

+Private Attributes

const _GSDDconcret
 The real implementation class. More...
 
+ + + + + + + + + + + + + + + + +

Public Accessors

int variable () const
 Returns a node's variable. More...
 
const_iterator begin () const
 API for iterating over the arcs of a DDD manually. More...
 
const_iterator end () const
 API for iterating over the arcs of a DDD manually. More...
 
typedef std::vector< std::pair< DataSet *, GSDD > > Valuation
 To hide how arcs are actually stored. Use GSDD::Valuation to refer to arcs type. More...
 
typedef Valuation::const_iterator const_iterator
 To hide how arcs are stored. More...
 
+ + + + + + + + + + + + + + + + + + + + +

Memory Management

Broken right now, dont use me or fixme first Returns the number of nodes that would be used to represent a SDD if no unicity table was used.

+
void mark () const
 For garbage collection internals. More...
 
size_t hash () const
 For storage in a hash table. More...
 
static unsigned int statistics ()
 Returns unicity table current size. Gives the number of different nodes created and not yet destroyed. More...
 
static void garbage ()
 For garbage collection, do not call this directly, use MemoryManager::garbage() instead. More...
 
static void pstats (bool reinit=true)
 Prints some statistics to std::cout. More...
 
static size_t peak ()
 Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection. More...
 
+

Detailed Description

+

This class is the public interface for manipulating Data Decision Diagrams.

+

Except when defining new homomorphisms, a user of the library should only manipulate SDD, not GSDD. Reference counting is enabled for SDD, so they will not be destroyed if they are still in use upon garbage collection.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+ + + + + +
+ + + + +
typedef Valuation::const_iterator GSDD::const_iterator
+
+inherited
+
+ +

To hide how arcs are stored.

+

Also for more compact expressions : use GDDD::const_iterator to iterate over the arcs of a DDD

+ +
+
+ +

◆ Valuation

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<std::pair<DataSet *,GSDD> > GSDD::Valuation
+
+inherited
+
+ +

To hide how arcs are actually stored. Use GSDD::Valuation to refer to arcs type.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ SDD() [1/5]

+ +
+
+ + + + + + + + +
SDD::SDD (const SDDg)
+
+ +

Copy constructor.

+

Constructs a copy, actual data (concret) is not copied. RefCounter is updated however.

+ +

References GSDD::concret, and _GSDD::ref().

+ +
+
+ +

◆ SDD() [2/5]

+ +
+
+ + + + + + + + +
SDD::SDD (const GSDDg = GSDD::null)
+
+ +

Copy constructor from base class GDDD, also default DDD constructor to empty set.

+

Increments refCounter of g.concret.

+ +

References GSDD::concret, and _GSDD::ref().

+ +
+
+ +

◆ SDD() [3/5]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
SDD::SDD (int var,
const DataSetval,
const GSDDd = one 
)
+
+ +

The most common way for the user of creating DDD.

+

This constructor builds a node with a single arc of the form var-val->d. Usually a user will create these single path DDD, possibly by imbrication as in SDD(var1, val1, SDD( var2, val2 )). Then compose them using +, -, *, ^ ... See also GSDD(var,val,d).

Parameters
+ + + + +
varthe variable labeling the node
valthe value labeling the arc
dthe successor node or defaults to terminal GDDD::one if none provided
+
+
+ +

References GSDD::concret, and _GSDD::ref().

+ +
+
+ +

◆ SDD() [4/5]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
SDD::SDD (int var,
const GSDDval,
const GSDDd = one 
)
+
+ +

References GSDD::concret, and _GSDD::ref().

+ +
+
+ +

◆ SDD() [5/5]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
SDD::SDD (int var,
const SDDval,
const GSDDd = one 
)
+
+ +

References GSDD::concret, and _GSDD::ref().

+ +
+
+ +

◆ ~SDD()

+ +
+
+ + + + + +
+ + + + + + + +
SDD::~SDD ()
+
+virtual
+
+ +

Destructor, maintains refCount.

+

Note that destroying a DDD does not actually destroy any data, it decrements reference count, so that subsequent MemoryManager::garbage call may truly clear the data.

+ +

References GSDD::concret, _GSDD::deref(), and _GSDD::refCounter().

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD::const_iterator GSDD::begin () const
+
+inherited
+
+
+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool GSDD::empty () const
+
+virtualinherited
+
+ +

Return true if this is the empty set.

+ +

Implements DataSet.

+ +

References GSDD::null.

+ +

Referenced by GSDD::GSDD().

+ +
+
+ +

◆ empty_set()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet * GSDD::empty_set () const
+
+virtualinherited
+
+ +

Returns a pointer to GSDD::null.

+ +

Implements DataSet.

+ +

References GSDD::GSDD().

+ +
+
+ +

◆ end()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD::const_iterator GSDD::end () const
+
+inherited
+
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GSDD::garbage ()
+
+staticinherited
+
+ +

For garbage collection, do not call this directly, use MemoryManager::garbage() instead.

+
Todo:
describe garbage collection algorithm(s) + mark usage homogeneously in one place.
+ +

References canonical, MySDDNbStates::clear(), Max_SDD, and _GSDD::set_mark().

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::hash () const
+
+inlineinherited
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void GSDD::mark () const
+
+virtualinherited
+
+ +

For garbage collection internals.

+

Marks a GSDD as in use in garbage collection phase.

+ +

Implements DataSet.

+ +

References GSDD::concret, and _GSDD::mark().

+ +

Referenced by sns::Fixpoint::eval(), sns::Constant::mark(), sns::SApply2k::mark(), sns::Mult::mark(), sns::LeftConcat::mark(), sns::RightConcat::mark(), and sns::Minus::mark().

+ +
+
+ +

◆ nbsons()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::nbsons () const
+
+inherited
+
+ +

Returns the number of successors of a given node. This is the size of the arc array of the node.

+ +

References GSDD::concret, and _GSDD::valuation.

+ +

Referenced by _GShom::eval_skip().

+ +
+
+ +

◆ nbStates()

+ +
+
+ + + + + +
+ + + + + + + +
long double GSDD::nbStates () const
+
+inherited
+
+ +

Returns the number of states or paths represented by a given node.

+ +

Referenced by Statistic::load(), and GSDD::set_size().

+ +
+
+ +

◆ newcopy()

+ +
+
+ + + + + +
+ + + + + + + +
DataSet* GSDD::newcopy () const
+
+inlinevirtualinherited
+
+ +

Return a new copy of a SDD.

+ +

Implements DataSet.

+ +

References GSDD::GSDD().

+ +

Referenced by GSDD::GSDD().

+ +
+
+ +

◆ node_size()

+ +
+
+ + + + + +
+ + + + + + + +
std::pair< unsigned long int, unsigned long int > GSDD::node_size () const
+
+inherited
+
+ +

References SddSize::d3res, and SddSize::res.

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::operator!= (const GSDDg) const
+
+inlineinherited
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are not equal.
+ +

References GSDD::concret.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::operator< (const GSDDg) const
+
+inherited
+
+ +

Total ordering function between DDD.

+

Note that comparison is based on "concret" address in unicity table. This ordering is necessary for hash and map storage of GDDD.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if argument g is greater than "this" node.
+ +

References GSDD::concret.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + + + + +
SDD & SDD::operator= (const GSDDg)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GSDD::concret, _GSDD::deref(), and _GSDD::ref().

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + + + + +
SDD & SDD::operator= (const SDDg)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GSDD::concret, _GSDD::deref(), and _GSDD::ref().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::operator== (const GSDDg) const
+
+inlineinherited
+
+ +

Comparison between DDD.

+

Note that comparison is based on "concret" address in unicity table.

Parameters
+ + +
gthe node to compare to
+
+
+
Returns
true if the nodes are equal.
+ +
+
+ +

◆ peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::peak ()
+
+staticinherited
+
+ +

Returns the peak size of the DDD unicity table. This value is maintained up to date upon GarbageCollection.

+ +

References canonical, and Max_SDD.

+ +

Referenced by Statistic::load(), and GSDD::pstats().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void GSDD::print (std::ostream & os,
std::string s 
) const
+
+privateinherited
+
+ +

Internal function used in recursion for textual printing of GDDD.

+ +

References GSDD::begin(), GSDD::end(), GSDD::one, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GSDD::pstats (bool reinit = true)
+
+staticinherited
+
+ +

Prints some statistics to std::cout.

+

Mostly used in debug and development phase. See also MemoryManager::pstats().

Todo:
allow output in other place than cout. Clean up output.
+ +

References GSDD::_GSDD, canonical, and GSDD::peak().

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GSDD::refCounter () const
+
+inherited
+
+ +

Returns current reference count of a node.

+

Reference count corresponds to the number of SDD that use a given concrete node. No recursive reference counting is used : son nodes may have refCount=0 even if this node has a positive refCounter.

+ +

References GSDD::concret, and _GSDD::refCounter().

+ +

Referenced by dotExporter::collect().

+ +
+
+ +

◆ set_equal()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::set_equal (const DataSetb) const
+
+virtualinherited
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GSDD::set_hash () const
+
+virtualinherited
+
+ +

Returns a hash key for the SDD.

+ +

Implements DataSet.

+ +

References GSDD::concret.

+ +
+
+ +

◆ set_intersect()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_intersect (const DataSetb) const
+
+virtualinherited
+
+ +

Compute intersection of two SDD.

+ +

Implements DataSet.

+ +

References GSDD::GSDD().

+ +
+
+ +

◆ set_less_than()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GSDD::set_less_than (const DataSetb) const
+
+virtualinherited
+
+ +

Compares two sets with a total order.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_minus()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_minus (const DataSetb) const
+
+virtualinherited
+
+ +

Compute set difference of two SDD.

+ +

Implements DataSet.

+ +

References GSDD::GSDD().

+ +
+
+ +

◆ set_print()

+ +
+
+ + + + + +
+ + + + + + + + +
void GSDD::set_print (std::ostream & os) const
+
+inlinevirtualinherited
+
+ +

Textual (human readable) output of a SDD.

+ +

Implements DataSet.

+ +
+
+ +

◆ set_size()

+ +
+
+ + + + + +
+ + + + + + + +
long double GSDD::set_size () const
+
+virtualinherited
+
+ +

Compares to DataSet for equality.

+ +

Implements DataSet.

+ +

References GSDD::nbStates().

+ +
+
+ +

◆ set_union()

+ +
+
+ + + + + +
+ + + + + + + + +
DataSet * GSDD::set_union (const DataSetb) const
+
+virtualinherited
+
+ +

Compute union of two SDD.

+ +

Implements DataSet.

+ +

References GSDD::GSDD().

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int GSDD::size () const
+
+inherited
+
+ +

Returns the size in number of nodes of a SDD structure.

+ +
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GSDD::statistics ()
+
+staticinherited
+
+ +

Returns unicity table current size. Gives the number of different nodes created and not yet destroyed.

+ +

References canonical.

+ +

Referenced by MemoryManager::nbSDD().

+ +
+
+ +

◆ variable()

+ +
+
+ + + + + +
+ + + + + + + +
int GSDD::variable () const
+
+inherited
+
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GSDD* GSDD::concret
+
+privateinherited
+
+ +

The real implementation class.

+

All true operations are delagated on this pointer. Construction/destruction take care of ensuring concret is only instantiated once in memory.

+ +

Referenced by GSDD::begin(), GSDD::end(), GSDD::GSDD(), GSDD::hash(), GSDD::mark(), GSDD::nbsons(), GSDD::operator!=(), GSDD::operator<(), operator=(), GSDD::refCounter(), SDD(), GSDD::set_hash(), GSDD::variable(), and ~SDD().

+ +
+
+ +

◆ null

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::null
+
+staticinherited
+
+
+ +

◆ one

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::one
+
+staticinherited
+
+
+ +

◆ top

+ +
+
+ + + + + +
+ + + + +
const GSDD GSDD::top
+
+staticinherited
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classSDD__coll__graph.map b/libddd.html/classSDD__coll__graph.map new file mode 100644 index 000000000..944fc67e9 --- /dev/null +++ b/libddd.html/classSDD__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classSDD__coll__graph.md5 b/libddd.html/classSDD__coll__graph.md5 new file mode 100644 index 000000000..07a5e68f3 --- /dev/null +++ b/libddd.html/classSDD__coll__graph.md5 @@ -0,0 +1 @@ +b9e88a92d315ba4fd7ac90a6006fbd3d \ No newline at end of file diff --git a/libddd.html/classSDD__coll__graph.png b/libddd.html/classSDD__coll__graph.png new file mode 100644 index 000000000..bd244c912 Binary files /dev/null and b/libddd.html/classSDD__coll__graph.png differ diff --git a/libddd.html/classSDD__inherit__graph.map b/libddd.html/classSDD__inherit__graph.map new file mode 100644 index 000000000..9e670d9c5 --- /dev/null +++ b/libddd.html/classSDD__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classSDD__inherit__graph.md5 b/libddd.html/classSDD__inherit__graph.md5 new file mode 100644 index 000000000..00f6f6620 --- /dev/null +++ b/libddd.html/classSDD__inherit__graph.md5 @@ -0,0 +1 @@ +cd89ee7fb392cb1de337d03cf08e0724 \ No newline at end of file diff --git a/libddd.html/classSDD__inherit__graph.png b/libddd.html/classSDD__inherit__graph.png new file mode 100644 index 000000000..2b2099370 Binary files /dev/null and b/libddd.html/classSDD__inherit__graph.png differ diff --git a/libddd.html/classSddSize-members.html b/libddd.html/classSddSize-members.html new file mode 100644 index 000000000..9a60b7ac0 --- /dev/null +++ b/libddd.html/classSddSize-members.html @@ -0,0 +1,66 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
SddSize Member List
+
+
+ +

This is the complete list of members for SddSize, including all inherited members.

+ + + + + + + + + + + +
d3resSddSize
firstErrorSddSizeprivate
operator()(const GSDD &g)SddSizeinline
resSddSize
sSddSizeprivate
sd3SddSizeprivate
sddsize(const GSDD &g)SddSizeinlineprivate
sddsize(const DataSet *g)SddSizeinlineprivate
sddsize(const GDDD &g)SddSizeinlineprivate
SddSize()SddSizeinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classSddSize.html b/libddd.html/classSddSize.html new file mode 100644 index 000000000..0760a3d01 --- /dev/null +++ b/libddd.html/classSddSize.html @@ -0,0 +1,352 @@ + + + + + + + +DDD: SddSize Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
SddSize Class Reference
+
+
+
+Collaboration diagram for SddSize:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + +

+Public Member Functions

 SddSize ()
 
unsigned long int operator() (const GSDD &g)
 
+ + + + + +

+Public Attributes

unsigned long int res
 
unsigned long int d3res
 
+ + + + + + + +

+Private Member Functions

void sddsize (const GSDD &g)
 
void sddsize (const DataSet *g)
 
void sddsize (const GDDD &g)
 
+ + + + + + + +

+Private Attributes

bool firstError
 
d3::set< GSDD >::type s
 
d3::set< GDDD >::type sd3
 
+

Constructor & Destructor Documentation

+ +

◆ SddSize()

+ +
+
+ + + + + +
+ + + + + + + +
SddSize::SddSize ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
unsigned long int SddSize::operator() (const GSDDg)
+
+inline
+
+ +

References d3res, res, s, sd3, and sddsize().

+ +
+
+ +

◆ sddsize() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
void SddSize::sddsize (const DataSetg)
+
+inlineprivate
+
+ +

References firstError, and sddsize().

+ +
+
+ +

◆ sddsize() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
void SddSize::sddsize (const GDDDg)
+
+inlineprivate
+
+ +

References GDDD::begin(), d3res, GDDD::end(), sd3, and sddsize().

+ +
+
+ +

◆ sddsize() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
void SddSize::sddsize (const GSDDg)
+
+inlineprivate
+
+ +

References GSDD::begin(), GSDD::end(), res, and s.

+ +

Referenced by operator()(), and sddsize().

+ +
+
+

Member Data Documentation

+ +

◆ d3res

+ +
+
+ + + + +
unsigned long int SddSize::d3res
+
+ +

Referenced by GSDD::node_size(), operator()(), and sddsize().

+ +
+
+ +

◆ firstError

+ +
+
+ + + + + +
+ + + + +
bool SddSize::firstError
+
+private
+
+ +

Referenced by sddsize().

+ +
+
+ +

◆ res

+ +
+
+ + + + +
unsigned long int SddSize::res
+
+ +

Referenced by GSDD::node_size(), operator()(), and sddsize().

+ +
+
+ +

◆ s

+ +
+
+ + + + + +
+ + + + +
d3::set<GSDD>::type SddSize::s
+
+private
+
+ +

Referenced by operator()(), and sddsize().

+ +
+
+ +

◆ sd3

+ +
+
+ + + + + +
+ + + + +
d3::set<GDDD>::type SddSize::sd3
+
+private
+
+ +

Referenced by operator()(), and sddsize().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classSddSize__coll__graph.map b/libddd.html/classSddSize__coll__graph.map new file mode 100644 index 000000000..9328a4f7b --- /dev/null +++ b/libddd.html/classSddSize__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classSddSize__coll__graph.md5 b/libddd.html/classSddSize__coll__graph.md5 new file mode 100644 index 000000000..5d97943b7 --- /dev/null +++ b/libddd.html/classSddSize__coll__graph.md5 @@ -0,0 +1 @@ +8e82bf91b5204b1959bdaf593cbfbf23 \ No newline at end of file diff --git a/libddd.html/classSddSize__coll__graph.png b/libddd.html/classSddSize__coll__graph.png new file mode 100644 index 000000000..5f85791fc Binary files /dev/null and b/libddd.html/classSddSize__coll__graph.png differ diff --git a/libddd.html/classShom-members.html b/libddd.html/classShom-members.html new file mode 100644 index 000000000..3a8b50746 --- /dev/null +++ b/libddd.html/classShom-members.html @@ -0,0 +1,109 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Shom Member List
+
+
+ +

This is the complete list of members for Shom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
add(const d3::set< GShom >::type &s)GShomstatic
BFS enum valueGShom
cache_peak()GShomstatic
cache_size()GShomstatic
compose(const GShom &) constGShom
concretGShomprivate
DFS enum valueGShom
eval(const GSDD &d) constGShom
fixpointStrategy enum nameGShom
fixpointStrategy_GShomprivatestatic
full_rangeGShomstatic
garbage()GShomstatic
get_range() constGShom
getFixpointStrategy()GShominlinestatic
getSaturationStrategy()GShominlinestatic
GShom()GShominline
GShom(const _GShom *_h)GShom
GShom(_GShom *_h)GShom
GShom(const _GShom &_h)GShom
GShom(const MLShom &)GShom
GShom(const GSDD &d)GShom
GShom(int var, const DataSet &val, const GShom &h=GShom::id)GShom
has_image(const GSDD &d) constGShom
hash() constGShominline
idGShomstatic
invert(const GSDD &pot) constGShom
is_selector() constGShom
mark() constGShom
NodeType typedefGShom
nullShomstatic
operator!=(const GShom &h) constGShominline
operator()(const GSDD &d) constGShom
operator<(const GShom &h) constGShominline
operator=(const GShom &)Shom
operator=(const Shom &)Shom
operator==(const GShom &h) constGShominline
ORDINARY enum valueGShom
pstats(bool reinit=true)GShomstatic
range_it typedefGShom
range_t typedefGShom
RECFIREANDSAT enum valueGShom
refCounter() constGShom
saturationStrategy enum nameGShom
saturationStrategy_GShomprivatestatic
setFixpointStrategy(fixpointStrategy strat)GShominlinestatic
setSaturationStrategy(saturationStrategy strat)GShominlinestatic
Shom(const GShom &h=GShom::id)Shom
Shom(const Shom &h)Shom
Shom(const GSDD &d)Shom
Shom(int var, const DataSet &val, const GShom &h=GShom::id)Shom
skip_variable(int) constGShom
statistics()GShomstatic
~Shom()Shom
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classShom.html b/libddd.html/classShom.html new file mode 100644 index 000000000..2a602d9b5 --- /dev/null +++ b/libddd.html/classShom.html @@ -0,0 +1,1402 @@ + + + + + + + +DDD: Shom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+List of all members
+
+
Shom Class Reference
+
+
+ +

This is the user interface class to manipulate homomorphisms. + More...

+ +

#include <SHom.h>

+
+Inheritance diagram for Shom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for Shom:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + +

+Public Member Functions

Assignment operators.
Shomoperator= (const GShom &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
Shomoperator= (const Shom &)
 Overloaded behavior for assignment operator, maintains reference counting. More...
 
+ + + + + + + + + + + + + + + + + + + +

Public Constructors.

Default constructor builds identity homomorphism.

+
static const Shom null = GSDD::null
 
 Shom (const GShom &h=GShom::id)
 Build an Shom from a GShom. More...
 
 Shom (const Shom &h)
 Copy constructor. Maintains reference count. More...
 
 Shom (const GSDD &d)
 Constructs a constant homomorphism. More...
 
 Shom (int var, const DataSet &val, const GShom &h=GShom::id)
 Left concatenation of a single arc SDD. More...
 
 ~Shom ()
 Destructor maintains reference counting. More...
 
+ + + + + + + + + + + + +

Public Constructors

static const GShom id
 Elementary SDD homomorphism identity. Applied to any SDD d, it returns d. More...
 
GShom invert (const GSDD &pot) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GSDD has_image (const GSDD &d) const
 returns true if and only if h(d) != SDD::null More...
 
GShom compose (const GShom &) const
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

Comparisons between GShom.

Comparisons between GShom for unicity table.

+

Both equality comparison and total ordering provided to allow hash and map storage of GShom

+
static const range_t full_range = GShom::range_t()
 The full_range : that targets everyone. More...
 
bool operator== (const GShom &h) const
 
bool operator!= (const GShom &h) const
 
bool operator< (const GShom &h) const
 
bool is_selector () const
 This predicate is true if the homomorphism global behavior is only to prune some paths. More...
 
bool skip_variable (int) const
 This predicate is true if the homomorphism "skips" this variable. More...
 
const range_t get_range () const
 Returns the range for this homomorphism, i.e. the dual of skip_variable. More...
 
typedef d3::set< int >::type range_t
 
typedef range_t::const_iterator range_it
 
+ + + + + + + + + + + + + +

Evaluation mechanism for homomorphisms.

GSDD operator() (const GSDD &d) const
 Applying a homomorphism to a node returns a node. More...
 
GSDD eval (const GSDD &d) const
 The full evaluation, this is the computational procedure, that is called when the computation cache yields a miss. More...
 
int refCounter () const
 For debug and development purposes. Gives the reference count of the concrete data. More...
 
static GShom add (const d3::set< GShom >::type &s)
 Compute an n-ary sum between homomorphisms. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Memory Management routines.

void mark () const
 Mark a concrete data as in use (forbids garbage collection of the data). More...
 
size_t hash () const
 For storage in a hash table. More...
 
enum  fixpointStrategy { BFS +, DFS + }
 
enum  saturationStrategy { ORDINARY +, RECFIREANDSAT + }
 
static fixpointStrategy fixpointStrategy_ = BFS
 
static saturationStrategy saturationStrategy_ = ORDINARY
 
static unsigned int statistics ()
 Return the current size of the unicity table for GShom. More...
 
static size_t cache_size ()
 Return the current size of the cache for GShom. More...
 
static size_t cache_peak ()
 Return the peak size of the cache for GShom. More...
 
static void pstats (bool reinit=true)
 Print some usage statistics on Shom. More...
 
static void garbage ()
 Collects and destroys unused homomorphisms. More...
 
static fixpointStrategy getFixpointStrategy ()
 
static void setFixpointStrategy (fixpointStrategy strat)
 
static saturationStrategy getSaturationStrategy ()
 
static void setSaturationStrategy (saturationStrategy strat)
 
+ + + + + + + +

Friendly hard coded composition operators.

Open full access for library implemented hard coded operations.

+


+

+
typedef GSDD NodeType
 
const _GShomconcret
 Pointer to the data instance in the unicity table. More...
 
+

Detailed Description

+

This is the user interface class to manipulate homomorphisms.

+

The only difference with GShom is that it implements reference counting so that instances of Shom are not collected upon MemoryManager::garbage().

+

Member Typedef Documentation

+ +

◆ NodeType

+ +
+
+ + + + + +
+ + + + +
typedef GSDD GShom::NodeType
+
+inherited
+
+ +
+
+ +

◆ range_it

+ +
+
+ + + + + +
+ + + + +
typedef range_t::const_iterator GShom::range_it
+
+inherited
+
+ +
+
+ +

◆ range_t

+ +
+
+ + + + + +
+ + + + +
typedef d3::set<int>::type GShom::range_t
+
+inherited
+
+ +
+
+

Member Enumeration Documentation

+ +

◆ fixpointStrategy

+ +
+
+ + + + + +
+ + + + +
enum GShom::fixpointStrategy
+
+inherited
+
+ + + +
Enumerator
BFS 
DFS 
+ +
+
+ +

◆ saturationStrategy

+ +
+
+ + + + + +
+ + + + +
enum GShom::saturationStrategy
+
+inherited
+
+ + + +
Enumerator
ORDINARY 
RECFIREANDSAT 
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Shom() [1/4]

+ +
+
+ + + + + + + + +
Shom::Shom (const GShomh = GShom::id)
+
+ +

Build an Shom from a GShom.

+ +

References GShom::concret, and _GShom::ref().

+ +
+
+ +

◆ Shom() [2/4]

+ +
+
+ + + + + + + + +
Shom::Shom (const Shomh)
+
+ +

Copy constructor. Maintains reference count.

+ +

References GShom::concret, and _GShom::ref().

+ +
+
+ +

◆ Shom() [3/4]

+ +
+
+ + + + + + + + +
Shom::Shom (const GSDDd)
+
+ +

Constructs a constant homomorphism.

+ +

References GShom::concret, and _GShom::ref().

+ +
+
+ +

◆ Shom() [4/4]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Shom::Shom (int var,
const DataSetval,
const GShomh = GShom::id 
)
+
+ +

Left concatenation of a single arc SDD.

+

This is provided as a convenience and to avoid the inefficiency if we build a node pointing to GSDD::one and then concatenate something to it. Applied to a SDD d, this homomorphism will return var–val->h(d).

Parameters
+ + + + +
varthe variable labeling the node to left concat
valthe set of values labeling the arc
hthe homomorphism to apply on the argument d. This defaults to GSHom::id.
+
+
+ +

References GShom::concret, and _GShom::ref().

+ +
+
+ +

◆ ~Shom()

+ +
+
+ + + + + + + +
Shom::~Shom ()
+
+ +

Destructor maintains reference counting.

+

Note that the destructor does not truly reclaim memory, MemoryManager::garbage() does that.

+ +

References GShom::concret, _GShom::deref(), and _GShom::refCounter().

+ +
+
+

Member Function Documentation

+ +

◆ add()

+ +
+
+ + + + + +
+ + + + + + + + +
static GShom GShom::add (const d3::set< GShom >::type & s)
+
+staticinherited
+
+ +

Compute an n-ary sum between homomorphisms.

+

This should be slightly more efficient in evaluation than a composition of binary sums constructed using the friend operator+.

Todo:
: move this to friend status not static member for more homogeneity with other operators.
+ +
+
+ +

◆ cache_peak()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::cache_peak ()
+
+staticinherited
+
+ +

Return the peak size of the cache for GShom.

+ +

References sns::cache, and Cache< FuncType, ParamType, ResType, EvalFunc >::peak().

+ +
+
+ +

◆ cache_size()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::cache_size ()
+
+staticinherited
+
+ +

Return the current size of the cache for GShom.

+ +

References sns::cache, and Cache< FuncType, ParamType, ResType, EvalFunc >::size().

+ +

Referenced by Statistic::load().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom GShom::compose (const GShomo) const
+
+inherited
+
+ +

References _GShom::compose(), and GShom::concret.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD GShom::eval (const GSDDd) const
+
+inherited
+
+ +

The full evaluation, this is the computational procedure, that is called when the computation cache yields a miss.

+

Users should not use this function directly, but only through GSDD::operator().

+ +

References GShom::concret, and _GShom::eval_skip().

+ +

Referenced by GShom::operator()().

+ +
+
+ +

◆ garbage()

+ +
+
+ + + + + +
+ + + + + + + +
void GShom::garbage ()
+
+staticinherited
+
+ +

Collects and destroys unused homomorphisms.

+

Do not call this directly but through MemoryManager::garbage() as order of calls (among GSDD::garbage(), GShom::garbage(), SDED::garbage()) is important.

+ +

References addCache, sns::cache, canonical, Cache< FuncType, ParamType, ResType, EvalFunc >::clear(), sns::imgcache, and _GShom::set_mark().

+ +

Referenced by MemoryManager::garbage().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t GShom::get_range () const
+
+inherited
+
+ +

Returns the range for this homomorphism, i.e. the dual of skip_variable.

+ +

References GShom::concret, and _GShom::get_range().

+ +

Referenced by commutative(), sns::SNotCond::get_range(), sns::RecFireSat::get_range(), sns::Compose::get_range(), sns::Fixpoint::get_range(), and notInRange().

+ +
+
+ +

◆ getFixpointStrategy()

+ +
+
+ + + + + +
+ + + + + + + +
static fixpointStrategy GShom::getFixpointStrategy ()
+
+inlinestaticinherited
+
+ +

References GShom::fixpointStrategy_.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+ +

◆ getSaturationStrategy()

+ +
+
+ + + + + +
+ + + + + + + +
static saturationStrategy GShom::getSaturationStrategy ()
+
+inlinestaticinherited
+
+ +

References GShom::saturationStrategy_.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD GShom::has_image (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t GShom::hash () const
+
+inlineinherited
+
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom GShom::invert (const GSDDpot) const
+
+inherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

References GShom::concret, and _GShom::invert().

+ +

Referenced by sns::Mult::invert(), sns::Inter::invert(), sns::SLocalApply::invert(), sns::RecFireSat::invert(), sns::Compose::invert(), sns::Minus::invert(), sns::HomMinus::invert(), and sns::Fixpoint::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool GShom::is_selector () const
+
+inherited
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void GShom::mark () const
+
+inherited
+
+
+ +

◆ operator!=()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator!= (const GShomh) const
+
+inlineinherited
+
+ +

References GShom::concret.

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD GShom::operator() (const GSDDd) const
+
+inherited
+
+ +

Applying a homomorphism to a node returns a node.

+

This is the normal way for users of computing the application of a homomorphism.

+ +

References sns::cache, GShom::concret, GShom::eval(), _GShom::immediat(), and GSDD::null.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator< (const GShomh) const
+
+inlineinherited
+
+ +

References GShom::concret.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + + + + +
Shom & Shom::operator= (const GShomh)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GShom::concret, _GShom::deref(), _GShom::ref(), and _GShom::refCounter().

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + + + + +
Shom & Shom::operator= (const Shomh)
+
+ +

Overloaded behavior for assignment operator, maintains reference counting.

+ +

References GShom::concret, _GShom::deref(), _GShom::ref(), and _GShom::refCounter().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::operator== (const GShomh) const
+
+inlineinherited
+
+ +

References GShom::concret.

+ +
+
+ +

◆ pstats()

+ +
+
+ + + + + +
+ + + + + + + + +
void GShom::pstats (bool reinit = true)
+
+staticinherited
+
+ +

Print some usage statistics on Shom.

+

Mostly used for development and debug.

Todo:
Allow output not in std::cout.
+ +

References GShom::_GShom, sns::cache, and canonical.

+ +

Referenced by MemoryManager::pstats().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
int GShom::refCounter () const
+
+inherited
+
+ +

For debug and development purposes. Gives the reference count of the concrete data.

+ +

References GShom::concret, and _GShom::refCounter().

+ +
+
+ +

◆ setFixpointStrategy()

+ +
+
+ + + + + +
+ + + + + + + + +
static void GShom::setFixpointStrategy (fixpointStrategy strat)
+
+inlinestaticinherited
+
+ +

References GShom::fixpointStrategy_.

+ +
+
+ +

◆ setSaturationStrategy()

+ +
+
+ + + + + +
+ + + + + + + + +
static void GShom::setSaturationStrategy (saturationStrategy strat)
+
+inlinestaticinherited
+
+ +

References GShom::saturationStrategy_.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool GShom::skip_variable (int var) const
+
+inherited
+
+
+ +

◆ statistics()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned int GShom::statistics ()
+
+staticinherited
+
+ +

Return the current size of the unicity table for GShom.

+ +

References canonical.

+ +

Referenced by Statistic::load(), and MemoryManager::nbShom().

+ +
+
+

Member Data Documentation

+ +

◆ concret

+ +
+
+ + + + + +
+ + + + +
const _GShom* GShom::concret
+
+privateinherited
+
+
+ +

◆ fixpointStrategy_

+ +
+
+ + + + + +
+ + + + +
GShom::fixpointStrategy GShom::fixpointStrategy_ = BFS
+
+staticprivateinherited
+
+
+ +

◆ full_range

+ +
+
+ + + + + +
+ + + + +
const GShom::range_t GShom::full_range = GShom::range_t()
+
+staticinherited
+
+ +

The full_range : that targets everyone.

+ +

Referenced by _GShom::get_range().

+ +
+
+ +

◆ id

+ +
+
+ + + + + +
+ + + + +
const GShom GShom::id
+
+staticinherited
+
+
+ +

◆ null

+ +
+
+ + + + + +
+ + + + +
const Shom Shom::null = GSDD::null
+
+static
+
+
+ +

◆ saturationStrategy_

+ +
+
+ + + + + +
+ + + + +
GShom::saturationStrategy GShom::saturationStrategy_ = ORDINARY
+
+staticprivateinherited
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classShom__coll__graph.map b/libddd.html/classShom__coll__graph.map new file mode 100644 index 000000000..a23d4311f --- /dev/null +++ b/libddd.html/classShom__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classShom__coll__graph.md5 b/libddd.html/classShom__coll__graph.md5 new file mode 100644 index 000000000..a25448571 --- /dev/null +++ b/libddd.html/classShom__coll__graph.md5 @@ -0,0 +1 @@ +c00e1f1b44ff51181b25e99cd5b2edae \ No newline at end of file diff --git a/libddd.html/classShom__coll__graph.png b/libddd.html/classShom__coll__graph.png new file mode 100644 index 000000000..cccdaf55d Binary files /dev/null and b/libddd.html/classShom__coll__graph.png differ diff --git a/libddd.html/classShom__inherit__graph.map b/libddd.html/classShom__inherit__graph.map new file mode 100644 index 000000000..d6b7aff50 --- /dev/null +++ b/libddd.html/classShom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classShom__inherit__graph.md5 b/libddd.html/classShom__inherit__graph.md5 new file mode 100644 index 000000000..14d95ee24 --- /dev/null +++ b/libddd.html/classShom__inherit__graph.md5 @@ -0,0 +1 @@ +8a6029987421268d31329dd71efe97cf \ No newline at end of file diff --git a/libddd.html/classShom__inherit__graph.png b/libddd.html/classShom__inherit__graph.png new file mode 100644 index 000000000..d92fe7eba Binary files /dev/null and b/libddd.html/classShom__inherit__graph.png differ diff --git a/libddd.html/classStatistic-members.html b/libddd.html/classStatistic-members.html new file mode 100644 index 000000000..7a2c26a1b --- /dev/null +++ b/libddd.html/classStatistic-members.html @@ -0,0 +1,84 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Statistic Member List
+
+
+ +

This is the complete list of members for Statistic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ddd_cacheStatisticprivate
DDD_peak_sizeStatisticprivate
DDD_sizeStatisticprivate
getNbStates() constStatisticinline
getTime() constStatisticinline
isPureDDDStatisticprivate
load(const SDD &s)Statisticprivate
load(const DDD &s)Statisticprivate
memoryStatisticprivate
nb_StatStatisticprivate
nbHomStatisticprivate
nbShomStatisticprivate
print_header(std::ostream &os)Statistic
print_legend(std::ostream &os)Statistic
print_line(std::ostream &os)Statistic
print_table(std::ostream &os)Statistic
print_trailer(std::ostream &os, bool withLegend=true)Statistic
sdd_cacheStatisticprivate
SDD_peak_sizeStatisticprivate
SDD_sizeStatisticprivate
setStyle(OutputType style)Statistic
shom_cacheStatisticprivate
show_peakStatisticprivate
stat_nameStatisticprivate
Statistic(const SDD &s, const std::string &name, OutputType style=LATEX, bool show_peak=true)Statistic
Statistic(const DDD &s, const std::string &name, OutputType style=LATEX, bool show_peak=true)Statistic
styleStatisticprivate
total_timeStatisticprivate
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStatistic.html b/libddd.html/classStatistic.html new file mode 100644 index 000000000..1dc7c939a --- /dev/null +++ b/libddd.html/classStatistic.html @@ -0,0 +1,959 @@ + + + + + + + +DDD: Statistic Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
Statistic Class Reference
+
+
+ +

#include <statistic.hpp>

+
+Collaboration diagram for Statistic:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Statistic (const SDD &s, const std::string &name, OutputType style=LATEX, bool show_peak=true)
 Create a statistic for the current SDD s, style LATEX by default. More...
 
 Statistic (const DDD &s, const std::string &name, OutputType style=LATEX, bool show_peak=true)
 Create a statistic for the current DDD s, style LATEX by default. More...
 
void print_header (std::ostream &os)
 Print column headers, using current style. More...
 
void print_trailer (std::ostream &os, bool withLegend=true)
 Print trailer. More...
 
void print_line (std::ostream &os)
 Print a line for current statistic. More...
 
void print_table (std::ostream &os)
 Convenience print a table. More...
 
void print_legend (std::ostream &os)
 Print a legend to the table. More...
 
void setStyle (OutputType style)
 Setter for style. More...
 
double getTime () const
 Accessors. More...
 
long double getNbStates () const
 
+ + + + + + + +

+Private Member Functions

void load (const SDD &s)
 load from a SDD More...
 
void load (const DDD &s)
 load from a DDD More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Attributes

long double nb_Stat
 number of final states More...
 
long double DDD_size
 number of final DDD nodes More...
 
long double SDD_size
 number of final SDD nodes More...
 
long double DDD_peak_size
 peak DDD unicity table size More...
 
long double SDD_peak_size
 peak DDD unicity table size More...
 
double total_time
 total time More...
 
size_t memory
 resident mem (kb) More...
 
double nbHom
 Hom final. More...
 
double nbShom
 SHom final. More...
 
double ddd_cache
 DDD cache. More...
 
double sdd_cache
 SDD cache peak. More...
 
bool isPureDDD
 Mode : include SDD or not. More...
 
OutputType style
 Mode : outputType. More...
 
std::string stat_name
 Name of this statistic. More...
 
size_t shom_cache
 Size of SHom cache. More...
 
bool show_peak
 show peak More...
 
+

Constructor & Destructor Documentation

+ +

◆ Statistic() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Statistic::Statistic (const SDDs,
const std::string & name,
OutputType style = LATEX,
bool show_peak = true 
)
+
+ +

Create a statistic for the current SDD s, style LATEX by default.

+

The statistic is sampled and stored, this call triggers SDD mode (more columns).

Parameters
+ + + + + +
sthe SDD used for final node and state count.
namethe row name (first column)
styleuse LATEX for formatted latex table or CSV to import in excel or gnumeric.
show_peakif you want to show peak size instead of current size for caches
+
+
+ +

References load().

+ +
+
+ +

◆ Statistic() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Statistic::Statistic (const DDDs,
const std::string & name,
OutputType style = LATEX,
bool show_peak = true 
)
+
+ +

Create a statistic for the current DDD s, style LATEX by default.

+

The statistic is sampled and stored, this call triggers DDD mode (less columns).

Parameters
+ + + + + +
sthe DDD used for final node and state count.
namethe row name (first column)
styleuse LATEX for formatted latex table or CSV to import in excel or gnumeric.
show_peakif you want to show peak size instead of current size for caches
+
+
+ +

References load().

+ +
+
+

Member Function Documentation

+ +

◆ getNbStates()

+ +
+
+ + + + + +
+ + + + + + + +
long double Statistic::getNbStates () const
+
+inline
+
+ +

References nb_Stat.

+ +
+
+ +

◆ getTime()

+ +
+
+ + + + + +
+ + + + + + + +
double Statistic::getTime () const
+
+inline
+
+ +

Accessors.

+ +

References total_time.

+ +
+
+ +

◆ load() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void Statistic::load (const DDDs)
+
+private
+
+
+ +

◆ load() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void Statistic::load (const SDDs)
+
+private
+
+
+ +

◆ print_header()

+ +
+
+ + + + + + + + +
void Statistic::print_header (std::ostream & os)
+
+ +

Print column headers, using current style.

+

For latex this also outputs a header (\begin document etc...).

+ +

References isPureDDD, LATEX, line_sep, show_peak, style, and value_sep.

+ +

Referenced by print_table().

+ +
+
+ +

◆ print_legend()

+ +
+
+ + + + + + + + +
void Statistic::print_legend (std::ostream & os)
+
+ +

Print a legend to the table.

+

give interpretation for row headers

+ +

References isPureDDD, line_sep, show_peak, and style.

+ +
+
+ +

◆ print_line()

+ +
+
+ + + + + + + + +
void Statistic::print_line (std::ostream & os)
+
+ +

Print a line for current statistic.

+

To produce tables call print_header once then print_line for all your statistics.

+ +

References ddd_cache, DDD_peak_size, DDD_size, isPureDDD, line_sep, memory, nb_Stat, nbHom, nbShom, sdd_cache, SDD_peak_size, SDD_size, shom_cache, stat_name, style, total_time, and value_sep.

+ +

Referenced by print_table().

+ +
+
+ +

◆ print_table()

+ +
+
+ + + + + + + + +
void Statistic::print_table (std::ostream & os)
+
+ +

Convenience print a table.

+

Useful if you have a single stat to show. Calls print_header,print_line,print_trailer in this order.

+ +

References print_header(), print_line(), and print_trailer().

+ +
+
+ +

◆ print_trailer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void Statistic::print_trailer (std::ostream & os,
bool withLegend = true 
)
+
+ +

Print trailer.

+

The trailer includes a key to reading the columns. In latex mode it also closes the document.

+ +

References LATEX, and style.

+ +

Referenced by print_table().

+ +
+
+ +

◆ setStyle()

+ +
+
+ + + + + + + + +
void Statistic::setStyle (OutputType style)
+
+ +

Setter for style.

+ +
+
+

Member Data Documentation

+ +

◆ ddd_cache

+ +
+
+ + + + + +
+ + + + +
double Statistic::ddd_cache
+
+private
+
+ +

DDD cache.

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ DDD_peak_size

+ +
+
+ + + + + +
+ + + + +
long double Statistic::DDD_peak_size
+
+private
+
+ +

peak DDD unicity table size

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ DDD_size

+ +
+
+ + + + + +
+ + + + +
long double Statistic::DDD_size
+
+private
+
+ +

number of final DDD nodes

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ isPureDDD

+ +
+
+ + + + + +
+ + + + +
bool Statistic::isPureDDD
+
+private
+
+ +

Mode : include SDD or not.

+ +

Referenced by print_header(), print_legend(), and print_line().

+ +
+
+ +

◆ memory

+ +
+
+ + + + + +
+ + + + +
size_t Statistic::memory
+
+private
+
+ +

resident mem (kb)

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ nb_Stat

+ +
+
+ + + + + +
+ + + + +
long double Statistic::nb_Stat
+
+private
+
+ +

number of final states

+ +

Referenced by getNbStates(), load(), and print_line().

+ +
+
+ +

◆ nbHom

+ +
+
+ + + + + +
+ + + + +
double Statistic::nbHom
+
+private
+
+ +

Hom final.

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ nbShom

+ +
+
+ + + + + +
+ + + + +
double Statistic::nbShom
+
+private
+
+ +

SHom final.

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ sdd_cache

+ +
+
+ + + + + +
+ + + + +
double Statistic::sdd_cache
+
+private
+
+ +

SDD cache peak.

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ SDD_peak_size

+ +
+
+ + + + + +
+ + + + +
long double Statistic::SDD_peak_size
+
+private
+
+ +

peak DDD unicity table size

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ SDD_size

+ +
+
+ + + + + +
+ + + + +
long double Statistic::SDD_size
+
+private
+
+ +

number of final SDD nodes

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ shom_cache

+ +
+
+ + + + + +
+ + + + +
size_t Statistic::shom_cache
+
+private
+
+ +

Size of SHom cache.

+ +

Referenced by load(), and print_line().

+ +
+
+ +

◆ show_peak

+ +
+
+ + + + + +
+ + + + +
bool Statistic::show_peak
+
+private
+
+ +

show peak

+ +

Referenced by load(), print_header(), and print_legend().

+ +
+
+ +

◆ stat_name

+ +
+
+ + + + + +
+ + + + +
std::string Statistic::stat_name
+
+private
+
+ +

Name of this statistic.

+ +

Referenced by print_line().

+ +
+
+ +

◆ style

+ +
+
+ + + + + +
+ + + + +
OutputType Statistic::style
+
+private
+
+ +

Mode : outputType.

+ +

Referenced by print_header(), print_legend(), print_line(), and print_trailer().

+ +
+
+ +

◆ total_time

+ +
+
+ + + + + +
+ + + + +
double Statistic::total_time
+
+private
+
+ +

total time

+ +

Referenced by getTime(), load(), and print_line().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStatistic__coll__graph.map b/libddd.html/classStatistic__coll__graph.map new file mode 100644 index 000000000..a3021bb94 --- /dev/null +++ b/libddd.html/classStatistic__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classStatistic__coll__graph.md5 b/libddd.html/classStatistic__coll__graph.md5 new file mode 100644 index 000000000..f840d0204 --- /dev/null +++ b/libddd.html/classStatistic__coll__graph.md5 @@ -0,0 +1 @@ +28dbe2c8f2ab59b307843771946ab2d0 \ No newline at end of file diff --git a/libddd.html/classStatistic__coll__graph.png b/libddd.html/classStatistic__coll__graph.png new file mode 100644 index 000000000..d1e4253da Binary files /dev/null and b/libddd.html/classStatistic__coll__graph.png differ diff --git a/libddd.html/classStrongHom-members.html b/libddd.html/classStrongHom-members.html new file mode 100644 index 000000000..a079ed285 --- /dev/null +++ b/libddd.html/classStrongHom-members.html @@ -0,0 +1,84 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
StrongHom Member List
+
+
+ +

This is the complete list of members for StrongHom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() const =0_GHompure virtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &) constStrongHomvirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
has_image(const GDDD &) constStrongHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const =0_GHompure virtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const StrongHom &h) const =0StrongHompure virtual
operator==(const _GHom &h) constStrongHomvirtual
phi(int var, int val) const =0StrongHompure virtual
phiOne() constStrongHominlinevirtual
print(std::ostream &os) constStrongHomvirtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
StrongHom()StrongHominline
~_GHom()_GHominlinevirtual
~StrongHom()StrongHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongHom.html b/libddd.html/classStrongHom.html new file mode 100644 index 000000000..0ccaaae5f --- /dev/null +++ b/libddd.html/classStrongHom.html @@ -0,0 +1,995 @@ + + + + + + + +DDD: StrongHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
StrongHom Class Referenceabstract
+
+
+ +

The abstract base class for user defined operations. + More...

+ +

#include <Hom.h>

+
+Inheritance diagram for StrongHom:
+
+
Inheritance graph
+ + + + + + + + +
+
+Collaboration diagram for StrongHom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 StrongHom ()
 Default constructor. More...
 
virtual ~StrongHom ()
 Default destructor. More...
 
virtual GDDD phiOne () const
 Evaluation over terminal GDDD::one. More...
 
virtual GHom phi (int var, int val) const =0
 Evaluation over an arbitrary arc of a SDD. More...
 
virtual bool operator== (const StrongHom &h) const =0
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
bool operator== (const _GHom &h) const
 Comparator for unicity table. More...
 
virtual void print (std::ostream &os) const
 pretty print More...
 
GDDD eval (const GDDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GDDD has_image (const GDDD &) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GHomclone () const =0
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Detailed Description

+

The abstract base class for user defined operations.

+

This is the class users should derive their operations from. It defines the interface of a Strong Homomorphism :

+

Constructor & Destructor Documentation

+ +

◆ StrongHom()

+ +
+
+ + + + + +
+ + + + + + + +
StrongHom::StrongHom ()
+
+inline
+
+ +

Default constructor.

+

Empty behavior.

Todo:
Is this declaration useful ?
+ +
+
+ +

◆ ~StrongHom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual StrongHom::~StrongHom ()
+
+inlinevirtual
+
+ +

Default destructor.

+

Empty behavior.

Todo:
Is this declaration useful ?
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GHom* _GHom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::eval (const GDDDd) const
+
+virtual
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, phi(), phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::has_image (const GDDDd) const
+
+virtual
+
+ +

Reimplemented from _GHom.

+ +

References GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, phi(), phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GHom::hash () const
+
+pure virtualinherited
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Apply2k, Constant, and Identity.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongHom::operator== (const _GHomh) const
+
+virtual
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool StrongHom::operator== (const StrongHomh) const
+
+pure virtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +

Implemented in _VarCompVar, _incVar, _setVarConst, and _VarCompState.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual GHom StrongHom::phi (int var,
int val 
) const
+
+pure virtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe value labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+
+ +

Implemented in _VarCompVar, _incVar, _setVarConst, and _VarCompState.

+ +

Referenced by eval(), and has_image().

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
virtual GDDD StrongHom::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GDDD::one.

+

Returns a constant DDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GDDD::top

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, and _VarCompState.

+ +

References GDDD::top.

+ +

Referenced by eval(), and has_image().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void StrongHom::print (std::ostream & os) const
+
+virtual
+
+ +

pretty print

+ +

Implements _GHom.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, and _VarCompState.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by _GHom::eval_skip(), _GHom::has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongHom__coll__graph.map b/libddd.html/classStrongHom__coll__graph.map new file mode 100644 index 000000000..73c2d959c --- /dev/null +++ b/libddd.html/classStrongHom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongHom__coll__graph.md5 b/libddd.html/classStrongHom__coll__graph.md5 new file mode 100644 index 000000000..91098f103 --- /dev/null +++ b/libddd.html/classStrongHom__coll__graph.md5 @@ -0,0 +1 @@ +db3068382afdbcababeba3092a5cf256 \ No newline at end of file diff --git a/libddd.html/classStrongHom__coll__graph.png b/libddd.html/classStrongHom__coll__graph.png new file mode 100644 index 000000000..545ce9f64 Binary files /dev/null and b/libddd.html/classStrongHom__coll__graph.png differ diff --git a/libddd.html/classStrongHom__inherit__graph.map b/libddd.html/classStrongHom__inherit__graph.map new file mode 100644 index 000000000..c43c0d664 --- /dev/null +++ b/libddd.html/classStrongHom__inherit__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classStrongHom__inherit__graph.md5 b/libddd.html/classStrongHom__inherit__graph.md5 new file mode 100644 index 000000000..78ff980c9 --- /dev/null +++ b/libddd.html/classStrongHom__inherit__graph.md5 @@ -0,0 +1 @@ +83dd3d30ebf43ae7d68b852689bf0983 \ No newline at end of file diff --git a/libddd.html/classStrongHom__inherit__graph.png b/libddd.html/classStrongHom__inherit__graph.png new file mode 100644 index 000000000..97b2a30bd Binary files /dev/null and b/libddd.html/classStrongHom__inherit__graph.png differ diff --git a/libddd.html/classStrongMLHom-members.html b/libddd.html/classStrongMLHom-members.html new file mode 100644 index 000000000..2a8fc1765 --- /dev/null +++ b/libddd.html/classStrongMLHom-members.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
StrongMLHom Member List
+
+
+ +

This is the complete list of members for StrongMLHom, including all inherited members.

+ + + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() const =0_MLHompure virtual
eval(const GDDD &) constStrongMLHomvirtual
hash() const =0_MLHompure virtual
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &h) constStrongMLHomvirtual
operator==(const StrongMLHom &) const =0StrongMLHompure virtual
phi(int var, int val) const =0StrongMLHompure virtual
phiOne() const =0StrongMLHompure virtual
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongMLHom.html b/libddd.html/classStrongMLHom.html new file mode 100644 index 000000000..212f67c0d --- /dev/null +++ b/libddd.html/classStrongMLHom.html @@ -0,0 +1,437 @@ + + + + + + + +DDD: StrongMLHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
StrongMLHom Class Referenceabstract
+
+
+ +

#include <MLHom.h>

+
+Inheritance diagram for StrongMLHom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for StrongMLHom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool operator== (const _MLHom &h) const
 
virtual bool operator== (const StrongMLHom &) const =0
 
HomNodeMap eval (const GDDD &) const
 
virtual HomHomMap phi (int var, int val) const =0
 User defined behavior is input through this function. More...
 
virtual HomNodeMap phiOne () const =0
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
virtual size_t hash () const =0
 unique table trivia More...
 
virtual _MLHomclone () const =0
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLHom* _MLHom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap StrongMLHom::eval (const GDDDd) const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _MLHom::hash () const
+
+pure virtualinherited
+
+ +

unique table trivia

+ +

Implemented in nsMLHom::LeftConcat, nsMLHom::ConstantUp, nsMLHom::GHomAdapter, nsMLHom::Add, and nsMLHom::Identity.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongMLHom::operator== (const _MLHomh) const
+
+virtual
+
+ +

Implements _MLHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool StrongMLHom::operator== (const StrongMLHom) const
+
+pure virtual
+
+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual HomHomMap StrongMLHom::phi (int var,
int val 
) const
+
+pure virtual
+
+ +

User defined behavior is input through this function.

+ +

Referenced by eval().

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
virtual HomNodeMap StrongMLHom::phiOne () const
+
+pure virtual
+
+ +

Referenced by eval().

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongMLHom__coll__graph.map b/libddd.html/classStrongMLHom__coll__graph.map new file mode 100644 index 000000000..ff478ce9b --- /dev/null +++ b/libddd.html/classStrongMLHom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongMLHom__coll__graph.md5 b/libddd.html/classStrongMLHom__coll__graph.md5 new file mode 100644 index 000000000..43215079b --- /dev/null +++ b/libddd.html/classStrongMLHom__coll__graph.md5 @@ -0,0 +1 @@ +42e3286d63a64317087271f697b9d5d3 \ No newline at end of file diff --git a/libddd.html/classStrongMLHom__coll__graph.png b/libddd.html/classStrongMLHom__coll__graph.png new file mode 100644 index 000000000..8686f724d Binary files /dev/null and b/libddd.html/classStrongMLHom__coll__graph.png differ diff --git a/libddd.html/classStrongMLHom__inherit__graph.map b/libddd.html/classStrongMLHom__inherit__graph.map new file mode 100644 index 000000000..ff478ce9b --- /dev/null +++ b/libddd.html/classStrongMLHom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongMLHom__inherit__graph.md5 b/libddd.html/classStrongMLHom__inherit__graph.md5 new file mode 100644 index 000000000..43215079b --- /dev/null +++ b/libddd.html/classStrongMLHom__inherit__graph.md5 @@ -0,0 +1 @@ +42e3286d63a64317087271f697b9d5d3 \ No newline at end of file diff --git a/libddd.html/classStrongMLHom__inherit__graph.png b/libddd.html/classStrongMLHom__inherit__graph.png new file mode 100644 index 000000000..8686f724d Binary files /dev/null and b/libddd.html/classStrongMLHom__inherit__graph.png differ diff --git a/libddd.html/classStrongMLShom-members.html b/libddd.html/classStrongMLShom-members.html new file mode 100644 index 000000000..3744e5e8b --- /dev/null +++ b/libddd.html/classStrongMLShom-members.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
StrongMLShom Member List
+
+
+ +

This is the complete list of members for StrongMLShom, including all inherited members.

+ + + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() const =0_MLShompure virtual
eval(const GSDD &) constStrongMLShomvirtual
hash() const =0_MLShompure virtual
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &h) constStrongMLShomvirtual
operator==(const StrongMLShom &) const =0StrongMLShompure virtual
phi(int var, const DataSet &val) const =0StrongMLShompure virtual
phiOne() const =0StrongMLShompure virtual
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongMLShom.html b/libddd.html/classStrongMLShom.html new file mode 100644 index 000000000..6e7c5a589 --- /dev/null +++ b/libddd.html/classStrongMLShom.html @@ -0,0 +1,437 @@ + + + + + + + +DDD: StrongMLShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
StrongMLShom Class Referenceabstract
+
+
+ +

#include <MLSHom.h>

+
+Inheritance diagram for StrongMLShom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for StrongMLShom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool operator== (const _MLShom &h) const
 
virtual bool operator== (const StrongMLShom &) const =0
 
SHomNodeMap eval (const GSDD &) const
 
virtual SHomHomMap phi (int var, const DataSet &val) const =0
 User defined behavior is input through this function. More...
 
virtual SHomNodeMap phiOne () const =0
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
virtual size_t hash () const =0
 unique table trivia More...
 
virtual _MLShomclone () const =0
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLShom* _MLShom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap StrongMLShom::eval (const GSDDd) const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _MLShom::hash () const
+
+pure virtualinherited
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongMLShom::operator== (const _MLShomh) const
+
+virtual
+
+ +

Implements _MLShom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool StrongMLShom::operator== (const StrongMLShom) const
+
+pure virtual
+
+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual SHomHomMap StrongMLShom::phi (int var,
const DataSetval 
) const
+
+pure virtual
+
+ +

User defined behavior is input through this function.

+ +

Referenced by eval().

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
virtual SHomNodeMap StrongMLShom::phiOne () const
+
+pure virtual
+
+ +

Referenced by eval().

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongMLShom__coll__graph.map b/libddd.html/classStrongMLShom__coll__graph.map new file mode 100644 index 000000000..82baa3229 --- /dev/null +++ b/libddd.html/classStrongMLShom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongMLShom__coll__graph.md5 b/libddd.html/classStrongMLShom__coll__graph.md5 new file mode 100644 index 000000000..b65c3b4b8 --- /dev/null +++ b/libddd.html/classStrongMLShom__coll__graph.md5 @@ -0,0 +1 @@ +6b9dc9026300cb331e43153b57c00f84 \ No newline at end of file diff --git a/libddd.html/classStrongMLShom__coll__graph.png b/libddd.html/classStrongMLShom__coll__graph.png new file mode 100644 index 000000000..7876362ca Binary files /dev/null and b/libddd.html/classStrongMLShom__coll__graph.png differ diff --git a/libddd.html/classStrongMLShom__inherit__graph.map b/libddd.html/classStrongMLShom__inherit__graph.map new file mode 100644 index 000000000..82baa3229 --- /dev/null +++ b/libddd.html/classStrongMLShom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongMLShom__inherit__graph.md5 b/libddd.html/classStrongMLShom__inherit__graph.md5 new file mode 100644 index 000000000..b65c3b4b8 --- /dev/null +++ b/libddd.html/classStrongMLShom__inherit__graph.md5 @@ -0,0 +1 @@ +6b9dc9026300cb331e43153b57c00f84 \ No newline at end of file diff --git a/libddd.html/classStrongMLShom__inherit__graph.png b/libddd.html/classStrongMLShom__inherit__graph.png new file mode 100644 index 000000000..7876362ca Binary files /dev/null and b/libddd.html/classStrongMLShom__inherit__graph.png differ diff --git a/libddd.html/classStrongShom-members.html b/libddd.html/classStrongShom-members.html new file mode 100644 index 000000000..7613ec21b --- /dev/null +++ b/libddd.html/classStrongShom-members.html @@ -0,0 +1,86 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
StrongShom Member List
+
+
+ +

This is the complete list of members for StrongShom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() const =0_GShompure virtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &) constStrongShomvirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) constStrongShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() const =0_GShompure virtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
mark() const_GShominlinevirtual
mark_if_refd() const_GShominline
operator==(const StrongShom &h) const =0StrongShompure virtual
operator==(const _GShom &h) constStrongShomvirtual
phi(int var, const DataSet &val) const =0StrongShompure virtual
phiOne() constStrongShominlinevirtual
print(std::ostream &os) constStrongShomvirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
StrongShom()StrongShominline
~_GShom()_GShominlinevirtual
~StrongShom()StrongShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongShom.html b/libddd.html/classStrongShom.html new file mode 100644 index 000000000..36b5e20e7 --- /dev/null +++ b/libddd.html/classStrongShom.html @@ -0,0 +1,1044 @@ + + + + + + + +DDD: StrongShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
StrongShom Class Referenceabstract
+
+
+ +

The abstract base class for user defined operations. + More...

+ +

#include <SHom.h>

+
+Inheritance diagram for StrongShom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for StrongShom:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 StrongShom ()
 Default constructor. More...
 
virtual ~StrongShom ()
 Default destructor. More...
 
virtual GSDD phiOne () const
 Evaluation over terminal GSDD::one. More...
 
virtual GShom phi (int var, const DataSet &val) const =0
 Evaluation over an arbitrary arc of a SDD. More...
 
virtual bool operator== (const StrongShom &h) const =0
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
bool operator== (const _GShom &h) const
 Comparator for unicity table. More...
 
virtual void print (std::ostream &os) const
 pretty print More...
 
GSDD eval (const GSDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GSDD has_image (const GSDD &d) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GShomclone () const =0
 
virtual GShom compose (const GShom &) const
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Detailed Description

+

The abstract base class for user defined operations.

+

This is the class users should derive their operations from. It defines the interface of a Strong Homomorphism :

+

Constructor & Destructor Documentation

+ +

◆ StrongShom()

+ +
+
+ + + + + +
+ + + + + + + +
StrongShom::StrongShom ()
+
+inline
+
+ +

Default constructor.

+

Empty behavior.

Todo:
Is this declaration useful ?
+ +
+
+ +

◆ ~StrongShom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual StrongShom::~StrongShom ()
+
+inlinevirtual
+
+ +

Default destructor.

+

Empty behavior.

Todo:
Is this declaration useful ?
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GShom* _GShom::clone () const
+
+pure virtualinherited
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD StrongShom::eval (const GSDDd) const
+
+virtual
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GShom.

+ +

References SDED::add(), GSDD::begin(), GSDD::end(), GSDD::null, GSDD::one, phi(), phiOne(), GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD StrongShom::has_image (const GSDDd) const
+
+virtual
+
+ +

Reimplemented from _GShom.

+ +

References GSDD::begin(), GSDD::end(), GSDD::null, GSDD::one, phi(), phiOne(), GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GShom::hash () const
+
+pure virtualinherited
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in sns::MLShomAdapter, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GShom::mark () const
+
+inlinevirtualinherited
+
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongShom::operator== (const _GShomh) const
+
+virtual
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GShom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool StrongShom::operator== (const StrongShomh) const
+
+pure virtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual GShom StrongShom::phi (int var,
const DataSetval 
) const
+
+pure virtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe set of values labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+ +

Referenced by eval(), and has_image().

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
virtual GSDD StrongShom::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GSDD::one.

+

Returns a constant SDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GSDD::top

+ +

References GSDD::top.

+ +

Referenced by eval(), and has_image().

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void StrongShom::print (std::ostream & os) const
+
+virtual
+
+ +

pretty print

+ +

Implements _GShom.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classStrongShom__coll__graph.map b/libddd.html/classStrongShom__coll__graph.map new file mode 100644 index 000000000..d9a5df721 --- /dev/null +++ b/libddd.html/classStrongShom__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongShom__coll__graph.md5 b/libddd.html/classStrongShom__coll__graph.md5 new file mode 100644 index 000000000..c95552773 --- /dev/null +++ b/libddd.html/classStrongShom__coll__graph.md5 @@ -0,0 +1 @@ +20bfc61ac35ca8ce3d9cf491d04e4ad9 \ No newline at end of file diff --git a/libddd.html/classStrongShom__coll__graph.png b/libddd.html/classStrongShom__coll__graph.png new file mode 100644 index 000000000..a70dcdadf Binary files /dev/null and b/libddd.html/classStrongShom__coll__graph.png differ diff --git a/libddd.html/classStrongShom__inherit__graph.map b/libddd.html/classStrongShom__inherit__graph.map new file mode 100644 index 000000000..d9a5df721 --- /dev/null +++ b/libddd.html/classStrongShom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classStrongShom__inherit__graph.md5 b/libddd.html/classStrongShom__inherit__graph.md5 new file mode 100644 index 000000000..c95552773 --- /dev/null +++ b/libddd.html/classStrongShom__inherit__graph.md5 @@ -0,0 +1 @@ +20bfc61ac35ca8ce3d9cf491d04e4ad9 \ No newline at end of file diff --git a/libddd.html/classStrongShom__inherit__graph.png b/libddd.html/classStrongShom__inherit__graph.png new file mode 100644 index 000000000..a70dcdadf Binary files /dev/null and b/libddd.html/classStrongShom__inherit__graph.png differ diff --git a/libddd.html/classUniqueTable-members.html b/libddd.html/classUniqueTable-members.html new file mode 100644 index 000000000..67ab0096b --- /dev/null +++ b/libddd.html/classUniqueTable-members.html @@ -0,0 +1,62 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
UniqueTable< T > Member List
+
+
+ +

This is the complete list of members for UniqueTable< T >, including all inherited members.

+ + + + + + + +
operator()(const T &_g)UniqueTable< T >inline
size() constUniqueTable< T >inline
Table typedefUniqueTable< T >
tableUniqueTable< T >
UniqueTable()UniqueTable< T >inline
UniqueTable(size_t s)UniqueTable< T >inline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classUniqueTable.html b/libddd.html/classUniqueTable.html new file mode 100644 index 000000000..bb09934bb --- /dev/null +++ b/libddd.html/classUniqueTable.html @@ -0,0 +1,284 @@ + + + + + + + +DDD: UniqueTable< T > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Public Attributes | +List of all members
+
+
UniqueTable< T > Class Template Reference
+
+
+ +

This class implements a unicity table mechanism, based on an STL hash_set. + More...

+ +

#include <UniqueTable.h>

+
+Collaboration diagram for UniqueTable< T >:
+
+
Collaboration graph
+ + + + + +
+ + + + + +

+Public Types

typedef d3::hash_set< const T * >::type Table
 Typedef helps hide implementation type (currently gnu gcc's hash_set). More...
 
+ + + + + + + + + + + + +

+Public Member Functions

 UniqueTable ()
 Constructor, builds a default table. More...
 
 UniqueTable (size_t s)
 
const T * operator() (const T &_g)
 The application operator, returns the address of the value already in the table if it exists, or inserts and returns the address of the value inserted. More...
 
size_t size () const
 Returns the current number of filled entries in the table. More...
 
+ + + + +

+Public Attributes

Table table
 The actual table, operations on the UniqueTable are delegated on this. More...
 
+

Detailed Description

+

template<typename T>
+class UniqueTable< T >

+ +

This class implements a unicity table mechanism, based on an STL hash_set.

+

Requirements on the contained type are thus those of hash_set.

+

Member Typedef Documentation

+ +

◆ Table

+ +
+
+
+template<typename T >
+ + + + +
typedef d3::hash_set<const T*>::type UniqueTable< T >::Table
+
+ +

Typedef helps hide implementation type (currently gnu gcc's hash_set).

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ UniqueTable() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
UniqueTable< T >::UniqueTable ()
+
+inline
+
+ +

Constructor, builds a default table.

+ +

References UniqueTable< T >::table.

+ +
+
+ +

◆ UniqueTable() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
UniqueTable< T >::UniqueTable (size_t s)
+
+inline
+
+ +

References UniqueTable< T >::table.

+ +
+
+

Member Function Documentation

+ +

◆ operator()()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
const T* UniqueTable< T >::operator() (const T & _g)
+
+inline
+
+ +

The application operator, returns the address of the value already in the table if it exists, or inserts and returns the address of the value inserted.

+
Parameters
+ + +
_gthe pointer to the value we want to find in the table.
+
+
+
Returns
the address of an object stored in the UniqueTable such that (*_g == *return_value)
+ +

References UniqueTable< T >::table.

+ +
+
+ +

◆ size()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
size_t UniqueTable< T >::size () const
+
+inline
+
+ +

Returns the current number of filled entries in the table.

+ +

References UniqueTable< T >::table.

+ +

Referenced by DED::garbage(), SDED::garbage(), SDED::peak(), DED::pstats(), and SDED::statistics().

+ +
+
+

Member Data Documentation

+ +

◆ table

+ +
+
+
+template<typename T >
+ + + + +
Table UniqueTable< T >::table
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classUniqueTableId-members.html b/libddd.html/classUniqueTableId-members.html new file mode 100644 index 000000000..094251098 --- /dev/null +++ b/libddd.html/classUniqueTableId-members.html @@ -0,0 +1,85 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
UniqueTableId< T, ID > Member List
+
+
+ +

This is the complete list of members for UniqueTableId< T, ID >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() constUniqueTableId< T, ID >inline
deref(const id_t &id)UniqueTableId< T, ID >inline
end() constUniqueTableId< T, ID >inline
garbage()UniqueTableId< T, ID >inline
headUniqueTableId< T, ID >private
id_t typedefUniqueTableId< T, ID >private
indexUniqueTableId< T, ID >private
indexes_t typedefUniqueTableId< T, ID >private
instance()UniqueTableId< T, ID >inlinestatic
mark(const id_t &id)UniqueTableId< T, ID >inline
marksUniqueTableId< T, ID >private
marks_t typedefUniqueTableId< T, ID >private
next_id()UniqueTableId< T, ID >inlineprivate
operator()(const T &_g)UniqueTableId< T, ID >inline
peak_size()UniqueTableId< T, ID >inline
peak_size_UniqueTableId< T, ID >private
print_free_list(std::ostream &os) constUniqueTableId< T, ID >inlineprivate
print_marked(std::ostream &os) constUniqueTableId< T, ID >inlineprivate
print_table(std::ostream &os) constUniqueTableId< T, ID >inlineprivate
push(const id_t &id)UniqueTableId< T, ID >inlineprivate
ref(const id_t &id)UniqueTableId< T, ID >inline
refsUniqueTableId< T, ID >private
refs_t typedefUniqueTableId< T, ID >private
resolve(const id_t &id) constUniqueTableId< T, ID >inline
size() constUniqueTableId< T, ID >inline
tableUniqueTableId< T, ID >private
table_it typedefUniqueTableId< T, ID >
table_t typedefUniqueTableId< T, ID >private
UniqueTableId(size_t s=4096)UniqueTableId< T, ID >inline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classUniqueTableId.html b/libddd.html/classUniqueTableId.html new file mode 100644 index 000000000..903c52bd1 --- /dev/null +++ b/libddd.html/classUniqueTableId.html @@ -0,0 +1,1051 @@ + + + + + + + +DDD: UniqueTableId< T, ID > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Public Types | +Public Member Functions | +Static Public Member Functions | +Private Types | +Private Member Functions | +Private Attributes | +List of all members
+
+
UniqueTableId< T, ID > Class Template Reference
+
+
+ +

Requirements on the contained type are to be cloneable, hashable and equality comparable. + More...

+ +

#include <UniqueTableId.hh>

+
+Collaboration diagram for UniqueTableId< T, ID >:
+
+
Collaboration graph
+ + + + + +
+ + + + + + +

+Classes

struct  id_compare
 
struct  id_hash
 
+ + + +

+Public Types

typedef table_t::const_iterator table_it
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void mark (const id_t &id)
 
void ref (const id_t &id)
 
void deref (const id_t &id)
 
table_it begin () const
 
table_it end () const
 
 UniqueTableId (size_t s=4096)
 Provide an initial size for both hash and index tables. More...
 
const T * resolve (const id_t &id) const
 
id_t operator() (const T &_g)
 The application operator, returns the address of the value already in the table if it exists, or inserts and returns the address of the value inserted. More...
 
size_t size () const
 Returns the current number of filled entries in the table. More...
 
size_t peak_size ()
 
void garbage ()
 
+ + + +

+Static Public Member Functions

static UniqueTableIdinstance ()
 
+ + + + + + + + + + + + + + + +

+Private Types

typedef ID id_t
 
typedef d3::hash_set< id_t, id_hash, id_compare >::type table_t
 Typedef helps hide implementation type. More...
 
typedef std::vector< const T * > indexes_t
 The Indexes table stores the id to (unique) T* map. More...
 
typedef google::sparsetable< id_trefs_t
 a sparse table holding refcounts for ref'd objects. More...
 
typedef std::vector< bool > marks_t
 A bitset to store marks on objects used for mark&sweep. More...
 
+ + + + + + + + + + + + + +

+Private Member Functions

void push (const id_t &id)
 add a node to free list More...
 
id_t next_id ()
 return the next free id, either collected from free_list or the newly allocated last position of the index table More...
 
void print_free_list (std::ostream &os) const
 
void print_table (std::ostream &os) const
 
void print_marked (std::ostream &os) const
 
+ + + + + + + + + + + + + + + + + + +

+Private Attributes

table_t table
 The actual table, operations on the UniqueTable are delegated on this. More...
 
indexes_t index
 The actual index table, resolution of object from Id is done with this. More...
 
id_t head
 The free list is stored hidden in the free space of the index table. More...
 
refs_t refs
 The reference counters for ref'd nodes. It is a sparse table that only stores values for non-zero entries. More...
 
marks_t marks
 The marking entries, a bitset. More...
 
size_t peak_size_
 
+

Detailed Description

+

template<typename T, typename ID>
+class UniqueTableId< T, ID >

+ +

Requirements on the contained type are to be cloneable, hashable and equality comparable.

+

For memory recollection, it should be markable, i.e. able

+

template interface T { T* clone () const ; bool operator==(const T&) const; size_t hash() const; } These are the comparators/hash of d3:: namespace. member hash and operator== are enough thanks to template instanciations.
+ This class implements a unique table mechanism, based on a hash.

+

Member Typedef Documentation

+ +

◆ id_t

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
typedef ID UniqueTableId< T, ID >::id_t
+
+private
+
+ +
+
+ +

◆ indexes_t

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
typedef std::vector<const T*> UniqueTableId< T, ID >::indexes_t
+
+private
+
+ +

The Indexes table stores the id to (unique) T* map.

+

It also stores the free list in potential spare spaces.

+ +
+
+ +

◆ marks_t

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
typedef std::vector<bool> UniqueTableId< T, ID >::marks_t
+
+private
+
+ +

A bitset to store marks on objects used for mark&sweep.

+ +
+
+ +

◆ refs_t

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
typedef google::sparsetable<id_t> UniqueTableId< T, ID >::refs_t
+
+private
+
+ +

a sparse table holding refcounts for ref'd objects.

+

Hopefully, we don't have more refs than there are nodes, id_t should be long enough to hold refcounts.

+ +
+
+ +

◆ table_it

+ +
+
+
+template<typename T , typename ID >
+ + + + +
typedef table_t::const_iterator UniqueTableId< T, ID >::table_it
+
+ +
+
+ +

◆ table_t

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
typedef d3::hash_set<id_t, id_hash, id_compare>::type UniqueTableId< T, ID >::table_t
+
+private
+
+ +

Typedef helps hide implementation type.

+

The table wil hold actual entries for hashed unique test, These are the currently valid ids.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ UniqueTableId()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
UniqueTableId< T, ID >::UniqueTableId (size_t s = 4096)
+
+inline
+
+ +

Provide an initial size for both hash and index tables.

+

Both will grow as needed if this size is exceeded.

+ +

References UniqueTableId< T, ID >::index, UniqueTableId< T, ID >::marks, UniqueTableId< T, ID >::refs, and UniqueTableId< T, ID >::table.

+ +

Referenced by UniqueTableId< T, ID >::instance().

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
table_it UniqueTableId< T, ID >::begin () const
+
+inline
+
+
+ +

◆ deref()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::deref (const id_tid)
+
+inline
+
+ +

References UniqueTableId< T, ID >::refs.

+ +

Referenced by DDD::operator=(), and DDD::~DDD().

+ +
+
+ +

◆ end()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
table_it UniqueTableId< T, ID >::end () const
+
+inline
+
+
+ +

◆ garbage()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
void UniqueTableId< T, ID >::garbage ()
+
+inline
+
+
+ +

◆ instance()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
static UniqueTableId& UniqueTableId< T, ID >::instance ()
+
+inlinestatic
+
+
+ +

◆ mark()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::mark (const id_tid)
+
+inline
+
+
+ +

◆ next_id()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
id_t UniqueTableId< T, ID >::next_id ()
+
+inlineprivate
+
+ +

return the next free id, either collected from free_list or the newly allocated last position of the index table

+ +

References UniqueTableId< T, ID >::head, UniqueTableId< T, ID >::index, and UniqueTableId< T, ID >::marks.

+ +

Referenced by UniqueTableId< T, ID >::operator()().

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
id_t UniqueTableId< T, ID >::operator() (const T & _g)
+
+inline
+
+ +

The application operator, returns the address of the value already in the table if it exists, or inserts and returns the address of the value inserted.

+
Parameters
+ + +
_gthe pointer to the value we want to find in the table.
+
+
+
Returns
the address of an object stored in the UniqueTable such that (*_g == *return_value)
+ +

References UniqueTableId< T, ID >::index, UniqueTableId< T, ID >::next_id(), UniqueTableId< T, ID >::ref(), and UniqueTableId< T, ID >::table.

+ +
+
+ +

◆ peak_size()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
size_t UniqueTableId< T, ID >::peak_size ()
+
+inline
+
+
+ +

◆ print_free_list()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::print_free_list (std::ostream & os) const
+
+inlineprivate
+
+
+ +

◆ print_marked()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::print_marked (std::ostream & os) const
+
+inlineprivate
+
+
+ +

◆ print_table()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::print_table (std::ostream & os) const
+
+inlineprivate
+
+
+ +

◆ push()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::push (const id_tid)
+
+inlineprivate
+
+ +

add a node to free list

+ +

References UniqueTableId< T, ID >::head, and UniqueTableId< T, ID >::index.

+ +

Referenced by UniqueTableId< T, ID >::garbage().

+ +
+
+ +

◆ ref()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
void UniqueTableId< T, ID >::ref (const id_tid)
+
+inline
+
+
+ +

◆ resolve()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + + +
const T* UniqueTableId< T, ID >::resolve (const id_tid) const
+
+inline
+
+
+ +

◆ size()

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + + + + +
size_t UniqueTableId< T, ID >::size () const
+
+inline
+
+ +

Returns the current number of filled entries in the table.

+ +

References UniqueTableId< T, ID >::table.

+ +

Referenced by UniqueTableId< T, ID >::peak_size(), and GDDD::statistics().

+ +
+
+

Member Data Documentation

+ +

◆ head

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
id_t UniqueTableId< T, ID >::head
+
+private
+
+ +

The free list is stored hidden in the free space of the index table.

+

It is sorted by reverse deallocation order, since we only push or pop to head. Value 0 signifies no successor(it is also the deleted key marker).

+ +

Referenced by UniqueTableId< T, ID >::next_id(), UniqueTableId< T, ID >::print_free_list(), and UniqueTableId< T, ID >::push().

+ +
+
+ +

◆ index

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
indexes_t UniqueTableId< T, ID >::index
+
+private
+
+
+ +

◆ marks

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
marks_t UniqueTableId< T, ID >::marks
+
+private
+
+
+ +

◆ peak_size_

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
size_t UniqueTableId< T, ID >::peak_size_
+
+private
+
+
+ +

◆ refs

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
refs_t UniqueTableId< T, ID >::refs
+
+private
+
+ +

The reference counters for ref'd nodes. It is a sparse table that only stores values for non-zero entries.

+ +

Referenced by UniqueTableId< T, ID >::deref(), UniqueTableId< T, ID >::garbage(), UniqueTableId< T, ID >::ref(), and UniqueTableId< T, ID >::UniqueTableId().

+ +
+
+ +

◆ table

+ +
+
+
+template<typename T , typename ID >
+ + + + + +
+ + + + +
table_t UniqueTableId< T, ID >::table
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classUniqueTableId__coll__graph.map b/libddd.html/classUniqueTableId__coll__graph.map new file mode 100644 index 000000000..5c2993ed4 --- /dev/null +++ b/libddd.html/classUniqueTableId__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classUniqueTableId__coll__graph.md5 b/libddd.html/classUniqueTableId__coll__graph.md5 new file mode 100644 index 000000000..e9f261692 --- /dev/null +++ b/libddd.html/classUniqueTableId__coll__graph.md5 @@ -0,0 +1 @@ +17e4e60f2056dcf4eebb0cdb881a8cc2 \ No newline at end of file diff --git a/libddd.html/classUniqueTableId__coll__graph.png b/libddd.html/classUniqueTableId__coll__graph.png new file mode 100644 index 000000000..aedec5491 Binary files /dev/null and b/libddd.html/classUniqueTableId__coll__graph.png differ diff --git a/libddd.html/classUniqueTable__coll__graph.map b/libddd.html/classUniqueTable__coll__graph.map new file mode 100644 index 000000000..f46c166e4 --- /dev/null +++ b/libddd.html/classUniqueTable__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classUniqueTable__coll__graph.md5 b/libddd.html/classUniqueTable__coll__graph.md5 new file mode 100644 index 000000000..00fed1dbe --- /dev/null +++ b/libddd.html/classUniqueTable__coll__graph.md5 @@ -0,0 +1 @@ +5b276f55bf4b5261e0a12eb12e176faa \ No newline at end of file diff --git a/libddd.html/classUniqueTable__coll__graph.png b/libddd.html/classUniqueTable__coll__graph.png new file mode 100644 index 000000000..4cf68b81d Binary files /dev/null and b/libddd.html/classUniqueTable__coll__graph.png differ diff --git a/libddd.html/class__DED-members.html b/libddd.html/class__DED-members.html new file mode 100644 index 000000000..b6c6464e5 --- /dev/null +++ b/libddd.html/class__DED-members.html @@ -0,0 +1,62 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED Member List
+
+
+ +

This is the complete list of members for _DED, including all inherited members.

+ + + + + + + +
clone() const =0_DEDpure virtual
eval() const =0_DEDpure virtual
hash() const =0_DEDpure virtual
operator==(const _DED &) const =0_DEDpure virtual
result_DED
~_DED()_DEDinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED.html b/libddd.html/class__DED.html new file mode 100644 index 000000000..e78266c12 --- /dev/null +++ b/libddd.html/class__DED.html @@ -0,0 +1,252 @@ + + + + + + + +DDD: _DED Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Public Attributes | +List of all members
+
+
_DED Class Referenceabstract
+
+
+
+Inheritance diagram for _DED:
+
+
Inheritance graph
+ + + + + + + + +
+
+Collaboration diagram for _DED:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + +

+Public Member Functions

virtual ~_DED ()
 
virtual size_t hash () const =0
 
virtual bool operator== (const _DED &) const =0
 
virtual _DEDclone () const =0
 
virtual GDDD eval () const =0
 
+ + + +

+Public Attributes

GDDD result
 
+

Constructor & Destructor Documentation

+ +

◆ ~_DED()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _DED::~_DED ()
+
+inlinevirtual
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _DED* _DED::clone () const
+
+pure virtual
+
+ +

Implemented in _DED_Hom, _DED_Concat, _DED_Minus, _DED_Mult, and _DED_Add.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
virtual GDDD _DED::eval () const
+
+pure virtual
+
+ +

Implemented in _DED_Hom, _DED_Concat, _DED_Minus, _DED_Mult, and _DED_Add.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _DED::hash () const
+
+pure virtual
+
+ +

Implemented in _DED_Hom, _DED_Concat, _DED_Minus, _DED_Mult, and _DED_Add.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _DED::operator== (const _DED) const
+
+pure virtual
+
+ +

Implemented in _DED_Hom, _DED_Concat, _DED_Minus, _DED_Mult, and _DED_Add.

+ +
+
+

Member Data Documentation

+ +

◆ result

+ +
+
+ + + + +
GDDD _DED::result
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Add-members.html b/libddd.html/class__DED__Add-members.html new file mode 100644 index 000000000..731da0385 --- /dev/null +++ b/libddd.html/class__DED__Add-members.html @@ -0,0 +1,66 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED_Add Member List
+
+
+ +

This is the complete list of members for _DED_Add, including all inherited members.

+ + + + + + + + + + + +
_DED_Add(const std::set< GDDD > &d)_DED_Addinlineprivate
clone() const_DED_Addinlinevirtual
create(const std::set< GDDD > &d)_DED_Addstatic
eval() const_DED_Addvirtual
hash() const_DED_Addvirtual
operator==(const _DED &e) const_DED_Addvirtual
parameters_DED_Addprivate
result_DED
~_DED()_DEDinlinevirtual
~_DED_Add()_DED_Addinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Add.html b/libddd.html/class__DED__Add.html new file mode 100644 index 000000000..789e684c3 --- /dev/null +++ b/libddd.html/class__DED__Add.html @@ -0,0 +1,365 @@ + + + + + + + +DDD: _DED_Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_DED_Add Class Reference
+
+
+
+Inheritance diagram for _DED_Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _DED_Add:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _DED &e) const
 
_DEDclone () const
 
GDDD eval () const
 
 ~_DED_Add ()
 
+ + + +

+Static Public Member Functions

static GDDD create (const std::set< GDDD > &d)
 
+ + + +

+Public Attributes

GDDD result
 
+ + + +

+Private Member Functions

 _DED_Add (const std::set< GDDD > &d)
 
+ + + +

+Private Attributes

std::vector< GDDDparameters
 
+

Constructor & Destructor Documentation

+ +

◆ _DED_Add()

+ +
+
+ + + + + +
+ + + + + + + + +
_DED_Add::_DED_Add (const std::set< GDDD > & d)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_DED_Add()

+ +
+
+ + + + + +
+ + + + + + + +
_DED_Add::~_DED_Add ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_DED* _DED_Add::clone () const
+
+inlinevirtual
+
+ +

Implements _DED.

+ +

References _DED_Add().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _DED_Add::create (const std::set< GDDD > & d)
+
+static
+
+ +

References _DED_Add(), compute(), GDDD::null, GDDD::one, parameters, and GDDD::top.

+ +

Referenced by DED::add().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _DED_Add::eval () const
+
+virtual
+
+ +

Implements _DED.

+ +

References DED::add(), and parameters.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _DED_Add::hash () const
+
+virtual
+
+ +

Implements _DED.

+ +

References parameters.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _DED_Add::operator== (const _DEDe) const
+
+virtual
+
+ +

Implements _DED.

+ +

References parameters.

+ +
+
+

Member Data Documentation

+ +

◆ parameters

+ +
+
+ + + + + +
+ + + + +
std::vector<GDDD> _DED_Add::parameters
+
+private
+
+ +

Referenced by create(), eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GDDD _DED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Add__coll__graph.map b/libddd.html/class__DED__Add__coll__graph.map new file mode 100644 index 000000000..781895089 --- /dev/null +++ b/libddd.html/class__DED__Add__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__DED__Add__coll__graph.md5 b/libddd.html/class__DED__Add__coll__graph.md5 new file mode 100644 index 000000000..cb5ed106b --- /dev/null +++ b/libddd.html/class__DED__Add__coll__graph.md5 @@ -0,0 +1 @@ +5b640db52adfd7389da9b8b743a3fdb0 \ No newline at end of file diff --git a/libddd.html/class__DED__Add__coll__graph.png b/libddd.html/class__DED__Add__coll__graph.png new file mode 100644 index 000000000..954f78400 Binary files /dev/null and b/libddd.html/class__DED__Add__coll__graph.png differ diff --git a/libddd.html/class__DED__Add__inherit__graph.map b/libddd.html/class__DED__Add__inherit__graph.map new file mode 100644 index 000000000..698ff625d --- /dev/null +++ b/libddd.html/class__DED__Add__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__Add__inherit__graph.md5 b/libddd.html/class__DED__Add__inherit__graph.md5 new file mode 100644 index 000000000..e2baa2f00 --- /dev/null +++ b/libddd.html/class__DED__Add__inherit__graph.md5 @@ -0,0 +1 @@ +7bfc6cc627518944168786a33f317625 \ No newline at end of file diff --git a/libddd.html/class__DED__Add__inherit__graph.png b/libddd.html/class__DED__Add__inherit__graph.png new file mode 100644 index 000000000..4606a9f30 Binary files /dev/null and b/libddd.html/class__DED__Add__inherit__graph.png differ diff --git a/libddd.html/class__DED__Concat-members.html b/libddd.html/class__DED__Concat-members.html new file mode 100644 index 000000000..af312a5f8 --- /dev/null +++ b/libddd.html/class__DED__Concat-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED_Concat Member List
+
+
+ +

This is the complete list of members for _DED_Concat, including all inherited members.

+ + + + + + + + + + + + +
_DED_Concat(const GDDD &g1, const GDDD &g2)_DED_Concatinlineprivate
clone() const_DED_Concatinlinevirtual
create(const GDDD &g1, const GDDD &g2)_DED_Concatstatic
eval() const_DED_Concatvirtual
hash() const_DED_Concatvirtual
operator==(const _DED &e) const_DED_Concatvirtual
parameter1_DED_Concatprivate
parameter2_DED_Concatprivate
result_DED
~_DED()_DEDinlinevirtual
~_DED_Concat()_DED_Concatinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Concat.html b/libddd.html/class__DED__Concat.html new file mode 100644 index 000000000..78b39f8a2 --- /dev/null +++ b/libddd.html/class__DED__Concat.html @@ -0,0 +1,411 @@ + + + + + + + +DDD: _DED_Concat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_DED_Concat Class Reference
+
+
+
+Inheritance diagram for _DED_Concat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _DED_Concat:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _DED &e) const
 
_DEDclone () const
 
GDDD eval () const
 
 ~_DED_Concat ()
 
+ + + +

+Static Public Member Functions

static GDDD create (const GDDD &g1, const GDDD &g2)
 
+ + + +

+Public Attributes

GDDD result
 
+ + + +

+Private Member Functions

 _DED_Concat (const GDDD &g1, const GDDD &g2)
 
+ + + + + +

+Private Attributes

GDDD parameter1
 
GDDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _DED_Concat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_DED_Concat::_DED_Concat (const GDDDg1,
const GDDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_DED_Concat()

+ +
+
+ + + + + +
+ + + + + + + +
_DED_Concat::~_DED_Concat ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_DED* _DED_Concat::clone () const
+
+inlinevirtual
+
+ +

Implements _DED.

+ +

References _DED_Concat().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GDDD _DED_Concat::create (const GDDDg1,
const GDDDg2 
)
+
+static
+
+ +

References _DED_Concat(), compute(), GDDD::null, GDDD::one, and GDDD::top.

+ +

Referenced by operator^().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _DED_Concat::eval () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GDDD::begin(), GDDD::end(), parameter1, parameter2, and GDDD::variable().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _DED_Concat::hash () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GDDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _DED_Concat::operator== (const _DEDe) const
+
+virtual
+
+ +

Implements _DED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Concat::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Concat::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GDDD _DED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Concat__coll__graph.map b/libddd.html/class__DED__Concat__coll__graph.map new file mode 100644 index 000000000..d6f761131 --- /dev/null +++ b/libddd.html/class__DED__Concat__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__DED__Concat__coll__graph.md5 b/libddd.html/class__DED__Concat__coll__graph.md5 new file mode 100644 index 000000000..2ca38a38a --- /dev/null +++ b/libddd.html/class__DED__Concat__coll__graph.md5 @@ -0,0 +1 @@ +b5242a762f0ecfb5c77a60342ac59bd2 \ No newline at end of file diff --git a/libddd.html/class__DED__Concat__coll__graph.png b/libddd.html/class__DED__Concat__coll__graph.png new file mode 100644 index 000000000..3cf077b54 Binary files /dev/null and b/libddd.html/class__DED__Concat__coll__graph.png differ diff --git a/libddd.html/class__DED__Concat__inherit__graph.map b/libddd.html/class__DED__Concat__inherit__graph.map new file mode 100644 index 000000000..10573af86 --- /dev/null +++ b/libddd.html/class__DED__Concat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__Concat__inherit__graph.md5 b/libddd.html/class__DED__Concat__inherit__graph.md5 new file mode 100644 index 000000000..2ac6a192e --- /dev/null +++ b/libddd.html/class__DED__Concat__inherit__graph.md5 @@ -0,0 +1 @@ +9d29ed3d054c034ad0aa2fcd4ace55ed \ No newline at end of file diff --git a/libddd.html/class__DED__Concat__inherit__graph.png b/libddd.html/class__DED__Concat__inherit__graph.png new file mode 100644 index 000000000..334c3a3fd Binary files /dev/null and b/libddd.html/class__DED__Concat__inherit__graph.png differ diff --git a/libddd.html/class__DED__Hom-members.html b/libddd.html/class__DED__Hom-members.html new file mode 100644 index 000000000..f288839d5 --- /dev/null +++ b/libddd.html/class__DED__Hom-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED_Hom Member List
+
+
+ +

This is the complete list of members for _DED_Hom, including all inherited members.

+ + + + + + + + + + + + +
_DED_Hom(const GHom &h, const GDDD &d)_DED_Hominlineprivate
clone() const_DED_Hominlinevirtual
create(const GHom &h, const GDDD &d)_DED_Homstatic
eval() const_DED_Homvirtual
hash() const_DED_Homvirtual
hom_DED_Homprivate
operator==(const _DED &e) const_DED_Homvirtual
parameter_DED_Homprivate
result_DED
~_DED()_DEDinlinevirtual
~_DED_Hom()_DED_Hominline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Hom.html b/libddd.html/class__DED__Hom.html new file mode 100644 index 000000000..a1f171882 --- /dev/null +++ b/libddd.html/class__DED__Hom.html @@ -0,0 +1,411 @@ + + + + + + + +DDD: _DED_Hom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_DED_Hom Class Reference
+
+
+
+Inheritance diagram for _DED_Hom:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _DED_Hom:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _DED &e) const
 
_DEDclone () const
 
GDDD eval () const
 
 ~_DED_Hom ()
 
+ + + +

+Static Public Member Functions

static GDDD create (const GHom &h, const GDDD &d)
 
+ + + +

+Public Attributes

GDDD result
 
+ + + +

+Private Member Functions

 _DED_Hom (const GHom &h, const GDDD &d)
 
+ + + + + +

+Private Attributes

GHom hom
 
GDDD parameter
 
+

Constructor & Destructor Documentation

+ +

◆ _DED_Hom()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_DED_Hom::_DED_Hom (const GHomh,
const GDDDd 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_DED_Hom()

+ +
+
+ + + + + +
+ + + + + + + +
_DED_Hom::~_DED_Hom ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_DED* _DED_Hom::clone () const
+
+inlinevirtual
+
+ +

Implements _DED.

+ +

References _DED_Hom().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GDDD _DED_Hom::create (const GHomh,
const GDDDd 
)
+
+static
+
+ +

References _DED_Hom(), compute(), and GDDD::null.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _DED_Hom::eval () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GHom::eval(), hom, and parameter.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _DED_Hom::hash () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GDDD::hash(), GHom::hash(), hom, and parameter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _DED_Hom::operator== (const _DEDe) const
+
+virtual
+
+ +

Implements _DED.

+ +

References hom, and parameter.

+ +
+
+

Member Data Documentation

+ +

◆ hom

+ +
+
+ + + + + +
+ + + + +
GHom _DED_Hom::hom
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Hom::parameter
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GDDD _DED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Hom__coll__graph.map b/libddd.html/class__DED__Hom__coll__graph.map new file mode 100644 index 000000000..791b6232f --- /dev/null +++ b/libddd.html/class__DED__Hom__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__DED__Hom__coll__graph.md5 b/libddd.html/class__DED__Hom__coll__graph.md5 new file mode 100644 index 000000000..6e8a8cb29 --- /dev/null +++ b/libddd.html/class__DED__Hom__coll__graph.md5 @@ -0,0 +1 @@ +0d7975bee55c74ba5a44a5fb7486aeba \ No newline at end of file diff --git a/libddd.html/class__DED__Hom__coll__graph.png b/libddd.html/class__DED__Hom__coll__graph.png new file mode 100644 index 000000000..f44fbcc49 Binary files /dev/null and b/libddd.html/class__DED__Hom__coll__graph.png differ diff --git a/libddd.html/class__DED__Hom__inherit__graph.map b/libddd.html/class__DED__Hom__inherit__graph.map new file mode 100644 index 000000000..adf7840ed --- /dev/null +++ b/libddd.html/class__DED__Hom__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__Hom__inherit__graph.md5 b/libddd.html/class__DED__Hom__inherit__graph.md5 new file mode 100644 index 000000000..9860110af --- /dev/null +++ b/libddd.html/class__DED__Hom__inherit__graph.md5 @@ -0,0 +1 @@ +5053b83b315d96ec855af298df670573 \ No newline at end of file diff --git a/libddd.html/class__DED__Hom__inherit__graph.png b/libddd.html/class__DED__Hom__inherit__graph.png new file mode 100644 index 000000000..3d2ca1f34 Binary files /dev/null and b/libddd.html/class__DED__Hom__inherit__graph.png differ diff --git a/libddd.html/class__DED__Minus-members.html b/libddd.html/class__DED__Minus-members.html new file mode 100644 index 000000000..994843949 --- /dev/null +++ b/libddd.html/class__DED__Minus-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED_Minus Member List
+
+
+ +

This is the complete list of members for _DED_Minus, including all inherited members.

+ + + + + + + + + + + + +
_DED_Minus(const GDDD &g1, const GDDD &g2)_DED_Minusinlineprivate
clone() const_DED_Minusinlinevirtual
create(const GDDD &g1, const GDDD &g2)_DED_Minusstatic
eval() const_DED_Minusvirtual
hash() const_DED_Minusvirtual
operator==(const _DED &e) const_DED_Minusvirtual
parameter1_DED_Minusprivate
parameter2_DED_Minusprivate
result_DED
~_DED()_DEDinlinevirtual
~_DED_Minus()_DED_Minusinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Minus.html b/libddd.html/class__DED__Minus.html new file mode 100644 index 000000000..c800d607e --- /dev/null +++ b/libddd.html/class__DED__Minus.html @@ -0,0 +1,411 @@ + + + + + + + +DDD: _DED_Minus Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_DED_Minus Class Reference
+
+
+
+Inheritance diagram for _DED_Minus:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _DED_Minus:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _DED &e) const
 
_DEDclone () const
 
GDDD eval () const
 
 ~_DED_Minus ()
 
+ + + +

+Static Public Member Functions

static GDDD create (const GDDD &g1, const GDDD &g2)
 
+ + + +

+Public Attributes

GDDD result
 
+ + + +

+Private Member Functions

 _DED_Minus (const GDDD &g1, const GDDD &g2)
 
+ + + + + +

+Private Attributes

GDDD parameter1
 
GDDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _DED_Minus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_DED_Minus::_DED_Minus (const GDDDg1,
const GDDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_DED_Minus()

+ +
+
+ + + + + +
+ + + + + + + +
_DED_Minus::~_DED_Minus ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_DED* _DED_Minus::clone () const
+
+inlinevirtual
+
+ +

Implements _DED.

+ +

References _DED_Minus().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GDDD _DED_Minus::create (const GDDDg1,
const GDDDg2 
)
+
+static
+
+ +

References _DED_Minus(), compute(), GDDD::null, GDDD::one, GDDD::top, and GDDD::variable().

+ +

Referenced by operator-().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _DED_Minus::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _DED_Minus::hash () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GDDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _DED_Minus::operator== (const _DEDe) const
+
+virtual
+
+ +

Implements _DED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Minus::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Minus::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GDDD _DED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Minus__coll__graph.map b/libddd.html/class__DED__Minus__coll__graph.map new file mode 100644 index 000000000..40db21d39 --- /dev/null +++ b/libddd.html/class__DED__Minus__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__DED__Minus__coll__graph.md5 b/libddd.html/class__DED__Minus__coll__graph.md5 new file mode 100644 index 000000000..10e6bc656 --- /dev/null +++ b/libddd.html/class__DED__Minus__coll__graph.md5 @@ -0,0 +1 @@ +986958b9f5b7aa008d7a4b26006b7b2d \ No newline at end of file diff --git a/libddd.html/class__DED__Minus__coll__graph.png b/libddd.html/class__DED__Minus__coll__graph.png new file mode 100644 index 000000000..181834c72 Binary files /dev/null and b/libddd.html/class__DED__Minus__coll__graph.png differ diff --git a/libddd.html/class__DED__Minus__inherit__graph.map b/libddd.html/class__DED__Minus__inherit__graph.map new file mode 100644 index 000000000..c56c230c9 --- /dev/null +++ b/libddd.html/class__DED__Minus__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__Minus__inherit__graph.md5 b/libddd.html/class__DED__Minus__inherit__graph.md5 new file mode 100644 index 000000000..5cea6c767 --- /dev/null +++ b/libddd.html/class__DED__Minus__inherit__graph.md5 @@ -0,0 +1 @@ +ed228ddadcb0f001c7890e951ba853c8 \ No newline at end of file diff --git a/libddd.html/class__DED__Minus__inherit__graph.png b/libddd.html/class__DED__Minus__inherit__graph.png new file mode 100644 index 000000000..5fe4579c2 Binary files /dev/null and b/libddd.html/class__DED__Minus__inherit__graph.png differ diff --git a/libddd.html/class__DED__Mult-members.html b/libddd.html/class__DED__Mult-members.html new file mode 100644 index 000000000..703acaf82 --- /dev/null +++ b/libddd.html/class__DED__Mult-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_DED_Mult Member List
+
+
+ +

This is the complete list of members for _DED_Mult, including all inherited members.

+ + + + + + + + + + + + +
_DED_Mult(const GDDD &g1, const GDDD &g2)_DED_Multinlineprivate
clone() const_DED_Multinlinevirtual
create(const GDDD &g1, const GDDD &g2)_DED_Multstatic
eval() const_DED_Multvirtual
hash() const_DED_Multvirtual
operator==(const _DED &e) const_DED_Multvirtual
parameter1_DED_Multprivate
parameter2_DED_Multprivate
result_DED
~_DED()_DEDinlinevirtual
~_DED_Mult()_DED_Multinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Mult.html b/libddd.html/class__DED__Mult.html new file mode 100644 index 000000000..791ccb536 --- /dev/null +++ b/libddd.html/class__DED__Mult.html @@ -0,0 +1,411 @@ + + + + + + + +DDD: _DED_Mult Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_DED_Mult Class Reference
+
+
+
+Inheritance diagram for _DED_Mult:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _DED_Mult:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _DED &e) const
 
_DEDclone () const
 
GDDD eval () const
 
 ~_DED_Mult ()
 
+ + + +

+Static Public Member Functions

static GDDD create (const GDDD &g1, const GDDD &g2)
 
+ + + +

+Public Attributes

GDDD result
 
+ + + +

+Private Member Functions

 _DED_Mult (const GDDD &g1, const GDDD &g2)
 
+ + + + + +

+Private Attributes

GDDD parameter1
 
GDDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _DED_Mult()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_DED_Mult::_DED_Mult (const GDDDg1,
const GDDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_DED_Mult()

+ +
+
+ + + + + +
+ + + + + + + +
_DED_Mult::~_DED_Mult ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_DED* _DED_Mult::clone () const
+
+inlinevirtual
+
+ +

Implements _DED.

+ +

References _DED_Mult().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GDDD _DED_Mult::create (const GDDDg1,
const GDDDg2 
)
+
+static
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _DED_Mult::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _DED_Mult::hash () const
+
+virtual
+
+ +

Implements _DED.

+ +

References GDDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _DED_Mult::operator== (const _DEDe) const
+
+virtual
+
+ +

Implements _DED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Mult::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GDDD _DED_Mult::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GDDD _DED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__DED__Mult__coll__graph.map b/libddd.html/class__DED__Mult__coll__graph.map new file mode 100644 index 000000000..af2a55091 --- /dev/null +++ b/libddd.html/class__DED__Mult__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__DED__Mult__coll__graph.md5 b/libddd.html/class__DED__Mult__coll__graph.md5 new file mode 100644 index 000000000..d1a948a68 --- /dev/null +++ b/libddd.html/class__DED__Mult__coll__graph.md5 @@ -0,0 +1 @@ +9046720cfc5ea74c8cf77acc9f2fcc2b \ No newline at end of file diff --git a/libddd.html/class__DED__Mult__coll__graph.png b/libddd.html/class__DED__Mult__coll__graph.png new file mode 100644 index 000000000..a6d66c70a Binary files /dev/null and b/libddd.html/class__DED__Mult__coll__graph.png differ diff --git a/libddd.html/class__DED__Mult__inherit__graph.map b/libddd.html/class__DED__Mult__inherit__graph.map new file mode 100644 index 000000000..c64d9a081 --- /dev/null +++ b/libddd.html/class__DED__Mult__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__Mult__inherit__graph.md5 b/libddd.html/class__DED__Mult__inherit__graph.md5 new file mode 100644 index 000000000..41053da56 --- /dev/null +++ b/libddd.html/class__DED__Mult__inherit__graph.md5 @@ -0,0 +1 @@ +9b6ba6038def7da0628407d40c58586c \ No newline at end of file diff --git a/libddd.html/class__DED__Mult__inherit__graph.png b/libddd.html/class__DED__Mult__inherit__graph.png new file mode 100644 index 000000000..77d8266dd Binary files /dev/null and b/libddd.html/class__DED__Mult__inherit__graph.png differ diff --git a/libddd.html/class__DED__coll__graph.map b/libddd.html/class__DED__coll__graph.map new file mode 100644 index 000000000..e41c2492e --- /dev/null +++ b/libddd.html/class__DED__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__DED__coll__graph.md5 b/libddd.html/class__DED__coll__graph.md5 new file mode 100644 index 000000000..d7e99b425 --- /dev/null +++ b/libddd.html/class__DED__coll__graph.md5 @@ -0,0 +1 @@ +df4eecc3e3f990b5e9935208ba8651d9 \ No newline at end of file diff --git a/libddd.html/class__DED__coll__graph.png b/libddd.html/class__DED__coll__graph.png new file mode 100644 index 000000000..a779b8a80 Binary files /dev/null and b/libddd.html/class__DED__coll__graph.png differ diff --git a/libddd.html/class__DED__inherit__graph.map b/libddd.html/class__DED__inherit__graph.map new file mode 100644 index 000000000..ab1ee442c --- /dev/null +++ b/libddd.html/class__DED__inherit__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/class__DED__inherit__graph.md5 b/libddd.html/class__DED__inherit__graph.md5 new file mode 100644 index 000000000..95cde60bd --- /dev/null +++ b/libddd.html/class__DED__inherit__graph.md5 @@ -0,0 +1 @@ +64537581d83663a1cfe58eea0da6f362 \ No newline at end of file diff --git a/libddd.html/class__DED__inherit__graph.png b/libddd.html/class__DED__inherit__graph.png new file mode 100644 index 000000000..1bb5b1c5a Binary files /dev/null and b/libddd.html/class__DED__inherit__graph.png differ diff --git a/libddd.html/class__GDDD-members.html b/libddd.html/class__GDDD-members.html new file mode 100644 index 000000000..8ee0d3be5 --- /dev/null +++ b/libddd.html/class__GDDD-members.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_GDDD Member List
+
+
+ +

This is the complete list of members for _GDDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GDDD(int var, const GDDD::Valuation &val)_GDDDinlineprivate
_GDDD(int var, Iterator begin, Iterator end)_GDDDinlineprivate
_GDDD(const _GDDD &)=delete_GDDDprivate
_GDDD(_GDDD &&)=delete_GDDDprivate
alpha_addr() const_GDDDinlineprivate
begin() const_GDDDinline
clone() const_GDDDinline
const_iterator typedef_GDDDprivate
create_unique_GDDD(int var, const GDDD::Valuation &val)_GDDDinlinestatic
edge_t typedef_GDDDprivate
end() const_GDDDinline
GDDD class_GDDDfriend
hash() const_GDDDinline
mark() const_GDDDinline
operator delete(void *addr)_GDDDinlinestatic
operator new(size_t, custom_new_t, size_t length)_GDDDinlineprivatestatic
operator new(size_t, void *addr)_GDDDinlineprivatestatic
operator<(const _GDDD &g) const_GDDDinline
operator=(const _GDDD &)=delete_GDDDprivate
operator=(_GDDD &&)=delete_GDDDprivate
operator==(const _GDDD &g) const_GDDDinline
resolve(GDDD::id_t id)_GDDDinlinestatic
saveDDD(std::ostream &, std::vector< DDD >)_GDDDfriend
valuation_size_GDDDprivate
variable_GDDDprivate
~_GDDD()_GDDDinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GDDD.html b/libddd.html/class__GDDD.html new file mode 100644 index 000000000..826915070 --- /dev/null +++ b/libddd.html/class__GDDD.html @@ -0,0 +1,978 @@ + + + + + + + +DDD: _GDDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Public Member Functions | +Static Public Member Functions | +Private Types | +Private Member Functions | +Static Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
_GDDD Class Reference
+
+
+
+Collaboration diagram for _GDDD:
+
+
Collaboration graph
+ + + +
+ + + + + +

+Classes

struct  custom_new_t
 an empty struct tag type used to disambiguate between different variants of the operator new for _GDDD. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ~_GDDD ()
 destructor More...
 
const_iterator begin () const
 iterator API More...
 
const_iterator end () const
 
bool operator== (const _GDDD &g) const
 
bool operator< (const _GDDD &g) const
 
size_t hash () const
 hash More...
 
void mark () const
 Memory Manager and reference counting. More...
 
_GDDDclone () const
 cloning More...
 
+ + + + + + + + + +

+Static Public Member Functions

static GDDD::id_t create_unique_GDDD (int var, const GDDD::Valuation &val)
 factory operation More...
 
static const _GDDDresolve (GDDD::id_t id)
 
static void operator delete (void *addr)
 custom operator delete More...
 
+ + + + + + +

+Private Types

typedef GDDD::edge_t edge_t
 useful typedefs More...
 
typedef GDDD::const_iterator const_iterator
 
+ + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

edge_talpha_addr () const
 get the address of the valuation More...
 
 _GDDD (int var, const GDDD::Valuation &val)
 constructor More...
 
template<class Iterator >
 _GDDD (int var, Iterator begin, Iterator end)
 constructor (with iterators) More...
 
 _GDDD (const _GDDD &)=delete
 cannot copy or move these four operations are deliberately private and UNIMPLEMENTED More...
 
_GDDDoperator= (const _GDDD &)=delete
 
 _GDDD (_GDDD &&)=delete
 
_GDDDoperator= (_GDDD &&)=delete
 
+ + + + + + + +

+Static Private Member Functions

static void * operator new (size_t, custom_new_t, size_t length)
 custom operator new WARNING: the expected arguments are not standard More...
 
static void * operator new (size_t, void *addr)
 classical placement new NB: it is the responsibility of the caller that there is enough room to build the _GDDD. More...
 
+ + + + + + +

+Private Attributes

const int variable
 attributes More...
 
const GDDD::valsz_t valuation_size
 
+ + + + + +

+Friends

class GDDD
 
void saveDDD (std::ostream &, std::vector< DDD >)
 
+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+ + + + + +
+ + + + +
typedef GDDD::const_iterator _GDDD::const_iterator
+
+private
+
+ +
+
+ +

◆ edge_t

+ +
+
+ + + + + +
+ + + + +
typedef GDDD::edge_t _GDDD::edge_t
+
+private
+
+ +

useful typedefs

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ _GDDD() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_GDDD::_GDDD (int var,
const GDDD::Valuationval 
)
+
+inlineprivate
+
+ +

constructor

+ +

Referenced by alpha_addr(), and operator new().

+ +
+
+ +

◆ _GDDD() [2/4]

+ +
+
+
+template<class Iterator >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
_GDDD::_GDDD (int var,
Iterator begin,
Iterator end 
)
+
+inlineprivate
+
+ +

constructor (with iterators)

+ +

References alpha_addr(), begin(), and end().

+ +
+
+ +

◆ _GDDD() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
_GDDD::_GDDD (const _GDDD)
+
+privatedelete
+
+ +

cannot copy or move these four operations are deliberately private and UNIMPLEMENTED

+ +
+
+ +

◆ _GDDD() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
_GDDD::_GDDD (_GDDD && )
+
+privatedelete
+
+ +
+
+ +

◆ ~_GDDD()

+ +
+
+ + + + + +
+ + + + + + + +
_GDDD::~_GDDD ()
+
+inline
+
+ +

destructor

+ +

References begin(), and end().

+ +

Referenced by create_unique_GDDD().

+ +
+
+

Member Function Documentation

+ +

◆ alpha_addr()

+ +
+
+ + + + + +
+ + + + + + + +
edge_t* _GDDD::alpha_addr () const
+
+inlineprivate
+
+ +

get the address of the valuation

+ +

References _GDDD().

+ +

Referenced by _GDDD(), begin(), and end().

+ +
+
+ +

◆ begin()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator _GDDD::begin () const
+
+inline
+
+ +

iterator API

+ +

References alpha_addr().

+ +

Referenced by _GDDD(), GDDD::begin(), clone(), hash(), mark(), operator<(), operator==(), and ~_GDDD().

+ +
+
+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GDDD* _GDDD::clone () const
+
+inline
+
+ +

cloning

+ +

References begin(), end(), valuation_size, and variable.

+ +
+
+ +

◆ create_unique_GDDD()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static GDDD::id_t _GDDD::create_unique_GDDD (int var,
const GDDD::Valuationval 
)
+
+inlinestatic
+
+ +

factory operation

+ +

References UniqueTableId< T, ID >::instance(), and ~_GDDD().

+ +

Referenced by GDDD::GDDD().

+ +
+
+ +

◆ end()

+ +
+
+ + + + + +
+ + + + + + + +
const_iterator _GDDD::end () const
+
+inline
+
+ +

References alpha_addr(), and valuation_size.

+ +

Referenced by _GDDD(), clone(), GDDD::end(), hash(), mark(), operator<(), operator==(), and ~_GDDD().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _GDDD::hash () const
+
+inline
+
+ +

hash

+ +

References begin(), end(), ddd::int32_hash(), variable, and ddd::wang32_hash().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void _GDDD::mark () const
+
+inline
+
+ +

Memory Manager and reference counting.

+ +

References begin(), and end().

+ +
+
+ +

◆ operator delete()

+ +
+
+ + + + + +
+ + + + + + + + +
static void _GDDD::operator delete (void * addr)
+
+inlinestatic
+
+ +

custom operator delete

+ +
+
+ +

◆ operator new() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void* _GDDD::operator new (size_t ,
custom_new_t ,
size_t length 
)
+
+inlinestaticprivate
+
+ +

custom operator new WARNING: the expected arguments are not standard

+
    +
  • the first one (actually sizeof(_GDDD)) is ignored
  • +
  • the second one is 'custom_new_t', for disambiguation
  • +
  • the third one is the number of successors syntax: new (custom_new_t(), nb_sons) _GDDD (constructor arguments) it looks like a placement new, but this syntax is only used to pass arguments to operator new _GDDD should only be constructed by create_unique_GDDD or clone please refer to these two functions for invokation examples
  • +
+ +

References _GDDD().

+ +
+
+ +

◆ operator new() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void* _GDDD::operator new (size_t ,
void * addr 
)
+
+inlinestaticprivate
+
+ +

classical placement new NB: it is the responsibility of the caller that there is enough room to build the _GDDD.

+

e.g. new (ad) _GDDD(v, val) the memory chunk at 'ad' must be of size at least sizeof(_GDDD)+sizeof(edge_t)*val.size()

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GDDD::operator< (const _GDDDg) const
+
+inline
+
+ +

References begin(), end(), valuation_size, and variable.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
_GDDD& _GDDD::operator= (_GDDD && )
+
+privatedelete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
_GDDD& _GDDD::operator= (const _GDDD)
+
+privatedelete
+
+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GDDD::operator== (const _GDDDg) const
+
+inline
+
+ +

References begin(), end(), valuation_size, and variable.

+ +
+
+ +

◆ resolve()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GDDD* _GDDD::resolve (GDDD::id_t id)
+
+inlinestatic
+
+
+

Friends And Related Function Documentation

+ +

◆ GDDD

+ +
+
+ + + + + +
+ + + + +
friend class GDDD
+
+friend
+
+ +
+
+ +

◆ saveDDD

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void saveDDD (std::ostream & os,
std::vector< DDDlist 
)
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ valuation_size

+ +
+
+ + + + + +
+ + + + +
const GDDD::valsz_t _GDDD::valuation_size
+
+private
+
+ +

Referenced by clone(), end(), GDDD::nbsons(), operator<(), and operator==().

+ +
+
+ +

◆ variable

+ +
+
+ + + + + +
+ + + + +
const int _GDDD::variable
+
+private
+
+ +

attributes

+ +

Referenced by clone(), hash(), operator<(), operator==(), and GDDD::variable().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GDDD__coll__graph.map b/libddd.html/class__GDDD__coll__graph.map new file mode 100644 index 000000000..846ab74b0 --- /dev/null +++ b/libddd.html/class__GDDD__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__GDDD__coll__graph.md5 b/libddd.html/class__GDDD__coll__graph.md5 new file mode 100644 index 000000000..03b15ea6c --- /dev/null +++ b/libddd.html/class__GDDD__coll__graph.md5 @@ -0,0 +1 @@ +0100112f6a4ebc8245d061129935a875 \ No newline at end of file diff --git a/libddd.html/class__GDDD__coll__graph.png b/libddd.html/class__GDDD__coll__graph.png new file mode 100644 index 000000000..74f101e7c Binary files /dev/null and b/libddd.html/class__GDDD__coll__graph.png differ diff --git a/libddd.html/class__GHom-members.html b/libddd.html/class__GHom-members.html new file mode 100644 index 000000000..e1cd4cd63 --- /dev/null +++ b/libddd.html/class__GHom-members.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_GHom Member List
+
+
+ +

This is the complete list of members for _GHom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
clone() const =0_GHompure virtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &) const =0_GHompure virtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_GHominlinevirtual
GHom class_GHomfriend
has_image(const GDDD &) const_GHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const =0_GHompure virtual
Hom class_GHomfriend
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_GHominlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const _GHom &h) const =0_GHompure virtual
print(std::ostream &os) const =0_GHompure virtual
refCounter_GHommutableprivate
skip_variable(int) const_GHominlinevirtual
~_GHom()_GHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GHom.html b/libddd.html/class__GHom.html new file mode 100644 index 000000000..c8bea7c05 --- /dev/null +++ b/libddd.html/class__GHom.html @@ -0,0 +1,939 @@ + + + + + + + +DDD: _GHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
_GHom Class Referenceabstract
+
+
+ +

The concrete data class for Homomorphisms. + More...

+ +

#include <Hom.h>

+
+Inheritance diagram for _GHom:
+
+
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+Collaboration diagram for _GHom:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

GDDD has_image_skip (const GDDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
 _GHom (int ref=0, bool im=false)
 Constructor. More...
 
virtual ~_GHom ()
 Virtual Destructor. Default behavior. More...
 
virtual bool operator== (const _GHom &h) const =0
 Comparator. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GHomclone () const =0
 
virtual GDDD eval (const GDDD &) const =0
 The computation function responsible for evaluation over a node. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GDDD has_image (const GDDD &) const
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
virtual void print (std::ostream &os) const =0
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+ + + + + + + +

+Friends

class GHom
 open access to container class GHom. More...
 
class Hom
 open access to container class Hom. More...
 
+

Detailed Description

+

The concrete data class for Homomorphisms.

+

Users should not use this (private) class directly, but may use it indirectly by deriving user homomorphisms from the StrongHom class.

+

Constructor & Destructor Documentation

+ +

◆ _GHom()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_GHom::_GHom (int ref = 0,
bool im = false 
)
+
+inline
+
+ +

Constructor.

+

Note this class is abstract, so this is only used in initialization list of derived classes constructors (hard coded operations and StrongShom).

+ +

References creation_counter.

+ +
+
+ +

◆ ~_GHom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GHom::~_GHom ()
+
+inlinevirtual
+
+ +

Virtual Destructor. Default behavior.

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GHom* _GHom::clone () const
+
+pure virtual
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtual
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GDDD _GHom::eval (const GDDD) const
+
+pure virtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Apply2k, Constant, Identity, and StrongHom.

+ +

Referenced by eval_skip(), and GHom::operator()().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+private
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestatic
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GHom::range_t _GHom::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, Fixpoint, And, Compose, Monotonic, Add, and NotCond.

+ +

References GHom::full_range.

+ +

Referenced by GHom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image (const GDDDd) const
+
+virtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GHom::hash () const
+
+pure virtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in _VarCompVar, _incVar, _setVarConst, _VarCompState, MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Apply2k, Constant, and Identity.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References GHom, is_selector(), GDDD::null, and print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References creation_counter.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::operator== (const _GHomh) const
+
+pure virtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implemented in NotCond, DomExtract, MLHomAdapter, StrongHom, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void _GHom::print (std::ostream & os) const
+
+pure virtual
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GHom::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in Identity, _VarCompVar, _setVarConst, _VarCompState, _incVar, Fixpoint, RightConcat, And, Compose, Monotonic, Add, NotCond, Inter, and DomExtract.

+ +

Referenced by eval_skip(), has_image_skip(), Inter::skip_variable(), NotCond::skip_variable(), Add::skip_variable(), Monotonic::skip_variable(), Compose::skip_variable(), RightConcat::skip_variable(), Fixpoint::skip_variable(), and GHom::skip_variable().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ GHom

+ +
+
+ + + + + +
+ + + + +
friend class GHom
+
+friend
+
+
+ +

◆ Hom

+ +
+
+ + + + + +
+ + + + +
friend class Hom
+
+friend
+
+ +

open access to container class Hom.

+ +

Referenced by Fixpoint::eval().

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+private
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom(), and operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivate
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivate
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivate
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GHom__coll__graph.map b/libddd.html/class__GHom__coll__graph.map new file mode 100644 index 000000000..3a622f27a --- /dev/null +++ b/libddd.html/class__GHom__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__GHom__coll__graph.md5 b/libddd.html/class__GHom__coll__graph.md5 new file mode 100644 index 000000000..a9d915150 --- /dev/null +++ b/libddd.html/class__GHom__coll__graph.md5 @@ -0,0 +1 @@ +908989c868a3c61b5d113f2c2b863995 \ No newline at end of file diff --git a/libddd.html/class__GHom__coll__graph.png b/libddd.html/class__GHom__coll__graph.png new file mode 100644 index 000000000..5fe92940d Binary files /dev/null and b/libddd.html/class__GHom__coll__graph.png differ diff --git a/libddd.html/class__GHom__inherit__graph.map b/libddd.html/class__GHom__inherit__graph.map new file mode 100644 index 000000000..2cde784d0 --- /dev/null +++ b/libddd.html/class__GHom__inherit__graph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/class__GHom__inherit__graph.md5 b/libddd.html/class__GHom__inherit__graph.md5 new file mode 100644 index 000000000..ab672ee51 --- /dev/null +++ b/libddd.html/class__GHom__inherit__graph.md5 @@ -0,0 +1 @@ +4c586d237855b033eaebbc05e0bbd7c3 \ No newline at end of file diff --git a/libddd.html/class__GHom__inherit__graph.png b/libddd.html/class__GHom__inherit__graph.png new file mode 100644 index 000000000..4316ce676 Binary files /dev/null and b/libddd.html/class__GHom__inherit__graph.png differ diff --git a/libddd.html/class__GSDD-members.html b/libddd.html/class__GSDD-members.html new file mode 100644 index 000000000..c6ccc6d60 --- /dev/null +++ b/libddd.html/class__GSDD-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_GSDD Member List
+
+
+ +

This is the complete list of members for _GSDD, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
_GSDD(int var, int cpt=0)_GSDDinline
_GSDD(int var, GSDD::Valuation val, int cpt=0)_GSDDinline
_GSDD(const _GSDD &g)_GSDDinline
_refCounter_GSDDmutable
clone() const_GSDDinline
deref() const_GSDDinline
hash() const_GSDDinline
is_marked() const_GSDDinline
mark() const_GSDD
mark_if_refd() const_GSDDinline
operator<(const _GSDD &g) const_GSDDinline
operator==(const _GSDD &g) const_GSDDinline
ref() const_GSDDinline
refCounter() const_GSDDinline
set_mark(bool val) const_GSDDinline
valuation_GSDD
variable_GSDD
~_GSDD()_GSDDinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GSDD.html b/libddd.html/class__GSDD.html new file mode 100644 index 000000000..451b007a0 --- /dev/null +++ b/libddd.html/class__GSDD.html @@ -0,0 +1,611 @@ + + + + + + + +DDD: _GSDD Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Public Attributes | +List of all members
+
+
_GSDD Class Reference
+
+
+
+Collaboration diagram for _GSDD:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _GSDD (int var, int cpt=0)
 
 _GSDD (int var, GSDD::Valuation val, int cpt=0)
 
virtual ~_GSDD ()
 
 _GSDD (const _GSDD &g)
 
_GSDDclone () const
 
bool operator< (const _GSDD &g) const
 
bool operator== (const _GSDD &g) const
 
void mark () const
 
size_t hash () const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + + + + +

+Public Attributes

const int variable
 
GSDD::Valuation valuation
 
unsigned long int _refCounter
 
+

Constructor & Destructor Documentation

+ +

◆ _GSDD() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_GSDD::_GSDD (int var,
int cpt = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ _GSDD() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
_GSDD::_GSDD (int var,
GSDD::Valuation val,
int cpt = 0 
)
+
+inline
+
+ +

References valsorter(), and valuation.

+ +
+
+ +

◆ ~_GSDD()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GSDD::~_GSDD ()
+
+inlinevirtual
+
+ +

References valuation.

+ +
+
+ +

◆ _GSDD() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
_GSDD::_GSDD (const _GSDDg)
+
+inline
+
+ +

References valuation.

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GSDD* _GSDD::clone () const
+
+inline
+
+ +

References _GSDD().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GSDD::deref () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by SDD::operator=(), and SDD::~SDD().

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _GSDD::hash () const
+
+inline
+
+ +

References valuation, and variable.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GSDD::is_marked () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by mark().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + + + +
void _GSDD::mark () const
+
+ +

References is_marked(), set_mark(), and valuation.

+ +

Referenced by GSDD::mark(), and mark_if_refd().

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GSDD::mark_if_refd () const
+
+inline
+
+ +

References mark(), and refCounter().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GSDD::operator< (const _GSDDg) const
+
+inline
+
+ +

References valuation, and variable.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GSDD::operator== (const _GSDDg) const
+
+inline
+
+ +

References valuation, and variable.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GSDD::ref () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by SDD::operator=(), and SDD::SDD().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GSDD::refCounter () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by mark_if_refd(), GSDD::refCounter(), and SDD::~SDD().

+ +
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GSDD::set_mark (bool val) const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by GSDD::garbage(), and mark().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
unsigned long int _GSDD::_refCounter
+
+mutable
+
+ +

Referenced by deref(), is_marked(), ref(), refCounter(), and set_mark().

+ +
+
+ +

◆ valuation

+ +
+
+ + + + +
GSDD::Valuation _GSDD::valuation
+
+
+ +

◆ variable

+ +
+
+ + + + +
const int _GSDD::variable
+
+ +

Referenced by hash(), operator<(), operator==(), and GSDD::variable().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GSDD__coll__graph.map b/libddd.html/class__GSDD__coll__graph.map new file mode 100644 index 000000000..4a56e4b76 --- /dev/null +++ b/libddd.html/class__GSDD__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__GSDD__coll__graph.md5 b/libddd.html/class__GSDD__coll__graph.md5 new file mode 100644 index 000000000..816d3a0e3 --- /dev/null +++ b/libddd.html/class__GSDD__coll__graph.md5 @@ -0,0 +1 @@ +bc7f5bca58686cc53d826e8affe0597c \ No newline at end of file diff --git a/libddd.html/class__GSDD__coll__graph.png b/libddd.html/class__GSDD__coll__graph.png new file mode 100644 index 000000000..3dd4f9ac2 Binary files /dev/null and b/libddd.html/class__GSDD__coll__graph.png differ diff --git a/libddd.html/class__GShom-members.html b/libddd.html/class__GShom-members.html new file mode 100644 index 000000000..6e9e08b3e --- /dev/null +++ b/libddd.html/class__GShom-members.html @@ -0,0 +1,83 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_GShom Member List
+
+
+ +

This is the complete list of members for _GShom, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() const =0_GShompure virtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &) const =0_GShompure virtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
GShom class_GShomfriend
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() const =0_GShompure virtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
mark() const_GShominlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) const =0_GShompure virtual
print(std::ostream &os) const =0_GShompure virtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
Shom class_GShomfriend
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GShom.html b/libddd.html/class__GShom.html new file mode 100644 index 000000000..2774da8a0 --- /dev/null +++ b/libddd.html/class__GShom.html @@ -0,0 +1,997 @@ + + + + + + + +DDD: _GShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
_GShom Class Referenceabstract
+
+
+ +

The concrete data class for Homomorphisms. + More...

+ +

#include <SHom.h>

+
+Inheritance diagram for _GShom:
+
+
Inheritance graph
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+Collaboration diagram for _GShom:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
 _GShom (int ref=0)
 Constructor. More...
 
virtual ~_GShom ()
 Destructor. More...
 
virtual bool operator== (const _GShom &h) const =0
 Comparator. More...
 
virtual size_t hash () const =0
 Hash key computation. More...
 
virtual _GShomclone () const =0
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
virtual GSDD eval (const GSDD &) const =0
 The computation function responsible for evaluation over a node. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual void print (std::ostream &os) const =0
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+ + + + + + + +

+Friends

class GShom
 open access to container class GShom. More...
 
class Shom
 open access to container class Shom. More...
 
+

Detailed Description

+

The concrete data class for Homomorphisms.

+

Users should not use this (private) class directly, but may use it indirectly by deriving user homomorphisms from the StrongShom class.

+

Constructor & Destructor Documentation

+ +

◆ _GShom()

+ +
+
+ + + + + +
+ + + + + + + + +
_GShom::_GShom (int ref = 0)
+
+inline
+
+ +

Constructor.

+

Note this class is abstract, so this is only used in initialization list of derived classes constructors (hard coded operations and StrongShom).

+ +
+
+ +

◆ ~_GShom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GShom::~_GShom ()
+
+inlinevirtual
+
+ +

Destructor.

+

Default behavior.

Todo:
Remove this declaration ? compiler generated version sufficient.
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _GShom* _GShom::clone () const
+
+pure virtual
+
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtual
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GSDD _GShom::eval (const GSDD) const
+
+pure virtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implemented in sns::MLShomAdapter, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, sns::Identity, and StrongShom.

+ +

Referenced by eval_skip().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+private
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), eval(), GShom::id, immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestatic
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _GShom::hash () const
+
+pure virtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implemented in sns::MLShomAdapter, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtual
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtual
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GShom::mark () const
+
+inlinevirtual
+
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inline
+
+ +

References refCounter(), and set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::operator== (const _GShomh) const
+
+pure virtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implemented in sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::MLShomAdapter, StrongShom, sns::Fixpoint, sns::HomMinus, sns::Minus, sns::RightConcat, sns::LeftConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void _GShom::print (std::ostream & os) const
+
+pure virtual
+
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inline
+
+ +

References _refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inline
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inline
+
+ +

References _refCounter, is_marked(), and mark().

+ +

Referenced by GShom::garbage(), GShom::mark(), and mark_if_refd().

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by eval_skip(), has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ GShom

+ +
+
+ + + + + +
+ + + + +
friend class GShom
+
+friend
+
+
+ +

◆ Shom

+ +
+
+ + + + + +
+ + + + +
friend class Shom
+
+friend
+
+ +

open access to container class Shom.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivate
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by deref(), is_marked(), ref(), refCounter(), and set_mark().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__GShom__coll__graph.map b/libddd.html/class__GShom__coll__graph.map new file mode 100644 index 000000000..7222bf25a --- /dev/null +++ b/libddd.html/class__GShom__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__GShom__coll__graph.md5 b/libddd.html/class__GShom__coll__graph.md5 new file mode 100644 index 000000000..1d38d2f85 --- /dev/null +++ b/libddd.html/class__GShom__coll__graph.md5 @@ -0,0 +1 @@ +5e0313b1971f6ed29c388fd074be1d9c \ No newline at end of file diff --git a/libddd.html/class__GShom__coll__graph.png b/libddd.html/class__GShom__coll__graph.png new file mode 100644 index 000000000..ce28430de Binary files /dev/null and b/libddd.html/class__GShom__coll__graph.png differ diff --git a/libddd.html/class__GShom__inherit__graph.map b/libddd.html/class__GShom__inherit__graph.map new file mode 100644 index 000000000..f2cbc509a --- /dev/null +++ b/libddd.html/class__GShom__inherit__graph.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/class__GShom__inherit__graph.md5 b/libddd.html/class__GShom__inherit__graph.md5 new file mode 100644 index 000000000..5130f2b10 --- /dev/null +++ b/libddd.html/class__GShom__inherit__graph.md5 @@ -0,0 +1 @@ +b24e44126934954a7f517a09f692d9ce \ No newline at end of file diff --git a/libddd.html/class__GShom__inherit__graph.png b/libddd.html/class__GShom__inherit__graph.png new file mode 100644 index 000000000..3a1de82ea Binary files /dev/null and b/libddd.html/class__GShom__inherit__graph.png differ diff --git a/libddd.html/class__MLHom-members.html b/libddd.html/class__MLHom-members.html new file mode 100644 index 000000000..5d14811a3 --- /dev/null +++ b/libddd.html/class__MLHom-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_MLHom Member List
+
+
+ +

This is the complete list of members for _MLHom, including all inherited members.

+ + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() const =0_MLHompure virtual
eval(const GDDD &) const =0_MLHompure virtual
hash() const =0_MLHompure virtual
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
MLHom class_MLHomfriend
operator==(const _MLHom &h) const =0_MLHompure virtual
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__MLHom.html b/libddd.html/class__MLHom.html new file mode 100644 index 000000000..0566aa3c0 --- /dev/null +++ b/libddd.html/class__MLHom.html @@ -0,0 +1,431 @@ + + + + + + + +DDD: _MLHom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
_MLHom Class Referenceabstract
+
+
+ +

#include <MLHom.h>

+
+Inheritance diagram for _MLHom:
+
+
Inheritance graph
+ + + + + + + + + +
+
+Collaboration diagram for _MLHom:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _MLHom (int ref=0)
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
virtual ~_MLHom ()
 Virtual Destructor. More...
 
virtual HomNodeMap eval (const GDDD &) const =0
 
virtual size_t hash () const =0
 unique table trivia More...
 
virtual bool operator== (const _MLHom &h) const =0
 
virtual _MLHomclone () const =0
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+ + + + +

+Friends

class MLHom
 open access to container class MLHom. More...
 
+

Constructor & Destructor Documentation

+ +

◆ _MLHom()

+ +
+
+ + + + + +
+ + + + + + + + +
_MLHom::_MLHom (int ref = 0)
+
+inline
+
+ +
+
+ +

◆ ~_MLHom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLHom::~_MLHom ()
+
+inlinevirtual
+
+ +

Virtual Destructor.

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLHom* _MLHom::clone () const
+
+pure virtual
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual HomNodeMap _MLHom::eval (const GDDD) const
+
+pure virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _MLHom::hash () const
+
+pure virtual
+
+ +

unique table trivia

+ +

Implemented in nsMLHom::LeftConcat, nsMLHom::ConstantUp, nsMLHom::GHomAdapter, nsMLHom::Add, and nsMLHom::Identity.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _MLHom::operator== (const _MLHomh) const
+
+pure virtual
+
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtual
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ MLHom

+ +
+
+ + + + + +
+ + + + +
friend class MLHom
+
+friend
+
+ +

open access to container class MLHom.

+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivate
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivate
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__MLHom__coll__graph.map b/libddd.html/class__MLHom__coll__graph.map new file mode 100644 index 000000000..0953fbe3d --- /dev/null +++ b/libddd.html/class__MLHom__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__MLHom__coll__graph.md5 b/libddd.html/class__MLHom__coll__graph.md5 new file mode 100644 index 000000000..d572f5bb1 --- /dev/null +++ b/libddd.html/class__MLHom__coll__graph.md5 @@ -0,0 +1 @@ +0b913d972203ba346aa26308aca0c2fd \ No newline at end of file diff --git a/libddd.html/class__MLHom__coll__graph.png b/libddd.html/class__MLHom__coll__graph.png new file mode 100644 index 000000000..865f240db Binary files /dev/null and b/libddd.html/class__MLHom__coll__graph.png differ diff --git a/libddd.html/class__MLHom__inherit__graph.map b/libddd.html/class__MLHom__inherit__graph.map new file mode 100644 index 000000000..bb9374e84 --- /dev/null +++ b/libddd.html/class__MLHom__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/class__MLHom__inherit__graph.md5 b/libddd.html/class__MLHom__inherit__graph.md5 new file mode 100644 index 000000000..77a4cc0ec --- /dev/null +++ b/libddd.html/class__MLHom__inherit__graph.md5 @@ -0,0 +1 @@ +abcbcff626b0f3462fb3bcddbd63a7b4 \ No newline at end of file diff --git a/libddd.html/class__MLHom__inherit__graph.png b/libddd.html/class__MLHom__inherit__graph.png new file mode 100644 index 000000000..d874998d0 Binary files /dev/null and b/libddd.html/class__MLHom__inherit__graph.png differ diff --git a/libddd.html/class__MLShom-members.html b/libddd.html/class__MLShom-members.html new file mode 100644 index 000000000..a239682b1 --- /dev/null +++ b/libddd.html/class__MLShom-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_MLShom Member List
+
+
+ +

This is the complete list of members for _MLShom, including all inherited members.

+ + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() const =0_MLShompure virtual
eval(const GSDD &) const =0_MLShompure virtual
hash() const =0_MLShompure virtual
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
MLShom class_MLShomfriend
operator==(const _MLShom &h) const =0_MLShompure virtual
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__MLShom.html b/libddd.html/class__MLShom.html new file mode 100644 index 000000000..88d254b9e --- /dev/null +++ b/libddd.html/class__MLShom.html @@ -0,0 +1,431 @@ + + + + + + + +DDD: _MLShom Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
_MLShom Class Referenceabstract
+
+
+ +

#include <MLSHom.h>

+
+Inheritance diagram for _MLShom:
+
+
Inheritance graph
+ + + + + + + + + +
+
+Collaboration diagram for _MLShom:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _MLShom (int ref=0)
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
virtual ~_MLShom ()
 Virtual Destructor. More...
 
virtual SHomNodeMap eval (const GSDD &) const =0
 
virtual size_t hash () const =0
 unique table trivia More...
 
virtual bool operator== (const _MLShom &h) const =0
 
virtual _MLShomclone () const =0
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+ + + + +

+Friends

class MLShom
 open access to container class MLHom. More...
 
+

Constructor & Destructor Documentation

+ +

◆ _MLShom()

+ +
+
+ + + + + +
+ + + + + + + + +
_MLShom::_MLShom (int ref = 0)
+
+inline
+
+ +
+
+ +

◆ ~_MLShom()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLShom::~_MLShom ()
+
+inlinevirtual
+
+ +

Virtual Destructor.

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _MLShom* _MLShom::clone () const
+
+pure virtual
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual SHomNodeMap _MLShom::eval (const GSDD) const
+
+pure virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _MLShom::hash () const
+
+pure virtual
+
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _MLShom::operator== (const _MLShomh) const
+
+pure virtual
+
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtual
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ MLShom

+ +
+
+ + + + + +
+ + + + +
friend class MLShom
+
+friend
+
+ +

open access to container class MLHom.

+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivate
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivate
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__MLShom__coll__graph.map b/libddd.html/class__MLShom__coll__graph.map new file mode 100644 index 000000000..686f700c3 --- /dev/null +++ b/libddd.html/class__MLShom__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/class__MLShom__coll__graph.md5 b/libddd.html/class__MLShom__coll__graph.md5 new file mode 100644 index 000000000..8aed60e8f --- /dev/null +++ b/libddd.html/class__MLShom__coll__graph.md5 @@ -0,0 +1 @@ +3929460ef060ad8f83aa25259a46a362 \ No newline at end of file diff --git a/libddd.html/class__MLShom__coll__graph.png b/libddd.html/class__MLShom__coll__graph.png new file mode 100644 index 000000000..eb59f43e1 Binary files /dev/null and b/libddd.html/class__MLShom__coll__graph.png differ diff --git a/libddd.html/class__MLShom__inherit__graph.map b/libddd.html/class__MLShom__inherit__graph.map new file mode 100644 index 000000000..7113cdf08 --- /dev/null +++ b/libddd.html/class__MLShom__inherit__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/class__MLShom__inherit__graph.md5 b/libddd.html/class__MLShom__inherit__graph.md5 new file mode 100644 index 000000000..c7c3ad553 --- /dev/null +++ b/libddd.html/class__MLShom__inherit__graph.md5 @@ -0,0 +1 @@ +6043f23553117e5e6a8a8573fe4f5221 \ No newline at end of file diff --git a/libddd.html/class__MLShom__inherit__graph.png b/libddd.html/class__MLShom__inherit__graph.png new file mode 100644 index 000000000..fafa7cbf5 Binary files /dev/null and b/libddd.html/class__MLShom__inherit__graph.png differ diff --git a/libddd.html/class__SDED-members.html b/libddd.html/class__SDED-members.html new file mode 100644 index 000000000..fd7c37664 --- /dev/null +++ b/libddd.html/class__SDED-members.html @@ -0,0 +1,62 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_SDED Member List
+
+
+ +

This is the complete list of members for _SDED, including all inherited members.

+ + + + + + + +
clone() const =0_SDEDpure virtual
eval() const =0_SDEDpure virtual
hash() const =0_SDEDpure virtual
operator==(const _SDED &) const =0_SDEDpure virtual
result_SDED
~_SDED()_SDEDinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED.html b/libddd.html/class__SDED.html new file mode 100644 index 000000000..9e2752b79 --- /dev/null +++ b/libddd.html/class__SDED.html @@ -0,0 +1,253 @@ + + + + + + + +DDD: _SDED Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Public Attributes | +List of all members
+
+
_SDED Class Referenceabstract
+
+
+
+Inheritance diagram for _SDED:
+
+
Inheritance graph
+ + + + + + + +
+
+Collaboration diagram for _SDED:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

virtual ~_SDED ()
 
virtual size_t hash () const =0
 
virtual bool operator== (const _SDED &) const =0
 
virtual _SDEDclone () const =0
 
virtual GSDD eval () const =0
 
+ + + +

+Public Attributes

GSDD result
 
+

Constructor & Destructor Documentation

+ +

◆ ~_SDED()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _SDED::~_SDED ()
+
+inlinevirtual
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
virtual _SDED* _SDED::clone () const
+
+pure virtual
+
+ +

Implemented in _SDED_Concat, _SDED_Minus, _SDED_Mult, and _SDED_Add.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
virtual GSDD _SDED::eval () const
+
+pure virtual
+
+ +

Implemented in _SDED_Concat, _SDED_Minus, _SDED_Mult, and _SDED_Add.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
virtual size_t _SDED::hash () const
+
+pure virtual
+
+ +

Implemented in _SDED_Concat, _SDED_Minus, _SDED_Mult, and _SDED_Add.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _SDED::operator== (const _SDED) const
+
+pure virtual
+
+ +

Implemented in _SDED_Concat, _SDED_Minus, _SDED_Mult, and _SDED_Add.

+ +
+
+

Member Data Documentation

+ +

◆ result

+ +
+
+ + + + +
GSDD _SDED::result
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Add-members.html b/libddd.html/class__SDED__Add-members.html new file mode 100644 index 000000000..fc8fc49d8 --- /dev/null +++ b/libddd.html/class__SDED__Add-members.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_SDED_Add Member List
+
+
+ +

This is the complete list of members for _SDED_Add, including all inherited members.

+ + + + + + + + + + + + + + +
_SDED_Add(const d3::set< GSDD >::type &d)_SDED_Addinlineprivate
clone() const_SDED_Addinlinevirtual
create(const GSDD &g1, const GSDD &g2)_SDED_Addstatic
create(const d3::set< GSDD >::type &d)_SDED_Addstatic
eval() const_SDED_Addvirtual
hash() const_SDED_Addvirtual
operator==(const _SDED &e) const_SDED_Addvirtual
parameters_SDED_Addprivate
parameters_it typedef_SDED_Addprivate
parameters_t typedef_SDED_Addprivate
result_SDED
~_SDED()_SDEDinlinevirtual
~_SDED_Add()_SDED_Addinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Add.html b/libddd.html/class__SDED__Add.html new file mode 100644 index 000000000..c1e69ea3b --- /dev/null +++ b/libddd.html/class__SDED__Add.html @@ -0,0 +1,460 @@ + + + + + + + +DDD: _SDED_Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Types | +Private Member Functions | +Private Attributes | +List of all members
+
+
_SDED_Add Class Reference
+
+
+
+Inheritance diagram for _SDED_Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _SDED_Add:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _SDED &e) const
 
_SDEDclone () const
 
GSDD eval () const
 
 ~_SDED_Add ()
 
+ + + + + +

+Static Public Member Functions

static GSDD create (const GSDD &g1, const GSDD &g2)
 
static GSDD create (const d3::set< GSDD >::type &d)
 
+ + + +

+Public Attributes

GSDD result
 
+ + + + + +

+Private Types

typedef std::vector< GSDDparameters_t
 
typedef parameters_t::const_iterator parameters_it
 
+ + + +

+Private Member Functions

 _SDED_Add (const d3::set< GSDD >::type &d)
 
+ + + +

+Private Attributes

parameters_t parameters
 
+

Member Typedef Documentation

+ +

◆ parameters_it

+ +
+
+ + + + + +
+ + + + +
typedef parameters_t::const_iterator _SDED_Add::parameters_it
+
+private
+
+ +
+
+ +

◆ parameters_t

+ +
+
+ + + + + +
+ + + + +
typedef std::vector<GSDD> _SDED_Add::parameters_t
+
+private
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ _SDED_Add()

+ +
+
+ + + + + +
+ + + + + + + + +
_SDED_Add::_SDED_Add (const d3::set< GSDD >::type & d)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_SDED_Add()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED_Add::~_SDED_Add ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED* _SDED_Add::clone () const
+
+inlinevirtual
+
+ +

Implements _SDED.

+ +

References _SDED_Add().

+ +
+
+ +

◆ create() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _SDED_Add::create (const d3::set< GSDD >::type & d)
+
+static
+
+
+ +

◆ create() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GSDD _SDED_Add::create (const GSDDg1,
const GSDDg2 
)
+
+static
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD _SDED_Add::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _SDED_Add::hash () const
+
+virtual
+
+ +

Implements _SDED.

+ +

References parameters.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _SDED_Add::operator== (const _SDEDe) const
+
+virtual
+
+ +

Implements _SDED.

+ +

References parameters.

+ +
+
+

Member Data Documentation

+ +

◆ parameters

+ +
+
+ + + + + +
+ + + + +
parameters_t _SDED_Add::parameters
+
+private
+
+ +

Referenced by create(), eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Add__coll__graph.map b/libddd.html/class__SDED__Add__coll__graph.map new file mode 100644 index 000000000..55ddd3dbb --- /dev/null +++ b/libddd.html/class__SDED__Add__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__SDED__Add__coll__graph.md5 b/libddd.html/class__SDED__Add__coll__graph.md5 new file mode 100644 index 000000000..0cca0e67a --- /dev/null +++ b/libddd.html/class__SDED__Add__coll__graph.md5 @@ -0,0 +1 @@ +7b170c44d8ec4e9bc08329e77bf1b18c \ No newline at end of file diff --git a/libddd.html/class__SDED__Add__coll__graph.png b/libddd.html/class__SDED__Add__coll__graph.png new file mode 100644 index 000000000..119aeb524 Binary files /dev/null and b/libddd.html/class__SDED__Add__coll__graph.png differ diff --git a/libddd.html/class__SDED__Add__inherit__graph.map b/libddd.html/class__SDED__Add__inherit__graph.map new file mode 100644 index 000000000..3a3efa751 --- /dev/null +++ b/libddd.html/class__SDED__Add__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__SDED__Add__inherit__graph.md5 b/libddd.html/class__SDED__Add__inherit__graph.md5 new file mode 100644 index 000000000..b8a715570 --- /dev/null +++ b/libddd.html/class__SDED__Add__inherit__graph.md5 @@ -0,0 +1 @@ +e2fed99c5d54cf58d80c1eb1700ff3a8 \ No newline at end of file diff --git a/libddd.html/class__SDED__Add__inherit__graph.png b/libddd.html/class__SDED__Add__inherit__graph.png new file mode 100644 index 000000000..e64c54dec Binary files /dev/null and b/libddd.html/class__SDED__Add__inherit__graph.png differ diff --git a/libddd.html/class__SDED__Concat-members.html b/libddd.html/class__SDED__Concat-members.html new file mode 100644 index 000000000..e4e77799d --- /dev/null +++ b/libddd.html/class__SDED__Concat-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_SDED_Concat Member List
+
+
+ +

This is the complete list of members for _SDED_Concat, including all inherited members.

+ + + + + + + + + + + + +
_SDED_Concat(const GSDD &g1, const GSDD &g2)_SDED_Concatinlineprivate
clone() const_SDED_Concatinlinevirtual
create(const GSDD &g1, const GSDD &g2)_SDED_Concatstatic
eval() const_SDED_Concatvirtual
hash() const_SDED_Concatvirtual
operator==(const _SDED &e) const_SDED_Concatvirtual
parameter1_SDED_Concatprivate
parameter2_SDED_Concatprivate
result_SDED
~_SDED()_SDEDinlinevirtual
~_SDED_Concat()_SDED_Concatinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Concat.html b/libddd.html/class__SDED__Concat.html new file mode 100644 index 000000000..b07fc0e75 --- /dev/null +++ b/libddd.html/class__SDED__Concat.html @@ -0,0 +1,413 @@ + + + + + + + +DDD: _SDED_Concat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_SDED_Concat Class Reference
+
+
+
+Inheritance diagram for _SDED_Concat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _SDED_Concat:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _SDED &e) const
 
_SDEDclone () const
 
GSDD eval () const
 
 ~_SDED_Concat ()
 
+ + + +

+Static Public Member Functions

static GSDD create (const GSDD &g1, const GSDD &g2)
 
+ + + +

+Public Attributes

GSDD result
 
+ + + +

+Private Member Functions

 _SDED_Concat (const GSDD &g1, const GSDD &g2)
 
+ + + + + +

+Private Attributes

GSDD parameter1
 
GSDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _SDED_Concat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_SDED_Concat::_SDED_Concat (const GSDDg1,
const GSDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_SDED_Concat()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED_Concat::~_SDED_Concat ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED* _SDED_Concat::clone () const
+
+inlinevirtual
+
+ +

Implements _SDED.

+ +

References _SDED_Concat().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GSDD _SDED_Concat::create (const GSDDg1,
const GSDDg2 
)
+
+static
+
+ +

References _SDED_Concat(), compute(), GSDD::null, GSDD::one, and GSDD::top.

+ +

Referenced by operator^().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD _SDED_Concat::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _SDED_Concat::hash () const
+
+virtual
+
+ +

Implements _SDED.

+ +

References GSDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _SDED_Concat::operator== (const _SDEDe) const
+
+virtual
+
+ +

Implements _SDED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Concat::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Concat::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Concat__coll__graph.map b/libddd.html/class__SDED__Concat__coll__graph.map new file mode 100644 index 000000000..dca907f1e --- /dev/null +++ b/libddd.html/class__SDED__Concat__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__SDED__Concat__coll__graph.md5 b/libddd.html/class__SDED__Concat__coll__graph.md5 new file mode 100644 index 000000000..6825ca0c6 --- /dev/null +++ b/libddd.html/class__SDED__Concat__coll__graph.md5 @@ -0,0 +1 @@ +d3c3719c848b8a2309c7e87b02b75b14 \ No newline at end of file diff --git a/libddd.html/class__SDED__Concat__coll__graph.png b/libddd.html/class__SDED__Concat__coll__graph.png new file mode 100644 index 000000000..f6c38bb84 Binary files /dev/null and b/libddd.html/class__SDED__Concat__coll__graph.png differ diff --git a/libddd.html/class__SDED__Concat__inherit__graph.map b/libddd.html/class__SDED__Concat__inherit__graph.map new file mode 100644 index 000000000..23458606c --- /dev/null +++ b/libddd.html/class__SDED__Concat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__SDED__Concat__inherit__graph.md5 b/libddd.html/class__SDED__Concat__inherit__graph.md5 new file mode 100644 index 000000000..a71177053 --- /dev/null +++ b/libddd.html/class__SDED__Concat__inherit__graph.md5 @@ -0,0 +1 @@ +f04f2274203f2442cfc35da88817a4ad \ No newline at end of file diff --git a/libddd.html/class__SDED__Concat__inherit__graph.png b/libddd.html/class__SDED__Concat__inherit__graph.png new file mode 100644 index 000000000..6fde5be7d Binary files /dev/null and b/libddd.html/class__SDED__Concat__inherit__graph.png differ diff --git a/libddd.html/class__SDED__Minus-members.html b/libddd.html/class__SDED__Minus-members.html new file mode 100644 index 000000000..f1c80566f --- /dev/null +++ b/libddd.html/class__SDED__Minus-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_SDED_Minus Member List
+
+
+ +

This is the complete list of members for _SDED_Minus, including all inherited members.

+ + + + + + + + + + + + +
_SDED_Minus(const GSDD &g1, const GSDD &g2)_SDED_Minusinlineprivate
clone() const_SDED_Minusinlinevirtual
create(const GSDD &g1, const GSDD &g2)_SDED_Minusstatic
eval() const_SDED_Minusvirtual
hash() const_SDED_Minusvirtual
operator==(const _SDED &e) const_SDED_Minusvirtual
parameter1_SDED_Minusprivate
parameter2_SDED_Minusprivate
result_SDED
~_SDED()_SDEDinlinevirtual
~_SDED_Minus()_SDED_Minusinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Minus.html b/libddd.html/class__SDED__Minus.html new file mode 100644 index 000000000..1831641da --- /dev/null +++ b/libddd.html/class__SDED__Minus.html @@ -0,0 +1,413 @@ + + + + + + + +DDD: _SDED_Minus Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_SDED_Minus Class Reference
+
+
+
+Inheritance diagram for _SDED_Minus:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _SDED_Minus:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _SDED &e) const
 
_SDEDclone () const
 
GSDD eval () const
 
 ~_SDED_Minus ()
 
+ + + +

+Static Public Member Functions

static GSDD create (const GSDD &g1, const GSDD &g2)
 
+ + + +

+Public Attributes

GSDD result
 
+ + + +

+Private Member Functions

 _SDED_Minus (const GSDD &g1, const GSDD &g2)
 
+ + + + + +

+Private Attributes

GSDD parameter1
 
GSDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _SDED_Minus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_SDED_Minus::_SDED_Minus (const GSDDg1,
const GSDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_SDED_Minus()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED_Minus::~_SDED_Minus ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED* _SDED_Minus::clone () const
+
+inlinevirtual
+
+ +

Implements _SDED.

+ +

References _SDED_Minus().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GSDD _SDED_Minus::create (const GSDDg1,
const GSDDg2 
)
+
+static
+
+ +

References _SDED_Minus(), compute(), GSDD::null, GSDD::one, GSDD::top, and GSDD::variable().

+ +

Referenced by operator-().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD _SDED_Minus::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _SDED_Minus::hash () const
+
+virtual
+
+ +

Implements _SDED.

+ +

References GSDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _SDED_Minus::operator== (const _SDEDe) const
+
+virtual
+
+ +

Implements _SDED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Minus::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Minus::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Minus__coll__graph.map b/libddd.html/class__SDED__Minus__coll__graph.map new file mode 100644 index 000000000..540b9960e --- /dev/null +++ b/libddd.html/class__SDED__Minus__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__SDED__Minus__coll__graph.md5 b/libddd.html/class__SDED__Minus__coll__graph.md5 new file mode 100644 index 000000000..0d973bb40 --- /dev/null +++ b/libddd.html/class__SDED__Minus__coll__graph.md5 @@ -0,0 +1 @@ +3503d561d598bc193821ab2d317f1220 \ No newline at end of file diff --git a/libddd.html/class__SDED__Minus__coll__graph.png b/libddd.html/class__SDED__Minus__coll__graph.png new file mode 100644 index 000000000..10baf43ca Binary files /dev/null and b/libddd.html/class__SDED__Minus__coll__graph.png differ diff --git a/libddd.html/class__SDED__Minus__inherit__graph.map b/libddd.html/class__SDED__Minus__inherit__graph.map new file mode 100644 index 000000000..7bfb5f045 --- /dev/null +++ b/libddd.html/class__SDED__Minus__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__SDED__Minus__inherit__graph.md5 b/libddd.html/class__SDED__Minus__inherit__graph.md5 new file mode 100644 index 000000000..cf9c549e7 --- /dev/null +++ b/libddd.html/class__SDED__Minus__inherit__graph.md5 @@ -0,0 +1 @@ +21b69b818e36f20e1ee04bc9565ca447 \ No newline at end of file diff --git a/libddd.html/class__SDED__Minus__inherit__graph.png b/libddd.html/class__SDED__Minus__inherit__graph.png new file mode 100644 index 000000000..74394ed5b Binary files /dev/null and b/libddd.html/class__SDED__Minus__inherit__graph.png differ diff --git a/libddd.html/class__SDED__Mult-members.html b/libddd.html/class__SDED__Mult-members.html new file mode 100644 index 000000000..6672fe103 --- /dev/null +++ b/libddd.html/class__SDED__Mult-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_SDED_Mult Member List
+
+
+ +

This is the complete list of members for _SDED_Mult, including all inherited members.

+ + + + + + + + + + + + +
_SDED_Mult(const GSDD &g1, const GSDD &g2)_SDED_Multinlineprivate
clone() const_SDED_Multinlinevirtual
create(const GSDD &g1, const GSDD &g2)_SDED_Multstatic
eval() const_SDED_Multvirtual
hash() const_SDED_Multvirtual
operator==(const _SDED &e) const_SDED_Multvirtual
parameter1_SDED_Multprivate
parameter2_SDED_Multprivate
result_SDED
~_SDED()_SDEDinlinevirtual
~_SDED_Mult()_SDED_Multinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Mult.html b/libddd.html/class__SDED__Mult.html new file mode 100644 index 000000000..7f9235a6d --- /dev/null +++ b/libddd.html/class__SDED__Mult.html @@ -0,0 +1,413 @@ + + + + + + + +DDD: _SDED_Mult Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
_SDED_Mult Class Reference
+
+
+
+Inheritance diagram for _SDED_Mult:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for _SDED_Mult:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

size_t hash () const
 
bool operator== (const _SDED &e) const
 
_SDEDclone () const
 
GSDD eval () const
 
 ~_SDED_Mult ()
 
+ + + +

+Static Public Member Functions

static GSDD create (const GSDD &g1, const GSDD &g2)
 
+ + + +

+Public Attributes

GSDD result
 
+ + + +

+Private Member Functions

 _SDED_Mult (const GSDD &g1, const GSDD &g2)
 
+ + + + + +

+Private Attributes

GSDD parameter1
 
GSDD parameter2
 
+

Constructor & Destructor Documentation

+ +

◆ _SDED_Mult()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_SDED_Mult::_SDED_Mult (const GSDDg1,
const GSDDg2 
)
+
+inlineprivate
+
+ +

Referenced by clone(), and create().

+ +
+
+ +

◆ ~_SDED_Mult()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED_Mult::~_SDED_Mult ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_SDED* _SDED_Mult::clone () const
+
+inlinevirtual
+
+ +

Implements _SDED.

+ +

References _SDED_Mult().

+ +
+
+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GSDD _SDED_Mult::create (const GSDDg1,
const GSDDg2 
)
+
+static
+
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + +
GSDD _SDED_Mult::eval () const
+
+virtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _SDED_Mult::hash () const
+
+virtual
+
+ +

Implements _SDED.

+ +

References GSDD::hash(), parameter1, and parameter2.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _SDED_Mult::operator== (const _SDEDe) const
+
+virtual
+
+ +

Implements _SDED.

+ +

References parameter1, and parameter2.

+ +
+
+

Member Data Documentation

+ +

◆ parameter1

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Mult::parameter1
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ parameter2

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED_Mult::parameter2
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ result

+ +
+
+ + + + + +
+ + + + +
GSDD _SDED::result
+
+inherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__SDED__Mult__coll__graph.map b/libddd.html/class__SDED__Mult__coll__graph.map new file mode 100644 index 000000000..fed60cf31 --- /dev/null +++ b/libddd.html/class__SDED__Mult__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__SDED__Mult__coll__graph.md5 b/libddd.html/class__SDED__Mult__coll__graph.md5 new file mode 100644 index 000000000..71f098988 --- /dev/null +++ b/libddd.html/class__SDED__Mult__coll__graph.md5 @@ -0,0 +1 @@ +d2af8dd843e8d66e5b990cedaa45a5c7 \ No newline at end of file diff --git a/libddd.html/class__SDED__Mult__coll__graph.png b/libddd.html/class__SDED__Mult__coll__graph.png new file mode 100644 index 000000000..6154fb5eb Binary files /dev/null and b/libddd.html/class__SDED__Mult__coll__graph.png differ diff --git a/libddd.html/class__SDED__Mult__inherit__graph.map b/libddd.html/class__SDED__Mult__inherit__graph.map new file mode 100644 index 000000000..17b942d7c --- /dev/null +++ b/libddd.html/class__SDED__Mult__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/class__SDED__Mult__inherit__graph.md5 b/libddd.html/class__SDED__Mult__inherit__graph.md5 new file mode 100644 index 000000000..1c220da5a --- /dev/null +++ b/libddd.html/class__SDED__Mult__inherit__graph.md5 @@ -0,0 +1 @@ +7968ebf5d0901e5ac48dee4201859a92 \ No newline at end of file diff --git a/libddd.html/class__SDED__Mult__inherit__graph.png b/libddd.html/class__SDED__Mult__inherit__graph.png new file mode 100644 index 000000000..ed3b06ec9 Binary files /dev/null and b/libddd.html/class__SDED__Mult__inherit__graph.png differ diff --git a/libddd.html/class__SDED__coll__graph.map b/libddd.html/class__SDED__coll__graph.map new file mode 100644 index 000000000..92b765cce --- /dev/null +++ b/libddd.html/class__SDED__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/class__SDED__coll__graph.md5 b/libddd.html/class__SDED__coll__graph.md5 new file mode 100644 index 000000000..9d001d252 --- /dev/null +++ b/libddd.html/class__SDED__coll__graph.md5 @@ -0,0 +1 @@ +b2d7dfccbf3e3862c8d0205c98b8eebf \ No newline at end of file diff --git a/libddd.html/class__SDED__coll__graph.png b/libddd.html/class__SDED__coll__graph.png new file mode 100644 index 000000000..bae0a6ca9 Binary files /dev/null and b/libddd.html/class__SDED__coll__graph.png differ diff --git a/libddd.html/class__SDED__inherit__graph.map b/libddd.html/class__SDED__inherit__graph.map new file mode 100644 index 000000000..fb9f42ab8 --- /dev/null +++ b/libddd.html/class__SDED__inherit__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/class__SDED__inherit__graph.md5 b/libddd.html/class__SDED__inherit__graph.md5 new file mode 100644 index 000000000..c9380934a --- /dev/null +++ b/libddd.html/class__SDED__inherit__graph.md5 @@ -0,0 +1 @@ +a1ca0d439fdb0e6fb59e3bb72a9c163f \ No newline at end of file diff --git a/libddd.html/class__SDED__inherit__graph.png b/libddd.html/class__SDED__inherit__graph.png new file mode 100644 index 000000000..1175d6aa1 Binary files /dev/null and b/libddd.html/class__SDED__inherit__graph.png differ diff --git a/libddd.html/class__VarCompState-members.html b/libddd.html/class__VarCompState-members.html new file mode 100644 index 000000000..8fd31f998 --- /dev/null +++ b/libddd.html/class__VarCompState-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_VarCompState Member List
+
+
+ +

This is the complete list of members for _VarCompState, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
_VarCompState(int vr, comparator c, int vl)_VarCompStateinline
clone() const_VarCompStateinlinevirtual
comp_VarCompStateprivate
compose(const GHom &other) const_VarCompStateinlinevirtual
creation_counter_GHomprivate
eval(const GDDD &) constStrongHomvirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_VarCompStateinlinevirtual
has_image(const GDDD &) constStrongHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const_VarCompStateinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_VarCompStateinlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_VarCompStateinlinevirtual
operator<(const _GHom &h) const_GHom
operator==(const StrongHom &s) const_VarCompStateinlinevirtual
StrongHom::operator==(const _GHom &h) constStrongHomvirtual
phi(int vr, int vl) const_VarCompStateinlinevirtual
phiOne() const_VarCompStateinlinevirtual
print(std::ostream &os) const_VarCompStateinlinevirtual
refCounter_GHommutableprivate
skip_variable(int vr) const_VarCompStateinlinevirtual
StrongHom()StrongHominline
val_VarCompStateprivate
var_VarCompStateprivate
~_GHom()_GHominlinevirtual
~StrongHom()StrongHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__VarCompState.html b/libddd.html/class__VarCompState.html new file mode 100644 index 000000000..e305607db --- /dev/null +++ b/libddd.html/class__VarCompState.html @@ -0,0 +1,1039 @@ + + + + + + + +DDD: _VarCompState Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
_VarCompState Class Reference
+
+
+
+Inheritance diagram for _VarCompState:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for _VarCompState:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _VarCompState (int vr, comparator c, int vl)
 
bool skip_variable (int vr) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GDDD phiOne () const
 Evaluation over terminal GDDD::one. More...
 
GHom phi (int vr, int vl) const
 Evaluation over an arbitrary arc of a SDD. More...
 
GHom compose (const GHom &other) const
 
GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
size_t hash () const
 Hash key computation. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void print (std::ostream &os) const
 pretty print More...
 
bool operator== (const StrongHom &s) const
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
_GHomclone () const
 
bool operator== (const _GHom &h) const
 Comparator for unicity table. More...
 
GDDD eval (const GDDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GDDD has_image (const GDDD &) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + + + +

+Private Attributes

int var
 
int val
 
comparator comp
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ _VarCompState()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
_VarCompState::_VarCompState (int vr,
comparator c,
int vl 
)
+
+inline
+
+ +

Referenced by clone(), and negate().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* _VarCompState::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References _VarCompState().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _VarCompState::compose (const GHomother) const
+
+inlinevirtual
+
+ +

Reimplemented from _GHom.

+ +

References comp, _GHom::compose(), EQ, _GHom::get_concret(), LT, GDDD::null, val, and var.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::eval (const GDDDd) const
+
+virtualinherited
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, StrongHom::phi(), StrongHom::phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t _VarCompState::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References var.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _VarCompState::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References comp, val, var, and ddd::wang32_hash().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool _VarCompState::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _VarCompState::negate () const
+
+inlinevirtual
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented from _GHom.

+ +

References _VarCompState(), comp, negateComp(), val, and var.

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongHom::operator== (const _GHomh) const
+
+virtualinherited
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool _VarCompState::operator== (const StrongHomh) const
+
+inlinevirtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +

Implements StrongHom.

+ +

References comp, val, and var.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom _VarCompState::phi (int var,
int val 
) const
+
+inlinevirtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe value labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+
+ +

Implements StrongHom.

+ +

References comp, EQ, GEQ, _GHom::GHom, GT, GHom::id, LEQ, LT, NEQ, GDDD::null, and val.

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _VarCompState::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GDDD::one.

+

Returns a constant DDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GDDD::top

+ +

Reimplemented from StrongHom.

+ +

References GDDD::one.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void _VarCompState::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

pretty print

+ +

Reimplemented from StrongHom.

+ +

References comp, GDDD::getvarName(), to_string(), val, and var.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _VarCompState::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References var.

+ +
+
+

Member Data Documentation

+ +

◆ comp

+ +
+
+ + + + + +
+ + + + +
comparator _VarCompState::comp
+
+private
+
+ +

Referenced by compose(), hash(), negate(), operator==(), phi(), and print().

+ +
+
+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ val

+ +
+
+ + + + + +
+ + + + +
int _VarCompState::val
+
+private
+
+ +

Referenced by compose(), hash(), negate(), operator==(), phi(), and print().

+ +
+
+ +

◆ var

+ +
+
+ + + + + +
+ + + + +
int _VarCompState::var
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__VarCompState__coll__graph.map b/libddd.html/class__VarCompState__coll__graph.map new file mode 100644 index 000000000..d98254c95 --- /dev/null +++ b/libddd.html/class__VarCompState__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__VarCompState__coll__graph.md5 b/libddd.html/class__VarCompState__coll__graph.md5 new file mode 100644 index 000000000..ba9502f6e --- /dev/null +++ b/libddd.html/class__VarCompState__coll__graph.md5 @@ -0,0 +1 @@ +b508738692693f27f23df71fafb9e7dd \ No newline at end of file diff --git a/libddd.html/class__VarCompState__coll__graph.png b/libddd.html/class__VarCompState__coll__graph.png new file mode 100644 index 000000000..0710e6f6a Binary files /dev/null and b/libddd.html/class__VarCompState__coll__graph.png differ diff --git a/libddd.html/class__VarCompState__inherit__graph.map b/libddd.html/class__VarCompState__inherit__graph.map new file mode 100644 index 000000000..d98254c95 --- /dev/null +++ b/libddd.html/class__VarCompState__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__VarCompState__inherit__graph.md5 b/libddd.html/class__VarCompState__inherit__graph.md5 new file mode 100644 index 000000000..ba9502f6e --- /dev/null +++ b/libddd.html/class__VarCompState__inherit__graph.md5 @@ -0,0 +1 @@ +b508738692693f27f23df71fafb9e7dd \ No newline at end of file diff --git a/libddd.html/class__VarCompState__inherit__graph.png b/libddd.html/class__VarCompState__inherit__graph.png new file mode 100644 index 000000000..0710e6f6a Binary files /dev/null and b/libddd.html/class__VarCompState__inherit__graph.png differ diff --git a/libddd.html/class__VarCompVar-members.html b/libddd.html/class__VarCompVar-members.html new file mode 100644 index 000000000..740b67d09 --- /dev/null +++ b/libddd.html/class__VarCompVar-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_VarCompVar Member List
+
+
+ +

This is the complete list of members for _VarCompVar, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
_VarCompVar(int v1, comparator c, int v2)_VarCompVarinline
c_VarCompVarprivate
clone() const_VarCompVarinlinevirtual
compose(const GHom &other) const_VarCompVarinlinevirtual
creation_counter_GHomprivate
eval(const GDDD &) constStrongHomvirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_VarCompVarinlinevirtual
has_image(const GDDD &) constStrongHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const_VarCompVarinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &) const_GHominlinevirtual
is_selector() const_VarCompVarinlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const StrongHom &s) const_VarCompVarinlinevirtual
StrongHom::operator==(const _GHom &h) constStrongHomvirtual
phi(int vr, int vl) const_VarCompVarinlinevirtual
phiOne() const_VarCompVarinlinevirtual
print(std::ostream &os) const_VarCompVarinlinevirtual
refCounter_GHommutableprivate
skip_variable(int vr) const_VarCompVarinlinevirtual
StrongHom()StrongHominline
var1_VarCompVarprivate
var2_VarCompVarprivate
~_GHom()_GHominlinevirtual
~StrongHom()StrongHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__VarCompVar.html b/libddd.html/class__VarCompVar.html new file mode 100644 index 000000000..925ab4157 --- /dev/null +++ b/libddd.html/class__VarCompVar.html @@ -0,0 +1,1042 @@ + + + + + + + +DDD: _VarCompVar Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
_VarCompVar Class Reference
+
+
+
+Inheritance diagram for _VarCompVar:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for _VarCompVar:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _VarCompVar (int v1, comparator c, int v2)
 
bool skip_variable (int vr) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GDDD phiOne () const
 Evaluation over terminal GDDD::one. More...
 
GHom phi (int vr, int vl) const
 Evaluation over an arbitrary arc of a SDD. More...
 
GHom compose (const GHom &other) const
 
size_t hash () const
 Hash key computation. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void print (std::ostream &os) const
 pretty print More...
 
bool operator== (const StrongHom &s) const
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
_GHomclone () const
 
bool operator== (const _GHom &h) const
 Comparator for unicity table. More...
 
GDDD eval (const GDDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GDDD has_image (const GDDD &) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual GHom invert (const GDDD &) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + + + +

+Private Attributes

int var1
 
int var2
 
comparator c
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ _VarCompVar()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
_VarCompVar::_VarCompVar (int v1,
comparator c,
int v2 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* _VarCompVar::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References _VarCompVar().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _VarCompVar::compose (const GHomother) const
+
+inlinevirtual
+
+
Todo:
other cases to be treated
+ +

Reimplemented from _GHom.

+ +

References c, _GHom::compose(), EQ, _GHom::get_concret(), LT, GDDD::null, var1, and var2.

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::eval (const GDDDd) const
+
+virtualinherited
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, StrongHom::phi(), StrongHom::phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t _VarCompVar::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References var1, and var2.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _VarCompVar::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References c, var1, and var2.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GHom _GHom::invert (const GDDD) const
+
+inlinevirtualinherited
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented in _incVar, _setVarConst, Fixpoint, Minus, And, Compose, Monotonic, Add, Inter, Mult, Apply2k, Constant, and Identity.

+ +

References _GHom::GHom, _GHom::is_selector(), GDDD::null, and _GHom::print().

+ +

Referenced by GHom::invert().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool _VarCompVar::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongHom::operator== (const _GHomh) const
+
+virtualinherited
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool _VarCompVar::operator== (const StrongHomh) const
+
+inlinevirtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +

Implements StrongHom.

+ +

References c, var1, and var2.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom _VarCompVar::phi (int var,
int val 
) const
+
+inlinevirtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe value labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+
+ +

Implements StrongHom.

+ +

References c, _GHom::GHom, invertComp(), var1, var2, and varCompState().

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _VarCompVar::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GDDD::one.

+

Returns a constant DDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GDDD::top

+ +

Reimplemented from StrongHom.

+ +

References GDDD::one.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void _VarCompVar::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

pretty print

+ +

Reimplemented from StrongHom.

+ +

References c, GDDD::getvarName(), to_string(), var1, and var2.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _VarCompVar::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References var1, and var2.

+ +
+
+

Member Data Documentation

+ +

◆ c

+ +
+
+ + + + + +
+ + + + +
comparator _VarCompVar::c
+
+private
+
+ +

Referenced by compose(), hash(), operator==(), phi(), and print().

+ +
+
+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ var1

+ +
+
+ + + + + +
+ + + + +
int _VarCompVar::var1
+
+private
+
+
+ +

◆ var2

+ +
+
+ + + + + +
+ + + + +
int _VarCompVar::var2
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__VarCompVar__coll__graph.map b/libddd.html/class__VarCompVar__coll__graph.map new file mode 100644 index 000000000..439c6e87e --- /dev/null +++ b/libddd.html/class__VarCompVar__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__VarCompVar__coll__graph.md5 b/libddd.html/class__VarCompVar__coll__graph.md5 new file mode 100644 index 000000000..ebe3d1d38 --- /dev/null +++ b/libddd.html/class__VarCompVar__coll__graph.md5 @@ -0,0 +1 @@ +78cd2fa75439a696afd0ca49834e3e77 \ No newline at end of file diff --git a/libddd.html/class__VarCompVar__coll__graph.png b/libddd.html/class__VarCompVar__coll__graph.png new file mode 100644 index 000000000..a0639a79f Binary files /dev/null and b/libddd.html/class__VarCompVar__coll__graph.png differ diff --git a/libddd.html/class__VarCompVar__inherit__graph.map b/libddd.html/class__VarCompVar__inherit__graph.map new file mode 100644 index 000000000..439c6e87e --- /dev/null +++ b/libddd.html/class__VarCompVar__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__VarCompVar__inherit__graph.md5 b/libddd.html/class__VarCompVar__inherit__graph.md5 new file mode 100644 index 000000000..ebe3d1d38 --- /dev/null +++ b/libddd.html/class__VarCompVar__inherit__graph.md5 @@ -0,0 +1 @@ +78cd2fa75439a696afd0ca49834e3e77 \ No newline at end of file diff --git a/libddd.html/class__VarCompVar__inherit__graph.png b/libddd.html/class__VarCompVar__inherit__graph.png new file mode 100644 index 000000000..a0639a79f Binary files /dev/null and b/libddd.html/class__VarCompVar__inherit__graph.png differ diff --git a/libddd.html/class__incVar-members.html b/libddd.html/class__incVar-members.html new file mode 100644 index 000000000..d580a937f --- /dev/null +++ b/libddd.html/class__incVar-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_incVar Member List
+
+
+ +

This is the complete list of members for _incVar, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
_incVar(int var, int val)_incVarinline
clone() const_incVarinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &) constStrongHomvirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_incVarinlinevirtual
has_image(const GDDD &) constStrongHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const_incVarinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &potall) const_incVarinlinevirtual
is_selector() const_GHominlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const StrongHom &s) const_incVarinlinevirtual
StrongHom::operator==(const _GHom &h) constStrongHomvirtual
phi(int vr, int vl) const_incVarinlinevirtual
phiOne() const_incVarinlinevirtual
print(std::ostream &os) const_incVarinlinevirtual
refCounter_GHommutableprivate
skip_variable(int var) const_incVarinlinevirtual
StrongHom()StrongHominline
target_incVarprivate
val_incVarprivate
~_GHom()_GHominlinevirtual
~StrongHom()StrongHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__incVar.html b/libddd.html/class__incVar.html new file mode 100644 index 000000000..fd43a0dc4 --- /dev/null +++ b/libddd.html/class__incVar.html @@ -0,0 +1,1011 @@ + + + + + + + +DDD: _incVar Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
_incVar Class Reference
+
+
+
+Inheritance diagram for _incVar:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for _incVar:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _incVar (int var, int val)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GHom invert (const GDDD &potall) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
GDDD phiOne () const
 Evaluation over terminal GDDD::one. More...
 
GHom phi (int vr, int vl) const
 Evaluation over an arbitrary arc of a SDD. More...
 
size_t hash () const
 Hash key computation. More...
 
bool operator== (const StrongHom &s) const
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
_GHomclone () const
 
void print (std::ostream &os) const
 pretty print More...
 
bool operator== (const _GHom &h) const
 Comparator for unicity table. More...
 
GDDD eval (const GDDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GDDD has_image (const GDDD &) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

int target
 
int val
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ _incVar()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_incVar::_incVar (int var,
int val 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* _incVar::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References _incVar().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::eval (const GDDDd) const
+
+virtualinherited
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, StrongHom::phi(), StrongHom::phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t _incVar::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References target.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _incVar::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References ddd::int32_hash(), target, and val.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _incVar::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GDDD::begin(), computeDomain(), incVar(), GDDD::nbsons(), target, val, varGeqState(), and varLeqState().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongHom::operator== (const _GHomh) const
+
+virtualinherited
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool _incVar::operator== (const StrongHomh) const
+
+inlinevirtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +

Implements StrongHom.

+ +

References target, and val.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom _incVar::phi (int var,
int val 
) const
+
+inlinevirtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe value labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+
+ +

Implements StrongHom.

+ +

References _GHom::GHom, target, and val.

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _incVar::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GDDD::one.

+

Returns a constant DDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GDDD::top

+ +

Reimplemented from StrongHom.

+ +

References GDDD::one.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void _incVar::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

pretty print

+ +

Reimplemented from StrongHom.

+ +

References GDDD::getvarName(), target, and val.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _incVar::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References target.

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ target

+ +
+
+ + + + + +
+ + + + +
int _incVar::target
+
+private
+
+
+ +

◆ val

+ +
+
+ + + + + +
+ + + + +
int _incVar::val
+
+private
+
+ +

Referenced by hash(), invert(), operator==(), phi(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__incVar__coll__graph.map b/libddd.html/class__incVar__coll__graph.map new file mode 100644 index 000000000..c6ca3d27a --- /dev/null +++ b/libddd.html/class__incVar__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__incVar__coll__graph.md5 b/libddd.html/class__incVar__coll__graph.md5 new file mode 100644 index 000000000..f03924837 --- /dev/null +++ b/libddd.html/class__incVar__coll__graph.md5 @@ -0,0 +1 @@ +919f001426d2896d838c6db7aa67c214 \ No newline at end of file diff --git a/libddd.html/class__incVar__coll__graph.png b/libddd.html/class__incVar__coll__graph.png new file mode 100644 index 000000000..58be9f1be Binary files /dev/null and b/libddd.html/class__incVar__coll__graph.png differ diff --git a/libddd.html/class__incVar__inherit__graph.map b/libddd.html/class__incVar__inherit__graph.map new file mode 100644 index 000000000..c6ca3d27a --- /dev/null +++ b/libddd.html/class__incVar__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__incVar__inherit__graph.md5 b/libddd.html/class__incVar__inherit__graph.md5 new file mode 100644 index 000000000..f03924837 --- /dev/null +++ b/libddd.html/class__incVar__inherit__graph.md5 @@ -0,0 +1 @@ +919f001426d2896d838c6db7aa67c214 \ No newline at end of file diff --git a/libddd.html/class__incVar__inherit__graph.png b/libddd.html/class__incVar__inherit__graph.png new file mode 100644 index 000000000..58be9f1be Binary files /dev/null and b/libddd.html/class__incVar__inherit__graph.png differ diff --git a/libddd.html/class__setVarConst-members.html b/libddd.html/class__setVarConst-members.html new file mode 100644 index 000000000..ee9285b16 --- /dev/null +++ b/libddd.html/class__setVarConst-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
_setVarConst Member List
+
+
+ +

This is the complete list of members for _setVarConst, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GHom(int ref=0, bool im=false)_GHominline
_setVarConst(int vr, int vl)_setVarConstinline
clone() const_setVarConstinlinevirtual
compose(const GHom &r) const_GHomvirtual
creation_counter_GHomprivate
eval(const GDDD &) constStrongHomvirtual
eval_skip(const GDDD &) const_GHomprivate
get_concret(const GHom &ghom)_GHominlinestatic
get_range() const_setVarConstinlinevirtual
has_image(const GDDD &) constStrongHomvirtual
has_image_skip(const GDDD &) const_GHom
hash() const_setVarConstinlinevirtual
immediat_GHommutableprivate
invert(const GDDD &potall) const_setVarConstinlinevirtual
is_selector() const_GHominlinevirtual
mark() const_GHominlinevirtual
marking_GHommutableprivate
negate() const_GHomvirtual
operator<(const _GHom &h) const_GHom
operator==(const StrongHom &s) const_setVarConstinlinevirtual
StrongHom::operator==(const _GHom &h) constStrongHomvirtual
phi(int vr, int vl) const_setVarConstinlinevirtual
phiOne() const_setVarConstinlinevirtual
print(std::ostream &os) const_setVarConstinlinevirtual
refCounter_GHommutableprivate
skip_variable(int vr) const_setVarConstinlinevirtual
StrongHom()StrongHominline
val_setVarConstprivate
var_setVarConstprivate
~_GHom()_GHominlinevirtual
~StrongHom()StrongHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__setVarConst.html b/libddd.html/class__setVarConst.html new file mode 100644 index 000000000..f489ffea6 --- /dev/null +++ b/libddd.html/class__setVarConst.html @@ -0,0 +1,1011 @@ + + + + + + + +DDD: _setVarConst Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
_setVarConst Class Reference
+
+
+
+Inheritance diagram for _setVarConst:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for _setVarConst:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 _setVarConst (int vr, int vl)
 
bool skip_variable (int vr) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GHom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GDDD phiOne () const
 Evaluation over terminal GDDD::one. More...
 
GHom phi (int vr, int vl) const
 Evaluation over an arbitrary arc of a SDD. More...
 
GHom invert (const GDDD &potall) const
 returns the predescessor homomorphism, using pot to determine variable domains More...
 
size_t hash () const
 Hash key computation. More...
 
void print (std::ostream &os) const
 pretty print More...
 
bool operator== (const StrongHom &s) const
 Comparator is pure virtual. Define a behavior in user homomorphisms. More...
 
_GHomclone () const
 
bool operator== (const _GHom &h) const
 Comparator for unicity table. More...
 
GDDD eval (const GDDD &) const
 The evaluation mechanism of strong homomorphisms. More...
 
virtual GDDD has_image (const GDDD &) const
 
GDDD has_image_skip (const GDDD &) const
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool operator< (const _GHom &h) const
 Ordering between _GHom. It is the chronological ordering of creation. More...
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
virtual GHom negate () const
 returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d) More...
 
virtual GHom compose (const GHom &r) const
 
+ + + +

+Static Public Member Functions

static const _GHomget_concret (const GHom &ghom)
 
+ + + +

+Private Member Functions

GDDD eval_skip (const GDDD &) const
 
+ + + + + + + + + + + + + + + + + +

+Private Attributes

int var
 
int val
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
bool immediat
 For operation cache management. More...
 
size_t creation_counter
 Counter of objects created (see constructors). More...
 
+

Constructor & Destructor Documentation

+ +

◆ _setVarConst()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
_setVarConst::_setVarConst (int vr,
int vl 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GHom* _setVarConst::clone () const
+
+inlinevirtual
+
+ +

Implements _GHom.

+ +

References _setVarConst().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _GHom::compose (const GHomr) const
+
+virtualinherited
+
+ +

Reimplemented in _VarCompVar, and _VarCompState.

+ +

References GHom::id, and GDDD::null.

+ +

Referenced by _VarCompState::compose(), _VarCompVar::compose(), and GHom::compose().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::eval (const GDDDd) const
+
+virtualinherited
+
+ +

The evaluation mechanism of strong homomorphisms.

+

Evaluation is defined as :

+

Let an SDD d= (var, Union_i (val_i, d_i) )

+

h (d) = Sum_i ( phi(var, val_i) (d_i) )
+

+ +

Implements _GHom.

+ +

References DED::add(), GDDD::begin(), GDDD::end(), GDDD::null, GDDD::one, StrongHom::phi(), StrongHom::phiOne(), GDDD::top, and GDDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::eval_skip (const GDDDd) const
+
+privateinherited
+
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GHom* _GHom::get_concret (const GHomghom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GHom::range_t _setVarConst::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GHom.

+ +

References var.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD StrongHom::has_image (const GDDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GDDD _GHom::has_image_skip (const GDDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t _setVarConst::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GHom.

+ +

References ddd::int32_hash(), val, and var.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GHom _setVarConst::invert (const GDDD) const
+
+inlinevirtual
+
+ +

returns the predescessor homomorphism, using pot to determine variable domains

+ +

Reimplemented from _GHom.

+ +

References GHom::add(), GDDD::begin(), computeDomain(), GDDD::end(), setVarConst(), val, var, and varEqState().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GHom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in _VarCompVar, _VarCompState, Fixpoint, Minus, And, Compose, Monotonic, Add, NotCond, Inter, Mult, DomExtract, Constant, and Identity.

+ +

Referenced by _GHom::invert(), and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GHom::mark () const
+
+inlinevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented in MLHomAdapter, Fixpoint, Minus, RightConcat, LeftConcat, And, Compose, Monotonic, Add, NotCond, Inter, Mult, Apply2k, and Constant.

+ +

Referenced by GHom::mark().

+ +
+
+ +

◆ negate()

+ +
+
+ + + + + +
+ + + + + + + +
GHom _GHom::negate () const
+
+virtualinherited
+
+ +

returns a negation of a selector homomorphism h, such that h.negate() (d) = d - h(d)

+ +

Reimplemented in _VarCompState, And, Add, NotCond, Inter, Constant, and Identity.

+ +

References _GHom::GHom.

+ +

Referenced by GHom::negate().

+ +
+
+ +

◆ operator<()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _GHom::operator< (const _GHomh) const
+
+inherited
+
+ +

Ordering between _GHom. It is the chronological ordering of creation.

+ +

References _GHom::creation_counter.

+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool StrongHom::operator== (const _GHomh) const
+
+virtualinherited
+
+ +

Comparator for unicity table.

+

Users should not use this. The behavior is to check for type mismatch (and return false if that is the case) or call specialized comparators of derived subclasses otherwise.

+ +

Implements _GHom.

+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
bool _setVarConst::operator== (const StrongHomh) const
+
+inlinevirtual
+
+ +

Comparator is pure virtual. Define a behavior in user homomorphisms.

+ +

Implements StrongHom.

+ +

References val, and var.

+ +
+
+ +

◆ phi()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
GHom _setVarConst::phi (int var,
int val 
) const
+
+inlinevirtual
+
+ +

Evaluation over an arbitrary arc of a SDD.

+
Parameters
+ + + +
varthe index of the variable labeling the node.
valthe value labeling the arc.
+
+
+
Returns
a homomorphism to apply on the successor node
+
+ +

Implements StrongHom.

+ +

References _GHom::GHom, GHom::id, val, and var.

+ +
+
+ +

◆ phiOne()

+ +
+
+ + + + + +
+ + + + + + + +
GDDD _setVarConst::phiOne () const
+
+inlinevirtual
+
+ +

Evaluation over terminal GDDD::one.

+

Returns a constant DDD. A homomorphism that does not overload phiOne does not expect to meet the terminal during it's evaluation, therefore default behavior returns GDDD::top

+ +

Reimplemented from StrongHom.

+ +

References GDDD::one.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void _setVarConst::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

pretty print

+ +

Reimplemented from StrongHom.

+ +

References GDDD::getvarName(), val, and var.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool _setVarConst::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GHom.

+ +

References var.

+ +
+
+

Member Data Documentation

+ +

◆ creation_counter

+ +
+
+ + + + + +
+ + + + +
size_t _GHom::creation_counter
+
+privateinherited
+
+ +

Counter of objects created (see constructors).

+

This is used for the ordering between homomorphisms.

+ +

Referenced by _GHom::_GHom(), and _GHom::operator<().

+ +
+
+ +

◆ immediat

+ +
+
+ + + + + +
+ + + + +
bool _GHom::immediat
+
+mutableprivateinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true.
+

+ +

Referenced by GHom::operator()().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _GHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Hom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by GHom::garbage(), and GHom::mark().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _GHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom.

+ +

Referenced by Hom::Hom(), Hom::operator=(), GHom::refCounter(), and Hom::~Hom().

+ +
+
+ +

◆ val

+ +
+
+ + + + + +
+ + + + +
int _setVarConst::val
+
+private
+
+ +

Referenced by hash(), invert(), operator==(), phi(), and print().

+ +
+
+ +

◆ var

+ +
+
+ + + + + +
+ + + + +
int _setVarConst::var
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/class__setVarConst__coll__graph.map b/libddd.html/class__setVarConst__coll__graph.map new file mode 100644 index 000000000..fa97a4b12 --- /dev/null +++ b/libddd.html/class__setVarConst__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__setVarConst__coll__graph.md5 b/libddd.html/class__setVarConst__coll__graph.md5 new file mode 100644 index 000000000..6b13c24f6 --- /dev/null +++ b/libddd.html/class__setVarConst__coll__graph.md5 @@ -0,0 +1 @@ +73de69b597272ee9997a2d76c436e292 \ No newline at end of file diff --git a/libddd.html/class__setVarConst__coll__graph.png b/libddd.html/class__setVarConst__coll__graph.png new file mode 100644 index 000000000..14a60b5f2 Binary files /dev/null and b/libddd.html/class__setVarConst__coll__graph.png differ diff --git a/libddd.html/class__setVarConst__inherit__graph.map b/libddd.html/class__setVarConst__inherit__graph.map new file mode 100644 index 000000000..fa97a4b12 --- /dev/null +++ b/libddd.html/class__setVarConst__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/class__setVarConst__inherit__graph.md5 b/libddd.html/class__setVarConst__inherit__graph.md5 new file mode 100644 index 000000000..6b13c24f6 --- /dev/null +++ b/libddd.html/class__setVarConst__inherit__graph.md5 @@ -0,0 +1 @@ +73de69b597272ee9997a2d76c436e292 \ No newline at end of file diff --git a/libddd.html/class__setVarConst__inherit__graph.png b/libddd.html/class__setVarConst__inherit__graph.png new file mode 100644 index 000000000..14a60b5f2 Binary files /dev/null and b/libddd.html/class__setVarConst__inherit__graph.png differ diff --git a/libddd.html/classd3_1_1init-members.html b/libddd.html/classd3_1_1init-members.html new file mode 100644 index 000000000..c938f761e --- /dev/null +++ b/libddd.html/classd3_1_1init-members.html @@ -0,0 +1,62 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
d3::init Member List
+
+
+ +

This is the complete list of members for d3::init, including all inherited members.

+ + + +
init()d3::initinline
~init()d3::initinline
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classd3_1_1init.html b/libddd.html/classd3_1_1init.html new file mode 100644 index 000000000..c75a575b7 --- /dev/null +++ b/libddd.html/classd3_1_1init.html @@ -0,0 +1,132 @@ + + + + + + + +DDD: d3::init Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +List of all members
+
+
d3::init Class Reference
+
+
+ +

#include <init.hh>

+
+Collaboration diagram for d3::init:
+
+
Collaboration graph
+ + + +
+ + + + + + +

+Public Member Functions

 init ()
 
 ~init ()
 
+

Constructor & Destructor Documentation

+ +

◆ init()

+ +
+
+ + + + + +
+ + + + + + + +
d3::init::init ()
+
+inline
+
+ +
+
+ +

◆ ~init()

+ +
+
+ + + + + +
+ + + + + + + +
d3::init::~init ()
+
+inline
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classd3_1_1init__coll__graph.map b/libddd.html/classd3_1_1init__coll__graph.map new file mode 100644 index 000000000..001644311 --- /dev/null +++ b/libddd.html/classd3_1_1init__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classd3_1_1init__coll__graph.md5 b/libddd.html/classd3_1_1init__coll__graph.md5 new file mode 100644 index 000000000..1348c287a --- /dev/null +++ b/libddd.html/classd3_1_1init__coll__graph.md5 @@ -0,0 +1 @@ +e8a9e919731bc9318fe805ff687edd59 \ No newline at end of file diff --git a/libddd.html/classd3_1_1init__coll__graph.png b/libddd.html/classd3_1_1init__coll__graph.png new file mode 100644 index 000000000..c4db68fbc Binary files /dev/null and b/libddd.html/classd3_1_1init__coll__graph.png differ diff --git a/libddd.html/classdotExporter-members.html b/libddd.html/classdotExporter-members.html new file mode 100644 index 000000000..67cf1ac73 --- /dev/null +++ b/libddd.html/classdotExporter-members.html @@ -0,0 +1,91 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
dotExporter Member List
+
+
+ +

This is the complete list of members for dotExporter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
collect(const SDD &g)dotExporterinlineprotected
collect(const DDD &g)dotExporterinlineprotected
collect(const GSDD &g)dotExporterinlinevirtual
collect(const GDDD &g)dotExporterinline
d3namedotExporterprotected
D3outdotExporterprotected
dotExporter(const string &s="test", bool multiT=false)dotExporterinline
entryd3NamedotExporterprotected
entryd3NbdotExporterprotected
entryNamedotExporterprotected
entryNbdotExporterprotected
finish()dotExporterinline
gsdd_hash_set typedefdotExporter
init()dotExporterinline
isAligneddotExporterprotected
label(const GSDD &g, const string &name)dotExporterinline
multiTdotExporterprotected
namedotExporterprotected
nextAiddotExporterprotected
nextiddotExporterprotected
nextMiddotExporterprotected
nextPiddotExporterprotected
operator()(const GSDD &g)dotExporterinline
outdotExporterprotected
pathdotExporterprotected
printColor(const GSDD &g, const string &color, gsdd_hash_set &visited)dotExporterinline
printLevels()dotExporterinline
seendotExporterprotected
seen_it typedefdotExporterprotected
seen_rit typedefdotExporterprotected
seen_t typedefdotExporterprotected
setAlign(bool align)dotExporterinline
setColor(const GSDD &g, const string &color)dotExporterinline
setPath(const string &path)dotExporterinline
~dotExporter()dotExporterinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classdotExporter.html b/libddd.html/classdotExporter.html new file mode 100644 index 000000000..2cadb5873 --- /dev/null +++ b/libddd.html/classdotExporter.html @@ -0,0 +1,1059 @@ + + + + + + + +DDD: dotExporter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Protected Types | +Protected Member Functions | +Protected Attributes | +List of all members
+
+
dotExporter Class Reference
+
+
+
+Inheritance diagram for dotExporter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for dotExporter:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Types

typedef d3::hash_set< GSDD >::type gsdd_hash_set
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ~dotExporter ()
 
void setPath (const string &path)
 
virtual void collect (const GSDD &g)
 
void collect (const GDDD &g)
 
 dotExporter (const string &s="test", bool multiT=false)
 
void printColor (const GSDD &g, const string &color, gsdd_hash_set &visited)
 
void setColor (const GSDD &g, const string &color)
 
void init ()
 
void setAlign (bool align)
 
void label (const GSDD &g, const string &name)
 
int operator() (const GSDD &g)
 
void printLevels ()
 
void finish ()
 
+ + + + + + + +

+Protected Types

typedef std::set< int > seen_t
 
typedef seen_t::const_iterator seen_it
 
typedef seen_t::const_reverse_iterator seen_rit
 
+ + + + + +

+Protected Member Functions

void collect (const SDD &g)
 
void collect (const DDD &g)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

map< GSDD, string > name
 
map< GDDD, string > d3name
 
map< GDDD, string > entryd3Name
 
map< GDDD, int > entryd3Nb
 
map< GSDD, string > entryName
 
map< GSDD, int > entryNb
 
int nextid
 
int nextPid
 
int nextMid
 
int nextAid
 
string path
 
ostream * D3out
 
ostream * out
 
bool multiT
 
bool isAligned
 
seen_t seen
 
+

Member Typedef Documentation

+ +

◆ gsdd_hash_set

+ +
+
+ + + + +
typedef d3::hash_set<GSDD>::type dotExporter::gsdd_hash_set
+
+ +
+
+ +

◆ seen_it

+ +
+
+ + + + + +
+ + + + +
typedef seen_t::const_iterator dotExporter::seen_it
+
+protected
+
+ +
+
+ +

◆ seen_rit

+ +
+
+ + + + + +
+ + + + +
typedef seen_t::const_reverse_iterator dotExporter::seen_rit
+
+protected
+
+ +
+
+ +

◆ seen_t

+ +
+
+ + + + + +
+ + + + +
typedef std::set<int> dotExporter::seen_t
+
+protected
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ ~dotExporter()

+ +
+
+ + + + + +
+ + + + + + + +
virtual dotExporter::~dotExporter ()
+
+inlinevirtual
+
+ +
+
+ +

◆ dotExporter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
dotExporter::dotExporter (const string & s = "test",
bool multiT = false 
)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ collect() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const DDDg)
+
+inlineprotected
+
+ +
+
+ +

◆ collect() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const GDDDg)
+
+inline
+
+
+ +

◆ collect() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void dotExporter::collect (const GSDDg)
+
+inlinevirtual
+
+

increment in loop

+ +

Reimplemented in hDotExporter.

+ +

References GDDD::begin(), GSDD::begin(), GDDD::end(), GSDD::end(), GDDD::one, GSDD::one, GSDD::refCounter(), GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ collect() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const SDDg)
+
+inlineprotected
+
+
+ +

◆ finish()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::finish ()
+
+inline
+
+ +

Referenced by dotHighlight::exportDot().

+ +
+
+ +

◆ init()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::init ()
+
+inline
+
+ +

Referenced by exportDot(), and dotHighlight::initialize().

+ +
+
+ +

◆ label()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void dotExporter::label (const GSDDg,
const string & name 
)
+
+inline
+
+ +

Referenced by dotHighlight::addSDD().

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
int dotExporter::operator() (const GSDDg)
+
+inline
+
+ +
+
+ +

◆ printColor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void dotExporter::printColor (const GSDDg,
const string & color,
gsdd_hash_setvisited 
)
+
+inline
+
+ +

References GSDD::begin(), and GSDD::end().

+ +
+
+ +

◆ printLevels()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::printLevels ()
+
+inline
+
+ +

References GSDD::null, GSDD::one, and GSDD::top.

+ +
+
+ +

◆ setAlign()

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::setAlign (bool align)
+
+inline
+
+ +

Referenced by dotHighlight::setVarAlignment().

+ +
+
+ +

◆ setColor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void dotExporter::setColor (const GSDDg,
const string & color 
)
+
+inline
+
+ +

Referenced by dotHighlight::setColor().

+ +
+
+ +

◆ setPath()

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::setPath (const string & path)
+
+inline
+
+ +

Referenced by dotHighlight::initialize().

+ +
+
+

Member Data Documentation

+ +

◆ d3name

+ +
+
+ + + + + +
+ + + + +
map<GDDD,string> dotExporter::d3name
+
+protected
+
+ +
+
+ +

◆ D3out

+ +
+
+ + + + + +
+ + + + +
ostream* dotExporter::D3out
+
+protected
+
+ +
+
+ +

◆ entryd3Name

+ +
+
+ + + + + +
+ + + + +
map<GDDD,string> dotExporter::entryd3Name
+
+protected
+
+ +
+
+ +

◆ entryd3Nb

+ +
+
+ + + + + +
+ + + + +
map<GDDD,int> dotExporter::entryd3Nb
+
+protected
+
+ +
+
+ +

◆ entryName

+ +
+
+ + + + + +
+ + + + +
map<GSDD,string> dotExporter::entryName
+
+protected
+
+ +
+
+ +

◆ entryNb

+ +
+
+ + + + + +
+ + + + +
map<GSDD,int> dotExporter::entryNb
+
+protected
+
+ +
+
+ +

◆ isAligned

+ +
+
+ + + + + +
+ + + + +
bool dotExporter::isAligned
+
+protected
+
+ +
+
+ +

◆ multiT

+ +
+
+ + + + + +
+ + + + +
bool dotExporter::multiT
+
+protected
+
+ +
+
+ +

◆ name

+ +
+
+ + + + + +
+ + + + +
map<GSDD,string> dotExporter::name
+
+protected
+
+ +
+
+ +

◆ nextAid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextAid
+
+protected
+
+ +
+
+ +

◆ nextid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextid
+
+protected
+
+ +
+
+ +

◆ nextMid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextMid
+
+protected
+
+ +
+
+ +

◆ nextPid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextPid
+
+protected
+
+ +
+
+ +

◆ out

+ +
+
+ + + + + +
+ + + + +
ostream* dotExporter::out
+
+protected
+
+ +
+
+ +

◆ path

+ +
+
+ + + + + +
+ + + + +
string dotExporter::path
+
+protected
+
+ +
+
+ +

◆ seen

+ +
+
+ + + + + +
+ + + + +
seen_t dotExporter::seen
+
+protected
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classdotExporter__coll__graph.map b/libddd.html/classdotExporter__coll__graph.map new file mode 100644 index 000000000..1e18f4f19 --- /dev/null +++ b/libddd.html/classdotExporter__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classdotExporter__coll__graph.md5 b/libddd.html/classdotExporter__coll__graph.md5 new file mode 100644 index 000000000..31b7755a9 --- /dev/null +++ b/libddd.html/classdotExporter__coll__graph.md5 @@ -0,0 +1 @@ +8af89f3264ab8283db524e78c6961f9d \ No newline at end of file diff --git a/libddd.html/classdotExporter__coll__graph.png b/libddd.html/classdotExporter__coll__graph.png new file mode 100644 index 000000000..f9b14f919 Binary files /dev/null and b/libddd.html/classdotExporter__coll__graph.png differ diff --git a/libddd.html/classdotExporter__inherit__graph.map b/libddd.html/classdotExporter__inherit__graph.map new file mode 100644 index 000000000..a01ee5e16 --- /dev/null +++ b/libddd.html/classdotExporter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classdotExporter__inherit__graph.md5 b/libddd.html/classdotExporter__inherit__graph.md5 new file mode 100644 index 000000000..0786b92f1 --- /dev/null +++ b/libddd.html/classdotExporter__inherit__graph.md5 @@ -0,0 +1 @@ +537f27b52dc194686e657d64d40ab4dc \ No newline at end of file diff --git a/libddd.html/classdotExporter__inherit__graph.png b/libddd.html/classdotExporter__inherit__graph.png new file mode 100644 index 000000000..0c7c0ed95 Binary files /dev/null and b/libddd.html/classdotExporter__inherit__graph.png differ diff --git a/libddd.html/classdotHighlight-members.html b/libddd.html/classdotHighlight-members.html new file mode 100644 index 000000000..19be2bf12 --- /dev/null +++ b/libddd.html/classdotHighlight-members.html @@ -0,0 +1,65 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
dotHighlight Member List
+
+
+ +

This is the complete list of members for dotHighlight, including all inherited members.

+ + + + + + + + + + +
addSDD(const GSDD &g)dotHighlight
addSDD(const GSDD &g, const string &label)dotHighlight
dedotHighlightprivate
dotHighlight(const string &path)dotHighlight
exportDot()dotHighlight
initialize(const string &path)dotHighlight
setColor(const GSDD &g, const string &color)dotHighlight
setVarAlignment(bool isAligned)dotHighlight
~dotHighlight()dotHighlightvirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classdotHighlight.html b/libddd.html/classdotHighlight.html new file mode 100644 index 000000000..faee4836d --- /dev/null +++ b/libddd.html/classdotHighlight.html @@ -0,0 +1,325 @@ + + + + + + + +DDD: dotHighlight Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Member Functions | +Private Attributes | +List of all members
+
+
dotHighlight Class Reference
+
+
+ +

a more evolved API for highlighting parts of a graph + More...

+ +

#include <util/dotExporter.h>

+
+Collaboration diagram for dotHighlight:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ~dotHighlight ()
 
 dotHighlight (const string &path)
 
void initialize (const string &path)
 
void setVarAlignment (bool isAligned)
 
void addSDD (const GSDD &g)
 
void addSDD (const GSDD &g, const string &label)
 
void setColor (const GSDD &g, const string &color)
 
void exportDot ()
 
+ + + +

+Private Attributes

class dotExporterde
 
+

Detailed Description

+

a more evolved API for highlighting parts of a graph

+

Constructor & Destructor Documentation

+ +

◆ ~dotHighlight()

+ +
+
+ + + + + +
+ + + + + + + +
dotHighlight::~dotHighlight ()
+
+virtual
+
+ +

References de.

+ +
+
+ +

◆ dotHighlight()

+ +
+
+ + + + + + + + +
dotHighlight::dotHighlight (const string & path)
+
+ +

References de, and setVarAlignment().

+ +
+
+

Member Function Documentation

+ +

◆ addSDD() [1/2]

+ +
+
+ + + + + + + + +
void dotHighlight::addSDD (const GSDDg)
+
+ +

References dotExporter::collect(), and de.

+ +

Referenced by addSDD().

+ +
+
+ +

◆ addSDD() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dotHighlight::addSDD (const GSDDg,
const string & label 
)
+
+
+ +

◆ exportDot()

+ +
+
+ + + + + + + +
void dotHighlight::exportDot ()
+
+ +

References de, and dotExporter::finish().

+ +

Referenced by exportUniqueTable().

+ +
+
+ +

◆ initialize()

+ +
+
+ + + + + + + + +
void dotHighlight::initialize (const string & path)
+
+ +

References de, dotExporter::init(), and dotExporter::setPath().

+ +

Referenced by exportUniqueTable().

+ +
+
+ +

◆ setColor()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dotHighlight::setColor (const GSDDg,
const string & color 
)
+
+ +

References de, and dotExporter::setColor().

+ +

Referenced by exportUniqueTable().

+ +
+
+ +

◆ setVarAlignment()

+ +
+
+ + + + + + + + +
void dotHighlight::setVarAlignment (bool isAligned)
+
+ +

References de, and dotExporter::setAlign().

+ +

Referenced by dotHighlight().

+ +
+
+

Member Data Documentation

+ +

◆ de

+ +
+
+ + + + + +
+ + + + +
class dotExporter* dotHighlight::de
+
+private
+
+
+
The documentation for this class was generated from the following files: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classdotHighlight__coll__graph.map b/libddd.html/classdotHighlight__coll__graph.map new file mode 100644 index 000000000..358930c0c --- /dev/null +++ b/libddd.html/classdotHighlight__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classdotHighlight__coll__graph.md5 b/libddd.html/classdotHighlight__coll__graph.md5 new file mode 100644 index 000000000..cc40d9df1 --- /dev/null +++ b/libddd.html/classdotHighlight__coll__graph.md5 @@ -0,0 +1 @@ +820d101ee5cad438daf20330fbea9351 \ No newline at end of file diff --git a/libddd.html/classdotHighlight__coll__graph.png b/libddd.html/classdotHighlight__coll__graph.png new file mode 100644 index 000000000..1e2f0ee57 Binary files /dev/null and b/libddd.html/classdotHighlight__coll__graph.png differ diff --git a/libddd.html/classes.html b/libddd.html/classes.html new file mode 100644 index 000000000..da01f8a8d --- /dev/null +++ b/libddd.html/classes.html @@ -0,0 +1,107 @@ + + + + + + + +DDD: Class Index + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Class Index
+
+
+
A | C | D | E | F | G | H | I | L | M | N | P | R | S | U | V | _
+
+
+
A
+
ext_hash_map::accessor
Add
Add (nsMLHom)
Add (nsMLShom)
Add (sns)
AdditiveMap
allocator (conf)
And
And (sns)
Apply2k
+
+
C
+
Cache
clone (unique)
clone< std::vector< int > > (unique)
Compose
Compose (sns)
ext_hash_map::const_accessor
Constant
Constant (sns)
ConstantUp (nsMLHom)
ConstantUp (nsMLShom)
_GDDD::custom_new_t
+
+
D
+
DataSet
DDD
DefaultObserver (fobs)
DomExtract
dotExporter
dotHighlight
+
+
E
+
equal (d3::util)
equal< _GHom * > (d3::util)
equal< _GShom * > (d3::util)
equal< _MLHom * > (d3::util)
equal< _MLShom * > (d3::util)
equal< std::pair< T1, T2 > > (d3::util)
equal< std::string > (d3::util)
equal< T * > (d3::util)
ext_hash_map
+
+
F
+
FixObserver (fobs)
Fixpoint
Fixpoint (sns)
+
+
G
+
GCHook
GDDD
GHom
GHomAdapter (nsMLHom)
GSDD
GShom
GShomAdapter (nsMLShom)
+
+
H
+
hash (d3::util)
hash< const std::vector< int > * > (d3::util)
hash< const std::vector< int > > (d3::util)
hash< const std::vector< short > > (d3::util)
hash< int > (d3::util)
hash< std::pair< T1, T2 > > (d3::util)
hash< std::set< T1 > > (d3::util)
hash< std::string > (d3::util)
hash< std::vector< int > * > (d3::util)
hash< std::vector< int > > (d3::util)
hash< std::vector< short > > (d3::util)
hash< T * > (d3::util)
hash_map
hash_set (d3)
hDotExporter
Hom
HomMinus (sns)
+
+
I
+
UniqueTableId::id_compare
UniqueTableId::id_hash
Identity
Identity (nsMLHom)
Identity (nsMLShom)
Identity (sns)
init (d3)
IntDataSet
Inter
Inter (sns)
+
+
L
+
LeftConcat
LeftConcat (nsMLHom)
LeftConcat (nsMLShom)
LeftConcat (sns)
less< GDDD > (std)
less< GHom > (std)
less< GSDD > (std)
less< GShom > (std)
LocalApply (sns)
+
+
M
+
map (d3::util)
MemoryManager
Minus
Minus (sns)
MLCache
MLHom
MLHomAdapter
MLShom
MLShomAdapter (sns)
Monotonic
Mult
Mult (sns)
multiset (d3)
MyGHom
MyGShom
MyNbStates
MySDDNbStates
MySize
+
+
N
+
NotCond
+
+
P
+
Add::partition (sns)
+
+
R
+
RecFireSat (sns)
RightConcat
RightConcat (sns)
+
+
S
+
SApply2k (sns)
SDD
SddSize
SDomExtract (sns)
set (d3)
Shom
SLocalApply (sns)
SNotCond (sns)
Statistic
StrongHom
StrongMLHom
StrongMLShom
StrongShom
+
+
U
+
UniqueTable
UniqueTableId
+
+
V
+
vector (d3::util)
+
+
_
+
_DED
_DED_Add
_DED_Concat
_DED_Hom
_DED_Minus
_DED_Mult
_GDDD
_GHom
_GSDD
_GShom
_incVar
_MLHom
_MLShom
_SDED
_SDED_Add
_SDED_Concat
_SDED_Minus
_SDED_Mult
_setVarConst
_VarCompState
_VarCompVar
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map-members.html b/libddd.html/classext__hash__map-members.html new file mode 100644 index 000000000..cc6167e8e --- /dev/null +++ b/libddd.html/classext__hash__map-members.html @@ -0,0 +1,76 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
ext_hash_map< Key, Data, HashKey, EqualKey > Member List
+
+
+ +

This is the complete list of members for ext_hash_map< Key, Data, HashKey, EqualKey >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
accessor classext_hash_map< Key, Data, HashKey, EqualKey >friend
begin()ext_hash_map< Key, Data, HashKey, EqualKey >inline
begin() constext_hash_map< Key, Data, HashKey, EqualKey >inline
clear()ext_hash_map< Key, Data, HashKey, EqualKey >inline
const_accessor classext_hash_map< Key, Data, HashKey, EqualKey >friend
const_iterator typedefext_hash_map< Key, Data, HashKey, EqualKey >
empty() constext_hash_map< Key, Data, HashKey, EqualKey >inline
end()ext_hash_map< Key, Data, HashKey, EqualKey >inline
end() constext_hash_map< Key, Data, HashKey, EqualKey >inline
erase(const Key &key)ext_hash_map< Key, Data, HashKey, EqualKey >inline
ext_hash_map()ext_hash_map< Key, Data, HashKey, EqualKey >inline
ext_hash_map(size_t s)ext_hash_map< Key, Data, HashKey, EqualKey >inline
find(accessor &result, const Key &key)ext_hash_map< Key, Data, HashKey, EqualKey >inline
find(const_accessor &result, const Key &key) constext_hash_map< Key, Data, HashKey, EqualKey >inline
insert(accessor &result, const Key &key)ext_hash_map< Key, Data, HashKey, EqualKey >inline
internal_hash_map typedefext_hash_map< Key, Data, HashKey, EqualKey >
iterator typedefext_hash_map< Key, Data, HashKey, EqualKey >
map_ext_hash_map< Key, Data, HashKey, EqualKey >private
size() constext_hash_map< Key, Data, HashKey, EqualKey >inline
size_type typedefext_hash_map< Key, Data, HashKey, EqualKey >
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map.html b/libddd.html/classext__hash__map.html new file mode 100644 index 000000000..1764f7e36 --- /dev/null +++ b/libddd.html/classext__hash__map.html @@ -0,0 +1,702 @@ + + + + + + + +DDD: ext_hash_map< Key, Data, HashKey, EqualKey > Class Template Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Classes | +Public Types | +Public Member Functions | +Private Attributes | +Friends | +List of all members
+
+
ext_hash_map< Key, Data, HashKey, EqualKey > Class Template Reference
+
+
+ +

#include <util/ext_hash_map.hh>

+
+Inheritance diagram for ext_hash_map< Key, Data, HashKey, EqualKey >:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for ext_hash_map< Key, Data, HashKey, EqualKey >:
+
+
Collaboration graph
+ + + +
+ + + + + + +

+Classes

class  accessor
 
class  const_accessor
 
+ + + + + + + + + +

+Public Types

typedef google::sparse_hash_map< Key, Data, HashKey, EqualKey > internal_hash_map
 
typedef internal_hash_map::iterator iterator
 
typedef internal_hash_map::const_iterator const_iterator
 
typedef internal_hash_map::size_type size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ext_hash_map ()
 
 ext_hash_map (size_t s)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
size_type size () const
 
bool empty () const
 
void clear ()
 
bool find (accessor &result, const Key &key)
 
bool find (const_accessor &result, const Key &key) const
 
bool insert (accessor &result, const Key &key)
 
bool erase (const Key &key)
 
+ + + +

+Private Attributes

internal_hash_map map_
 
+ + + + + +

+Friends

class const_accessor
 
class accessor
 
+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef internal_hash_map::const_iterator ext_hash_map< Key, Data, HashKey, EqualKey >::const_iterator
+
+ +
+
+ +

◆ internal_hash_map

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef google::sparse_hash_map<Key,Data,HashKey,EqualKey> ext_hash_map< Key, Data, HashKey, EqualKey >::internal_hash_map
+
+ +
+
+ +

◆ iterator

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef internal_hash_map::iterator ext_hash_map< Key, Data, HashKey, EqualKey >::iterator
+
+ +
+
+ +

◆ size_type

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef internal_hash_map::size_type ext_hash_map< Key, Data, HashKey, EqualKey >::size_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ ext_hash_map() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::ext_hash_map ()
+
+inline
+
+ +
+
+ +

◆ ext_hash_map() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::ext_hash_map (size_t s)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ begin() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
iterator ext_hash_map< Key, Data, HashKey, EqualKey >::begin ()
+
+inline
+
+
+ +

◆ begin() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
const_iterator ext_hash_map< Key, Data, HashKey, EqualKey >::begin () const
+
+inline
+
+
+ +

◆ clear()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
void ext_hash_map< Key, Data, HashKey, EqualKey >::clear ()
+
+inline
+
+
+ +

◆ empty()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::empty () const
+
+inline
+
+
+ +

◆ end() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
iterator ext_hash_map< Key, Data, HashKey, EqualKey >::end ()
+
+inline
+
+
+ +

◆ end() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
const_iterator ext_hash_map< Key, Data, HashKey, EqualKey >::end () const
+
+inline
+
+
+ +

◆ erase()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::erase (const Key & key)
+
+inline
+
+
+ +

◆ find() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::find (accessorresult,
const Key & key 
)
+
+inline
+
+
+ +

◆ find() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::find (const_accessorresult,
const Key & key 
) const
+
+inline
+
+
+ +

◆ insert()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::insert (accessorresult,
const Key & key 
)
+
+inline
+
+
+ +

◆ size()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
size_type ext_hash_map< Key, Data, HashKey, EqualKey >::size () const
+
+inline
+
+
+

Friends And Related Function Documentation

+ +

◆ accessor

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
friend class accessor
+
+friend
+
+ +
+
+ +

◆ const_accessor

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
friend class const_accessor
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ map_

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
internal_hash_map ext_hash_map< Key, Data, HashKey, EqualKey >::map_
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map_1_1accessor-members.html b/libddd.html/classext__hash__map_1_1accessor-members.html new file mode 100644 index 000000000..ab66ba282 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1accessor-members.html @@ -0,0 +1,71 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
ext_hash_map< Key, Data, HashKey, EqualKey >::accessor Member List
+
+
+ +

This is the complete list of members for ext_hash_map< Key, Data, HashKey, EqualKey >::accessor, including all inherited members.

+ + + + + + + + + + + + +
accessor()ext_hash_map< Key, Data, HashKey, EqualKey >::accessorinline
accessor(const accessor &)ext_hash_map< Key, Data, HashKey, EqualKey >::accessorprivate
current_bucket_ext_hash_map< Key, Data, HashKey, EqualKey >::accessorprivate
empty() constext_hash_map< Key, Data, HashKey, EqualKey >::accessorinline
ext_hash_map classext_hash_map< Key, Data, HashKey, EqualKey >::accessorfriend
has_result_ext_hash_map< Key, Data, HashKey, EqualKey >::accessorprivate
operator*() constext_hash_map< Key, Data, HashKey, EqualKey >::accessorinline
operator->() constext_hash_map< Key, Data, HashKey, EqualKey >::accessorinline
operator=(const accessor &)ext_hash_map< Key, Data, HashKey, EqualKey >::accessorprivate
release()ext_hash_map< Key, Data, HashKey, EqualKey >::accessorinline
value_type typedefext_hash_map< Key, Data, HashKey, EqualKey >::accessor
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map_1_1accessor.html b/libddd.html/classext__hash__map_1_1accessor.html new file mode 100644 index 000000000..a20cf2236 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1accessor.html @@ -0,0 +1,413 @@ + + + + + + + +DDD: ext_hash_map< Key, Data, HashKey, EqualKey >::accessor Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Types | +Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
ext_hash_map< Key, Data, HashKey, EqualKey >::accessor Class Reference
+
+
+ +

#include <util/ext_hash_map.hh>

+
+Collaboration diagram for ext_hash_map< Key, Data, HashKey, EqualKey >::accessor:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Types

typedef std::pair< const Key, Data > value_type
 
+ + + + + + + + + + + +

+Public Member Functions

value_typeoperator* () const
 
value_typeoperator-> () const
 
 accessor ()
 
bool empty () const
 
void release ()
 
+ + + + + +

+Private Member Functions

 accessor (const accessor &)
 
accessoroperator= (const accessor &)
 
+ + + + + +

+Private Attributes

bool has_result_
 
iterator current_bucket_
 
+ + + +

+Friends

class ext_hash_map
 
+

Member Typedef Documentation

+ +

◆ value_type

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef std::pair<const Key, Data> ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::value_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ accessor() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::accessor ()
+
+inline
+
+ +
+
+ +

◆ accessor() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::accessor (const accessor)
+
+private
+
+ +
+
+

Member Function Documentation

+ +

◆ empty()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::empty () const
+
+inline
+
+
+ +

◆ operator*()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
value_type& ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::operator* () const
+
+inline
+
+
+ +

◆ operator->()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
value_type* ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::operator-> () const
+
+inline
+
+
+ +

◆ operator=()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
accessor& ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::operator= (const accessor)
+
+private
+
+ +
+
+ +

◆ release()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
void ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::release ()
+
+inline
+
+ +
+
+

Friends And Related Function Documentation

+ +

◆ ext_hash_map

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
friend class ext_hash_map
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ current_bucket_

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
iterator ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::current_bucket_
+
+private
+
+
+ +

◆ has_result_

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::accessor::has_result_
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map_1_1accessor__coll__graph.map b/libddd.html/classext__hash__map_1_1accessor__coll__graph.map new file mode 100644 index 000000000..080472a8b --- /dev/null +++ b/libddd.html/classext__hash__map_1_1accessor__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classext__hash__map_1_1accessor__coll__graph.md5 b/libddd.html/classext__hash__map_1_1accessor__coll__graph.md5 new file mode 100644 index 000000000..f43680332 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1accessor__coll__graph.md5 @@ -0,0 +1 @@ +50b147b49b69374d1d4defc90fb75003 \ No newline at end of file diff --git a/libddd.html/classext__hash__map_1_1accessor__coll__graph.png b/libddd.html/classext__hash__map_1_1accessor__coll__graph.png new file mode 100644 index 000000000..e35c78f13 Binary files /dev/null and b/libddd.html/classext__hash__map_1_1accessor__coll__graph.png differ diff --git a/libddd.html/classext__hash__map_1_1const__accessor-members.html b/libddd.html/classext__hash__map_1_1const__accessor-members.html new file mode 100644 index 000000000..63c58628c --- /dev/null +++ b/libddd.html/classext__hash__map_1_1const__accessor-members.html @@ -0,0 +1,71 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor Member List
+
+
+ +

This is the complete list of members for ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor, including all inherited members.

+ + + + + + + + + + + + +
const_accessor()ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorinline
const_accessor(const const_accessor &)ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorprivate
current_bucket_ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorprivate
empty() constext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorinline
ext_hash_map classext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorfriend
has_result_ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorprivate
operator*() constext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorinline
operator->() constext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorinline
operator=(const const_accessor &)ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorprivate
release()ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessorinline
value_type typedefext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map_1_1const__accessor.html b/libddd.html/classext__hash__map_1_1const__accessor.html new file mode 100644 index 000000000..575445026 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1const__accessor.html @@ -0,0 +1,411 @@ + + + + + + + +DDD: ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Types | +Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor Class Reference
+
+
+ +

#include <util/ext_hash_map.hh>

+
+Collaboration diagram for ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Types

typedef const std::pair< const Key, Data > value_type
 
+ + + + + + + + + + + +

+Public Member Functions

 const_accessor ()
 
bool empty () const
 
const value_typeoperator* () const
 
const value_typeoperator-> () const
 
void release ()
 
+ + + + + +

+Private Member Functions

 const_accessor (const const_accessor &)
 
const_accessoroperator= (const const_accessor &)
 
+ + + + + +

+Private Attributes

bool has_result_
 
const_iterator current_bucket_
 
+ + + +

+Friends

class ext_hash_map
 
+

Member Typedef Documentation

+ +

◆ value_type

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + +
typedef const std::pair<const Key, Data> ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::value_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ const_accessor() [1/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::const_accessor ()
+
+inline
+
+ +
+
+ +

◆ const_accessor() [2/2]

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::const_accessor (const const_accessor)
+
+private
+
+ +
+
+

Member Function Documentation

+ +

◆ empty()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::empty () const
+
+inline
+
+
+ +

◆ operator*()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
const value_type& ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::operator* () const
+
+inline
+
+
+ +

◆ operator->()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
const value_type* ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::operator-> () const
+
+inline
+
+
+ +

◆ operator=()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + + +
const_accessor& ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::operator= (const const_accessor)
+
+private
+
+ +
+
+ +

◆ release()

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + + + + +
void ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::release ()
+
+inline
+
+ +
+
+

Friends And Related Function Documentation

+ +

◆ ext_hash_map

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
friend class ext_hash_map
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ current_bucket_

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
const_iterator ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::current_bucket_
+
+private
+
+
+ +

◆ has_result_

+ +
+
+
+template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
+ + + + + +
+ + + + +
bool ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor::has_result_
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.map b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.map new file mode 100644 index 000000000..40e02df99 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.md5 b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.md5 new file mode 100644 index 000000000..436f0f119 --- /dev/null +++ b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.md5 @@ -0,0 +1 @@ +dcb543c840966687ad25d4cf513c0dda \ No newline at end of file diff --git a/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.png b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.png new file mode 100644 index 000000000..250c3ed21 Binary files /dev/null and b/libddd.html/classext__hash__map_1_1const__accessor__coll__graph.png differ diff --git a/libddd.html/classext__hash__map__coll__graph.map b/libddd.html/classext__hash__map__coll__graph.map new file mode 100644 index 000000000..70e564d38 --- /dev/null +++ b/libddd.html/classext__hash__map__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classext__hash__map__coll__graph.md5 b/libddd.html/classext__hash__map__coll__graph.md5 new file mode 100644 index 000000000..483c71fe5 --- /dev/null +++ b/libddd.html/classext__hash__map__coll__graph.md5 @@ -0,0 +1 @@ +fe4aae19aa7a1743fbf1fa893db57f35 \ No newline at end of file diff --git a/libddd.html/classext__hash__map__coll__graph.png b/libddd.html/classext__hash__map__coll__graph.png new file mode 100644 index 000000000..b2d35ab4b Binary files /dev/null and b/libddd.html/classext__hash__map__coll__graph.png differ diff --git a/libddd.html/classext__hash__map__inherit__graph.map b/libddd.html/classext__hash__map__inherit__graph.map new file mode 100644 index 000000000..ff39e8a09 --- /dev/null +++ b/libddd.html/classext__hash__map__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classext__hash__map__inherit__graph.md5 b/libddd.html/classext__hash__map__inherit__graph.md5 new file mode 100644 index 000000000..f2109827a --- /dev/null +++ b/libddd.html/classext__hash__map__inherit__graph.md5 @@ -0,0 +1 @@ +f05a3c719cf75d03bc320c3dda72f9e6 \ No newline at end of file diff --git a/libddd.html/classext__hash__map__inherit__graph.png b/libddd.html/classext__hash__map__inherit__graph.png new file mode 100644 index 000000000..1b6e46e0b Binary files /dev/null and b/libddd.html/classext__hash__map__inherit__graph.png differ diff --git a/libddd.html/classfobs_1_1DefaultObserver-members.html b/libddd.html/classfobs_1_1DefaultObserver-members.html new file mode 100644 index 000000000..e1e6401c4 --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver-members.html @@ -0,0 +1,68 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
fobs::DefaultObserver Member List
+
+
+ +

This is the complete list of members for fobs::DefaultObserver, including all inherited members.

+ + + + + + + + + +
DefaultObserver()fobs::DefaultObserverinline
FixObserver()fobs::FixObserverinline
should_interrupt(const GSDD &, const GSDD &)fobs::DefaultObserverinlinevirtual
should_interrupt(const GDDD &, const GDDD &)fobs::DefaultObserverinlinevirtual
update(const GSDD &, const GSDD &)fobs::DefaultObserverinlinevirtual
update(const GDDD &, const GDDD &)fobs::DefaultObserverinlinevirtual
was_interrupted() constfobs::DefaultObserverinlinevirtual
~FixObserver()fobs::FixObserverinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classfobs_1_1DefaultObserver.html b/libddd.html/classfobs_1_1DefaultObserver.html new file mode 100644 index 000000000..c41b9998c --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver.html @@ -0,0 +1,304 @@ + + + + + + + +DDD: fobs::DefaultObserver Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +List of all members
+
+
fobs::DefaultObserver Class Reference
+
+
+
+Inheritance diagram for fobs::DefaultObserver:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for fobs::DefaultObserver:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 DefaultObserver ()
 
bool should_interrupt (const GSDD &, const GSDD &)
 
bool should_interrupt (const GDDD &, const GDDD &)
 
bool was_interrupted () const
 
void update (const GSDD &, const GSDD &)
 
void update (const GDDD &, const GDDD &)
 
+

Constructor & Destructor Documentation

+ +

◆ DefaultObserver()

+ +
+
+ + + + + +
+ + + + + + + +
fobs::DefaultObserver::DefaultObserver ()
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ should_interrupt() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fobs::DefaultObserver::should_interrupt (const GDDD,
const GDDD 
)
+
+inlinevirtual
+
+ +

Implements fobs::FixObserver.

+ +
+
+ +

◆ should_interrupt() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool fobs::DefaultObserver::should_interrupt (const GSDDafter,
const GSDDbefore 
)
+
+inlinevirtual
+
+
Warning
: if should_interrult() returns true, then it MUST return true at least until the next call to update(). The attribute is_interrupted is here for this purpose: it can be set to true only by should_interrupt and to false only by update, and is_interrupted => should_interrupt returns true
+ +

Implements fobs::FixObserver.

+ +
+
+ +

◆ update() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void fobs::DefaultObserver::update (const GDDD,
const GDDD 
)
+
+inlinevirtual
+
+ +

Implements fobs::FixObserver.

+ +
+
+ +

◆ update() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void fobs::DefaultObserver::update (const GSDD,
const GSDD 
)
+
+inlinevirtual
+
+ +

Implements fobs::FixObserver.

+ +
+
+ +

◆ was_interrupted()

+ +
+
+ + + + + +
+ + + + + + + +
bool fobs::DefaultObserver::was_interrupted () const
+
+inlinevirtual
+
+ +

Implements fobs::FixObserver.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classfobs_1_1DefaultObserver__coll__graph.map b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.map new file mode 100644 index 000000000..385f59804 --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classfobs_1_1DefaultObserver__coll__graph.md5 b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.md5 new file mode 100644 index 000000000..8b54a9a63 --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.md5 @@ -0,0 +1 @@ +fecb6901d3ebe2b2f776f07e88505488 \ No newline at end of file diff --git a/libddd.html/classfobs_1_1DefaultObserver__coll__graph.png b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.png new file mode 100644 index 000000000..5129fbb39 Binary files /dev/null and b/libddd.html/classfobs_1_1DefaultObserver__coll__graph.png differ diff --git a/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.map b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.map new file mode 100644 index 000000000..385f59804 --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.md5 b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.md5 new file mode 100644 index 000000000..8b54a9a63 --- /dev/null +++ b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.md5 @@ -0,0 +1 @@ +fecb6901d3ebe2b2f776f07e88505488 \ No newline at end of file diff --git a/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.png b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.png new file mode 100644 index 000000000..5129fbb39 Binary files /dev/null and b/libddd.html/classfobs_1_1DefaultObserver__inherit__graph.png differ diff --git a/libddd.html/classfobs_1_1FixObserver-members.html b/libddd.html/classfobs_1_1FixObserver-members.html new file mode 100644 index 000000000..a30e022f9 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver-members.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
fobs::FixObserver Member List
+
+
+ +

This is the complete list of members for fobs::FixObserver, including all inherited members.

+ + + + + + + + +
FixObserver()fobs::FixObserverinline
should_interrupt(const GSDD &after, const GSDD &before)=0fobs::FixObserverpure virtual
should_interrupt(const GDDD &after, const GDDD &before)=0fobs::FixObserverpure virtual
update(const GSDD &after, const GSDD &before)=0fobs::FixObserverpure virtual
update(const GDDD &after, const GDDD &before)=0fobs::FixObserverpure virtual
was_interrupted() const =0fobs::FixObserverpure virtual
~FixObserver()fobs::FixObserverinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classfobs_1_1FixObserver.html b/libddd.html/classfobs_1_1FixObserver.html new file mode 100644 index 000000000..682d2cd95 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver.html @@ -0,0 +1,338 @@ + + + + + + + +DDD: fobs::FixObserver Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +List of all members
+
+
fobs::FixObserver Class Referenceabstract
+
+
+ +

#include <FixObserver.hh>

+
+Inheritance diagram for fobs::FixObserver:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for fobs::FixObserver:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

 FixObserver ()
 
virtual ~FixObserver ()
 
virtual bool should_interrupt (const GSDD &after, const GSDD &before)=0
 
virtual bool should_interrupt (const GDDD &after, const GDDD &before)=0
 
virtual bool was_interrupted () const =0
 
virtual void update (const GSDD &after, const GSDD &before)=0
 
virtual void update (const GDDD &after, const GDDD &before)=0
 
+

Constructor & Destructor Documentation

+ +

◆ FixObserver()

+ +
+
+ + + + + +
+ + + + + + + +
fobs::FixObserver::FixObserver ()
+
+inline
+
+ +
+
+ +

◆ ~FixObserver()

+ +
+
+ + + + + +
+ + + + + + + +
virtual fobs::FixObserver::~FixObserver ()
+
+inlinevirtual
+
+ +
+
+

Member Function Documentation

+ +

◆ should_interrupt() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual bool fobs::FixObserver::should_interrupt (const GDDDafter,
const GDDDbefore 
)
+
+pure virtual
+
+ +

Implemented in fobs::DefaultObserver.

+ +
+
+ +

◆ should_interrupt() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual bool fobs::FixObserver::should_interrupt (const GSDDafter,
const GSDDbefore 
)
+
+pure virtual
+
+
Warning
: if should_interrult() returns true, then it MUST return true at least until the next call to update(). The attribute is_interrupted is here for this purpose: it can be set to true only by should_interrupt and to false only by update, and is_interrupted => should_interrupt returns true
+ +

Implemented in fobs::DefaultObserver.

+ +

Referenced by testWasInterrupt().

+ +
+
+ +

◆ update() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fobs::FixObserver::update (const GDDDafter,
const GDDDbefore 
)
+
+pure virtual
+
+ +

Implemented in fobs::DefaultObserver.

+ +
+
+ +

◆ update() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void fobs::FixObserver::update (const GSDDafter,
const GSDDbefore 
)
+
+pure virtual
+
+
+ +

◆ was_interrupted()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool fobs::FixObserver::was_interrupted () const
+
+pure virtual
+
+ +

Implemented in fobs::DefaultObserver.

+ +

Referenced by sns::Fixpoint::eval().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classfobs_1_1FixObserver__coll__graph.map b/libddd.html/classfobs_1_1FixObserver__coll__graph.map new file mode 100644 index 000000000..dff402b77 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/classfobs_1_1FixObserver__coll__graph.md5 b/libddd.html/classfobs_1_1FixObserver__coll__graph.md5 new file mode 100644 index 000000000..85daa9776 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver__coll__graph.md5 @@ -0,0 +1 @@ +5febc76eb0f089f29a17f37c93d74a1a \ No newline at end of file diff --git a/libddd.html/classfobs_1_1FixObserver__coll__graph.png b/libddd.html/classfobs_1_1FixObserver__coll__graph.png new file mode 100644 index 000000000..cae0390a3 Binary files /dev/null and b/libddd.html/classfobs_1_1FixObserver__coll__graph.png differ diff --git a/libddd.html/classfobs_1_1FixObserver__inherit__graph.map b/libddd.html/classfobs_1_1FixObserver__inherit__graph.map new file mode 100644 index 000000000..0f1c45665 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classfobs_1_1FixObserver__inherit__graph.md5 b/libddd.html/classfobs_1_1FixObserver__inherit__graph.md5 new file mode 100644 index 000000000..961976794 --- /dev/null +++ b/libddd.html/classfobs_1_1FixObserver__inherit__graph.md5 @@ -0,0 +1 @@ +12efc40bd034f8714138116deb52c8c3 \ No newline at end of file diff --git a/libddd.html/classfobs_1_1FixObserver__inherit__graph.png b/libddd.html/classfobs_1_1FixObserver__inherit__graph.png new file mode 100644 index 000000000..66789d8de Binary files /dev/null and b/libddd.html/classfobs_1_1FixObserver__inherit__graph.png differ diff --git a/libddd.html/classhDotExporter-members.html b/libddd.html/classhDotExporter-members.html new file mode 100644 index 000000000..146328e3b --- /dev/null +++ b/libddd.html/classhDotExporter-members.html @@ -0,0 +1,93 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
hDotExporter Member List
+
+
+ +

This is the complete list of members for hDotExporter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
collect(const GSDD &g)hDotExporterinlinevirtual
dotExporter::collect(const SDD &g)dotExporterinlineprotected
dotExporter::collect(const DDD &g)dotExporterinlineprotected
dotExporter::collect(const GDDD &g)dotExporterinline
d3namedotExporterprotected
D3outdotExporterprotected
dotExporter(const string &s="test", bool multiT=false)dotExporterinline
entryd3NamedotExporterprotected
entryd3NbdotExporterprotected
entryNamedotExporterprotected
entryNbdotExporterprotected
finish()dotExporterinline
gsdd_hash_set typedefdotExporter
hDotExporter(const string &s="test", bool multiT=false)hDotExporterinline
init()dotExporterinline
isAligneddotExporterprotected
label(const GSDD &g, const string &name)dotExporterinline
multiTdotExporterprotected
namedotExporterprotected
nextAiddotExporterprotected
nextiddotExporterprotected
nextMiddotExporterprotected
nextPiddotExporterprotected
operator()(const GSDD &g)dotExporterinline
outdotExporterprotected
pathdotExporterprotected
printColor(const GSDD &g, const string &color, gsdd_hash_set &visited)dotExporterinline
printLevels()dotExporterinline
seendotExporterprotected
seen_it typedefdotExporterprotected
seen_rit typedefdotExporterprotected
seen_t typedefdotExporterprotected
setAlign(bool align)dotExporterinline
setColor(const GSDD &g, const string &color)dotExporterinline
setPath(const string &path)dotExporterinline
~dotExporter()dotExporterinlinevirtual
~hDotExporter()hDotExporterinlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classhDotExporter.html b/libddd.html/classhDotExporter.html new file mode 100644 index 000000000..26d679f3d --- /dev/null +++ b/libddd.html/classhDotExporter.html @@ -0,0 +1,1067 @@ + + + + + + + +DDD: hDotExporter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+Public Types | +Public Member Functions | +Protected Types | +Protected Member Functions | +Protected Attributes | +List of all members
+
+
hDotExporter Class Reference
+
+
+
+Inheritance diagram for hDotExporter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for hDotExporter:
+
+
Collaboration graph
+ + + + +
+ + + + +

+Public Types

typedef d3::hash_set< GSDD >::type gsdd_hash_set
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 hDotExporter (const string &s="test", bool multiT=false)
 
virtual ~hDotExporter ()
 
void collect (const GSDD &g)
 
void collect (const GDDD &g)
 
void setPath (const string &path)
 
void printColor (const GSDD &g, const string &color, gsdd_hash_set &visited)
 
void setColor (const GSDD &g, const string &color)
 
void init ()
 
void setAlign (bool align)
 
void label (const GSDD &g, const string &name)
 
int operator() (const GSDD &g)
 
void printLevels ()
 
void finish ()
 
+ + + + + + + +

+Protected Types

typedef std::set< int > seen_t
 
typedef seen_t::const_iterator seen_it
 
typedef seen_t::const_reverse_iterator seen_rit
 
+ + + + + +

+Protected Member Functions

void collect (const SDD &g)
 
void collect (const DDD &g)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

map< GSDD, string > name
 
map< GDDD, string > d3name
 
map< GDDD, string > entryd3Name
 
map< GDDD, int > entryd3Nb
 
map< GSDD, string > entryName
 
map< GSDD, int > entryNb
 
int nextid
 
int nextPid
 
int nextMid
 
int nextAid
 
string path
 
ostream * D3out
 
ostream * out
 
bool multiT
 
bool isAligned
 
seen_t seen
 
+

Member Typedef Documentation

+ +

◆ gsdd_hash_set

+ +
+
+ + + + + +
+ + + + +
typedef d3::hash_set<GSDD>::type dotExporter::gsdd_hash_set
+
+inherited
+
+ +
+
+ +

◆ seen_it

+ +
+
+ + + + + +
+ + + + +
typedef seen_t::const_iterator dotExporter::seen_it
+
+protectedinherited
+
+ +
+
+ +

◆ seen_rit

+ +
+
+ + + + + +
+ + + + +
typedef seen_t::const_reverse_iterator dotExporter::seen_rit
+
+protectedinherited
+
+ +
+
+ +

◆ seen_t

+ +
+
+ + + + + +
+ + + + +
typedef std::set<int> dotExporter::seen_t
+
+protectedinherited
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ hDotExporter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
hDotExporter::hDotExporter (const string & s = "test",
bool multiT = false 
)
+
+inline
+
+ +
+
+ +

◆ ~hDotExporter()

+ +
+
+ + + + + +
+ + + + + + + +
virtual hDotExporter::~hDotExporter ()
+
+inlinevirtual
+
+ +
+
+

Member Function Documentation

+ +

◆ collect() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const DDDg)
+
+inlineprotectedinherited
+
+ +
+
+ +

◆ collect() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const GDDDg)
+
+inlineinherited
+
+
+ +

◆ collect() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void hDotExporter::collect (const GSDDg)
+
+inlinevirtual
+
+
+ +

◆ collect() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::collect (const SDDg)
+
+inlineprotectedinherited
+
+ +

Referenced by dotHighlight::addSDD(), and collect().

+ +
+
+ +

◆ finish()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::finish ()
+
+inlineinherited
+
+ +

Referenced by dotHighlight::exportDot().

+ +
+
+ +

◆ init()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::init ()
+
+inlineinherited
+
+ +

Referenced by exportDot(), and dotHighlight::initialize().

+ +
+
+ +

◆ label()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void dotExporter::label (const GSDDg,
const string & name 
)
+
+inlineinherited
+
+ +

Referenced by dotHighlight::addSDD().

+ +
+
+ +

◆ operator()()

+ +
+
+ + + + + +
+ + + + + + + + +
int dotExporter::operator() (const GSDDg)
+
+inlineinherited
+
+ +
+
+ +

◆ printColor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void dotExporter::printColor (const GSDDg,
const string & color,
gsdd_hash_setvisited 
)
+
+inlineinherited
+
+ +

References GSDD::begin(), and GSDD::end().

+ +
+
+ +

◆ printLevels()

+ +
+
+ + + + + +
+ + + + + + + +
void dotExporter::printLevels ()
+
+inlineinherited
+
+ +

References GSDD::null, GSDD::one, and GSDD::top.

+ +
+
+ +

◆ setAlign()

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::setAlign (bool align)
+
+inlineinherited
+
+ +

Referenced by dotHighlight::setVarAlignment().

+ +
+
+ +

◆ setColor()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void dotExporter::setColor (const GSDDg,
const string & color 
)
+
+inlineinherited
+
+ +

Referenced by dotHighlight::setColor().

+ +
+
+ +

◆ setPath()

+ +
+
+ + + + + +
+ + + + + + + + +
void dotExporter::setPath (const string & path)
+
+inlineinherited
+
+ +

Referenced by dotHighlight::initialize().

+ +
+
+

Member Data Documentation

+ +

◆ d3name

+ +
+
+ + + + + +
+ + + + +
map<GDDD,string> dotExporter::d3name
+
+protectedinherited
+
+ +
+
+ +

◆ D3out

+ +
+
+ + + + + +
+ + + + +
ostream* dotExporter::D3out
+
+protectedinherited
+
+ +
+
+ +

◆ entryd3Name

+ +
+
+ + + + + +
+ + + + +
map<GDDD,string> dotExporter::entryd3Name
+
+protectedinherited
+
+ +
+
+ +

◆ entryd3Nb

+ +
+
+ + + + + +
+ + + + +
map<GDDD,int> dotExporter::entryd3Nb
+
+protectedinherited
+
+ +
+
+ +

◆ entryName

+ +
+
+ + + + + +
+ + + + +
map<GSDD,string> dotExporter::entryName
+
+protectedinherited
+
+ +
+
+ +

◆ entryNb

+ +
+
+ + + + + +
+ + + + +
map<GSDD,int> dotExporter::entryNb
+
+protectedinherited
+
+ +
+
+ +

◆ isAligned

+ +
+
+ + + + + +
+ + + + +
bool dotExporter::isAligned
+
+protectedinherited
+
+ +
+
+ +

◆ multiT

+ +
+
+ + + + + +
+ + + + +
bool dotExporter::multiT
+
+protectedinherited
+
+ +
+
+ +

◆ name

+ +
+
+ + + + + +
+ + + + +
map<GSDD,string> dotExporter::name
+
+protectedinherited
+
+ +
+
+ +

◆ nextAid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextAid
+
+protectedinherited
+
+ +
+
+ +

◆ nextid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextid
+
+protectedinherited
+
+ +
+
+ +

◆ nextMid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextMid
+
+protectedinherited
+
+ +
+
+ +

◆ nextPid

+ +
+
+ + + + + +
+ + + + +
int dotExporter::nextPid
+
+protectedinherited
+
+ +
+
+ +

◆ out

+ +
+
+ + + + + +
+ + + + +
ostream* dotExporter::out
+
+protectedinherited
+
+ +
+
+ +

◆ path

+ +
+
+ + + + + +
+ + + + +
string dotExporter::path
+
+protectedinherited
+
+ +
+
+ +

◆ seen

+ +
+
+ + + + + +
+ + + + +
seen_t dotExporter::seen
+
+protectedinherited
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classhDotExporter__coll__graph.map b/libddd.html/classhDotExporter__coll__graph.map new file mode 100644 index 000000000..af0ef5b5e --- /dev/null +++ b/libddd.html/classhDotExporter__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classhDotExporter__coll__graph.md5 b/libddd.html/classhDotExporter__coll__graph.md5 new file mode 100644 index 000000000..3341ca75a --- /dev/null +++ b/libddd.html/classhDotExporter__coll__graph.md5 @@ -0,0 +1 @@ +ff35e0bcc206de1dbbfcebea156b5223 \ No newline at end of file diff --git a/libddd.html/classhDotExporter__coll__graph.png b/libddd.html/classhDotExporter__coll__graph.png new file mode 100644 index 000000000..1f58ab61d Binary files /dev/null and b/libddd.html/classhDotExporter__coll__graph.png differ diff --git a/libddd.html/classhDotExporter__inherit__graph.map b/libddd.html/classhDotExporter__inherit__graph.map new file mode 100644 index 000000000..af0ef5b5e --- /dev/null +++ b/libddd.html/classhDotExporter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classhDotExporter__inherit__graph.md5 b/libddd.html/classhDotExporter__inherit__graph.md5 new file mode 100644 index 000000000..3341ca75a --- /dev/null +++ b/libddd.html/classhDotExporter__inherit__graph.md5 @@ -0,0 +1 @@ +ff35e0bcc206de1dbbfcebea156b5223 \ No newline at end of file diff --git a/libddd.html/classhDotExporter__inherit__graph.png b/libddd.html/classhDotExporter__inherit__graph.png new file mode 100644 index 000000000..1f58ab61d Binary files /dev/null and b/libddd.html/classhDotExporter__inherit__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1Add-members.html b/libddd.html/classnsMLHom_1_1Add-members.html new file mode 100644 index 000000000..6ce5ac148 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLHom::Add Member List
+
+
+ +

This is the complete list of members for nsMLHom::Add, including all inherited members.

+ + + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
Add(const std::set< MLHom > &s, int ref=0)nsMLHom::Addinline
clone() constnsMLHom::Addinlinevirtual
eval(const GDDD &d) constnsMLHom::Addinlinevirtual
hash() constnsMLHom::Addinlinevirtual
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &h) constnsMLHom::Addinlinevirtual
parametersnsMLHom::Addprivate
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
skip_variable(int) constnsMLHom::Addinline
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1Add.html b/libddd.html/classnsMLHom_1_1Add.html new file mode 100644 index 000000000..2cdd54d72 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add.html @@ -0,0 +1,439 @@ + + + + + + + +DDD: nsMLHom::Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLHom::Add Class Reference
+
+
+
+Inheritance diagram for nsMLHom::Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLHom::Add:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Add (const std::set< MLHom > &s, int ref=0)
 
bool operator== (const _MLHom &h) const
 
_MLHomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
HomNodeMap eval (const GDDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + +

+Private Attributes

std::set< MLHomparameters
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Add()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLHom::Add::Add (const std::set< MLHom > & s,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLHom* nsMLHom::Add::clone () const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References Add().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap nsMLHom::Add::eval (const GDDDd) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References AdditiveMap< K, V, EqualKey >::addAll(), and parameters.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLHom::Add::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLHom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::Add::operator== (const _MLHomh) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References parameters.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::Add::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + + +
+ + + + +
std::set<MLHom> nsMLHom::Add::parameters
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1Add__coll__graph.map b/libddd.html/classnsMLHom_1_1Add__coll__graph.map new file mode 100644 index 000000000..00bf85ea0 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1Add__coll__graph.md5 b/libddd.html/classnsMLHom_1_1Add__coll__graph.md5 new file mode 100644 index 000000000..2805e0207 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add__coll__graph.md5 @@ -0,0 +1 @@ +df8bbb80bab9ba841f6816f07236cc8f \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1Add__coll__graph.png b/libddd.html/classnsMLHom_1_1Add__coll__graph.png new file mode 100644 index 000000000..32f13f4a8 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1Add__coll__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1Add__inherit__graph.map b/libddd.html/classnsMLHom_1_1Add__inherit__graph.map new file mode 100644 index 000000000..00bf85ea0 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1Add__inherit__graph.md5 b/libddd.html/classnsMLHom_1_1Add__inherit__graph.md5 new file mode 100644 index 000000000..2805e0207 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Add__inherit__graph.md5 @@ -0,0 +1 @@ +df8bbb80bab9ba841f6816f07236cc8f \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1Add__inherit__graph.png b/libddd.html/classnsMLHom_1_1Add__inherit__graph.png new file mode 100644 index 000000000..32f13f4a8 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1Add__inherit__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1ConstantUp-members.html b/libddd.html/classnsMLHom_1_1ConstantUp-members.html new file mode 100644 index 000000000..62663f306 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLHom::ConstantUp Member List
+
+
+ +

This is the complete list of members for nsMLHom::ConstantUp, including all inherited members.

+ + + + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() constnsMLHom::ConstantUpinlinevirtual
ConstantUp(const GHom &uup, const MLHom &ddown)nsMLHom::ConstantUpinline
downnsMLHom::ConstantUpprivate
eval(const GDDD &d) constnsMLHom::ConstantUpinlinevirtual
hash() constnsMLHom::ConstantUpinlinevirtual
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &other) constnsMLHom::ConstantUpinlinevirtual
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
skip_variable(int) constnsMLHom::ConstantUpinline
upnsMLHom::ConstantUpprivate
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1ConstantUp.html b/libddd.html/classnsMLHom_1_1ConstantUp.html new file mode 100644 index 000000000..13f33bee6 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp.html @@ -0,0 +1,468 @@ + + + + + + + +DDD: nsMLHom::ConstantUp Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLHom::ConstantUp Class Reference
+
+
+
+Inheritance diagram for nsMLHom::ConstantUp:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLHom::ConstantUp:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ConstantUp (const GHom &uup, const MLHom &ddown)
 
bool operator== (const _MLHom &other) const
 
_MLHomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
HomNodeMap eval (const GDDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + + + +

+Private Attributes

GHom up
 
MLHom down
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ ConstantUp()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLHom::ConstantUp::ConstantUp (const GHomuup,
const MLHomddown 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLHom* nsMLHom::ConstantUp::clone () const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References ConstantUp().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap nsMLHom::ConstantUp::eval (const GDDDd) const
+
+inlinevirtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLHom::ConstantUp::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLHom.

+ +

References down, GHom::hash(), MLHom::hash(), and up.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::ConstantUp::operator== (const _MLHomother) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References down, and up.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::ConstantUp::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ down

+ +
+
+ + + + + +
+ + + + +
MLHom nsMLHom::ConstantUp::down
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+ +

◆ up

+ +
+
+ + + + + +
+ + + + +
GHom nsMLHom::ConstantUp::up
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.map b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.map new file mode 100644 index 000000000..2ec910318 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.md5 b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.md5 new file mode 100644 index 000000000..b30d68675 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.md5 @@ -0,0 +1 @@ +b5211e054983fb2f7281fb1fe1bd8b36 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.png b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.png new file mode 100644 index 000000000..92e83c95b Binary files /dev/null and b/libddd.html/classnsMLHom_1_1ConstantUp__coll__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.map b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.map new file mode 100644 index 000000000..f150db13c --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.md5 b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.md5 new file mode 100644 index 000000000..876329b06 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.md5 @@ -0,0 +1 @@ +0170bd1bd87e28cb4c4e8a6f842bba28 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.png b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.png new file mode 100644 index 000000000..f52d63402 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1ConstantUp__inherit__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter-members.html b/libddd.html/classnsMLHom_1_1GHomAdapter-members.html new file mode 100644 index 000000000..9a9cfaba9 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLHom::GHomAdapter Member List
+
+
+ +

This is the complete list of members for nsMLHom::GHomAdapter, including all inherited members.

+ + + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() constnsMLHom::GHomAdapterinlinevirtual
eval(const GDDD &d) constnsMLHom::GHomAdapterinlinevirtual
GHomAdapter(const GHom &_h, int ref=0)nsMLHom::GHomAdapterinline
hnsMLHom::GHomAdapterprivate
hash() constnsMLHom::GHomAdapterinlinevirtual
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &other) constnsMLHom::GHomAdapterinlinevirtual
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
skip_variable(int var) constnsMLHom::GHomAdapterinline
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter.html b/libddd.html/classnsMLHom_1_1GHomAdapter.html new file mode 100644 index 000000000..d8fbe9cf7 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter.html @@ -0,0 +1,443 @@ + + + + + + + +DDD: nsMLHom::GHomAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLHom::GHomAdapter Class Reference
+
+
+
+Inheritance diagram for nsMLHom::GHomAdapter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLHom::GHomAdapter:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 GHomAdapter (const GHom &_h, int ref=0)
 
bool operator== (const _MLHom &other) const
 
size_t hash () const
 unique table trivia More...
 
_MLHomclone () const
 
bool skip_variable (int var) const
 
HomNodeMap eval (const GDDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + +

+Private Attributes

GHom h
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ GHomAdapter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLHom::GHomAdapter::GHomAdapter (const GHom_h,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLHom* nsMLHom::GHomAdapter::clone () const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References GHomAdapter().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap nsMLHom::GHomAdapter::eval (const GDDDd) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References AdditiveMap< K, V, EqualKey >::add(), h, and GHom::id.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLHom::GHomAdapter::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLHom.

+ +

References h, and GHom::hash().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::GHomAdapter::operator== (const _MLHomother) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References h.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::GHomAdapter::skip_variable (int var) const
+
+inline
+
+ +

References h, and GHom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
GHom nsMLHom::GHomAdapter::h
+
+private
+
+ +

Referenced by eval(), hash(), operator==(), and skip_variable().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.map b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.map new file mode 100644 index 000000000..4193b5a50 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.md5 b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.md5 new file mode 100644 index 000000000..5c726a756 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.md5 @@ -0,0 +1 @@ +d1e88f6b4a8eb524a30c3b440a0b9403 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.png b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.png new file mode 100644 index 000000000..4238ef583 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1GHomAdapter__coll__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.map b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.map new file mode 100644 index 000000000..16a968c42 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.md5 b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.md5 new file mode 100644 index 000000000..e05b827db --- /dev/null +++ b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.md5 @@ -0,0 +1 @@ +a09367e827221470184fe656051fe3c1 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.png b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.png new file mode 100644 index 000000000..d8fc0747a Binary files /dev/null and b/libddd.html/classnsMLHom_1_1GHomAdapter__inherit__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1Identity-members.html b/libddd.html/classnsMLHom_1_1Identity-members.html new file mode 100644 index 000000000..131c20073 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity-members.html @@ -0,0 +1,72 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLHom::Identity Member List
+
+
+ +

This is the complete list of members for nsMLHom::Identity, including all inherited members.

+ + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() constnsMLHom::Identityinlinevirtual
eval(const GDDD &d) constnsMLHom::Identityinlinevirtual
hash() constnsMLHom::Identityinlinevirtual
Identity(int ref=0)nsMLHom::Identityinline
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &) constnsMLHom::Identityinlinevirtual
refCounter_MLHommutableprivate
shouldCache() constnsMLHom::Identityinlinevirtual
skip_variable(int) constnsMLHom::Identityinline
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1Identity.html b/libddd.html/classnsMLHom_1_1Identity.html new file mode 100644 index 000000000..a83134e21 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity.html @@ -0,0 +1,399 @@ + + + + + + + +DDD: nsMLHom::Identity Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLHom::Identity Class Reference
+
+
+
+Inheritance diagram for nsMLHom::Identity:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLHom::Identity:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Identity (int ref=0)
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
bool operator== (const _MLHom &) const
 
size_t hash () const
 unique table trivia More...
 
_MLHomclone () const
 
bool skip_variable (int) const
 
HomNodeMap eval (const GDDD &d) const
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Identity()

+ +
+
+ + + + + +
+ + + + + + + + +
nsMLHom::Identity::Identity (int ref = 0)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLHom* nsMLHom::Identity::clone () const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References Identity().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap nsMLHom::Identity::eval (const GDDDd) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References AdditiveMap< K, V, EqualKey >::add(), and GHom::id.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLHom::Identity::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLHom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::Identity::operator== (const _MLHom) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool nsMLHom::Identity::shouldCache () const
+
+inlinevirtual
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented from _MLHom.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::Identity::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1Identity__coll__graph.map b/libddd.html/classnsMLHom_1_1Identity__coll__graph.map new file mode 100644 index 000000000..c35b87d63 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1Identity__coll__graph.md5 b/libddd.html/classnsMLHom_1_1Identity__coll__graph.md5 new file mode 100644 index 000000000..2ecdbcd14 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity__coll__graph.md5 @@ -0,0 +1 @@ +e2db185a84b5a4f3ff358f619a24fef2 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1Identity__coll__graph.png b/libddd.html/classnsMLHom_1_1Identity__coll__graph.png new file mode 100644 index 000000000..74aff6a32 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1Identity__coll__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1Identity__inherit__graph.map b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.map new file mode 100644 index 000000000..c35b87d63 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1Identity__inherit__graph.md5 b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.md5 new file mode 100644 index 000000000..2ecdbcd14 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.md5 @@ -0,0 +1 @@ +e2db185a84b5a4f3ff358f619a24fef2 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1Identity__inherit__graph.png b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.png new file mode 100644 index 000000000..74aff6a32 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1Identity__inherit__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1LeftConcat-members.html b/libddd.html/classnsMLHom_1_1LeftConcat-members.html new file mode 100644 index 000000000..bd22c475e --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLHom::LeftConcat Member List
+
+
+ +

This is the complete list of members for nsMLHom::LeftConcat, including all inherited members.

+ + + + + + + + + + + + + + + +
_MLHom(int ref=0)_MLHominline
clone() constnsMLHom::LeftConcatinlinevirtual
eval(const GDDD &d) constnsMLHom::LeftConcatinlinevirtual
hnsMLHom::LeftConcatprivate
hash() constnsMLHom::LeftConcatinlinevirtual
leftnsMLHom::LeftConcatprivate
LeftConcat(const GDDD &l, const MLHom &_h, int ref=0)nsMLHom::LeftConcatinline
mark() const_MLHominlineprivatevirtual
marking_MLHommutableprivate
operator==(const _MLHom &other) constnsMLHom::LeftConcatinlinevirtual
refCounter_MLHommutableprivate
shouldCache() const_MLHominlinevirtual
skip_variable(int) constnsMLHom::LeftConcatinline
~_MLHom()_MLHominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1LeftConcat.html b/libddd.html/classnsMLHom_1_1LeftConcat.html new file mode 100644 index 000000000..401f652a6 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat.html @@ -0,0 +1,473 @@ + + + + + + + +DDD: nsMLHom::LeftConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLHom::LeftConcat Class Reference
+
+
+
+Inheritance diagram for nsMLHom::LeftConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLHom::LeftConcat:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LeftConcat (const GDDD &l, const MLHom &_h, int ref=0)
 
bool operator== (const _MLHom &other) const
 
_MLHomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
HomNodeMap eval (const GDDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + + + +

+Private Attributes

GDDD left
 
MLHom h
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ LeftConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
nsMLHom::LeftConcat::LeftConcat (const GDDDl,
const MLHom_h,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLHom* nsMLHom::LeftConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References LeftConcat().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
HomNodeMap nsMLHom::LeftConcat::eval (const GDDDd) const
+
+inlinevirtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLHom::LeftConcat::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLHom.

+ +

References h, GDDD::hash(), MLHom::hash(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLHom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::LeftConcat::operator== (const _MLHomother) const
+
+inlinevirtual
+
+ +

Implements _MLHom.

+ +

References h, and left.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLHom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLHom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLHom::LeftConcat::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
MLHom nsMLHom::LeftConcat::h
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GDDD nsMLHom::LeftConcat::left
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLHom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLHom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLHom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.map b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.map new file mode 100644 index 000000000..7bfd39968 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.md5 b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.md5 new file mode 100644 index 000000000..1c7b83c16 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.md5 @@ -0,0 +1 @@ +ff2a556a9a0662a2277eb9a9d2fa0ecd \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.png b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.png new file mode 100644 index 000000000..080036681 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1LeftConcat__coll__graph.png differ diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.map b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.map new file mode 100644 index 000000000..3bbfe6315 --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.md5 b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.md5 new file mode 100644 index 000000000..14fefc2de --- /dev/null +++ b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.md5 @@ -0,0 +1 @@ +a7178baead1622623f7593566cb40ae8 \ No newline at end of file diff --git a/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.png b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.png new file mode 100644 index 000000000..c6a82be26 Binary files /dev/null and b/libddd.html/classnsMLHom_1_1LeftConcat__inherit__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1Add-members.html b/libddd.html/classnsMLShom_1_1Add-members.html new file mode 100644 index 000000000..83901da90 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLShom::Add Member List
+
+
+ +

This is the complete list of members for nsMLShom::Add, including all inherited members.

+ + + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
Add(const std::set< MLShom > &s, int ref=0)nsMLShom::Addinline
clone() constnsMLShom::Addinlinevirtual
eval(const GSDD &d) constnsMLShom::Addinlinevirtual
hash() constnsMLShom::Addinlinevirtual
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &h) constnsMLShom::Addinlinevirtual
parametersnsMLShom::Addprivate
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
skip_variable(int) constnsMLShom::Addinline
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1Add.html b/libddd.html/classnsMLShom_1_1Add.html new file mode 100644 index 000000000..682699a0b --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add.html @@ -0,0 +1,439 @@ + + + + + + + +DDD: nsMLShom::Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLShom::Add Class Reference
+
+
+
+Inheritance diagram for nsMLShom::Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLShom::Add:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Add (const std::set< MLShom > &s, int ref=0)
 
bool operator== (const _MLShom &h) const
 
_MLShomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
SHomNodeMap eval (const GSDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + +

+Private Attributes

std::set< MLShomparameters
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Add()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLShom::Add::Add (const std::set< MLShom > & s,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLShom* nsMLShom::Add::clone () const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References Add().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap nsMLShom::Add::eval (const GSDDd) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References AdditiveMap< K, V, EqualKey >::addAll(), and parameters.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLShom::Add::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLShom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::Add::operator== (const _MLShomh) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References parameters.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::Add::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + + +
+ + + + +
std::set<MLShom> nsMLShom::Add::parameters
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1Add__coll__graph.map b/libddd.html/classnsMLShom_1_1Add__coll__graph.map new file mode 100644 index 000000000..3a377cff5 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1Add__coll__graph.md5 b/libddd.html/classnsMLShom_1_1Add__coll__graph.md5 new file mode 100644 index 000000000..cacb43fe7 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add__coll__graph.md5 @@ -0,0 +1 @@ +2be6432ebc5fcbf19dc95c664d48e066 \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1Add__coll__graph.png b/libddd.html/classnsMLShom_1_1Add__coll__graph.png new file mode 100644 index 000000000..414a270bf Binary files /dev/null and b/libddd.html/classnsMLShom_1_1Add__coll__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1Add__inherit__graph.map b/libddd.html/classnsMLShom_1_1Add__inherit__graph.map new file mode 100644 index 000000000..3a377cff5 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1Add__inherit__graph.md5 b/libddd.html/classnsMLShom_1_1Add__inherit__graph.md5 new file mode 100644 index 000000000..cacb43fe7 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Add__inherit__graph.md5 @@ -0,0 +1 @@ +2be6432ebc5fcbf19dc95c664d48e066 \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1Add__inherit__graph.png b/libddd.html/classnsMLShom_1_1Add__inherit__graph.png new file mode 100644 index 000000000..414a270bf Binary files /dev/null and b/libddd.html/classnsMLShom_1_1Add__inherit__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1ConstantUp-members.html b/libddd.html/classnsMLShom_1_1ConstantUp-members.html new file mode 100644 index 000000000..93df6e75a --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLShom::ConstantUp Member List
+
+
+ +

This is the complete list of members for nsMLShom::ConstantUp, including all inherited members.

+ + + + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() constnsMLShom::ConstantUpinlinevirtual
ConstantUp(const GShom &uup, const MLShom &ddown)nsMLShom::ConstantUpinline
downnsMLShom::ConstantUpprivate
eval(const GSDD &d) constnsMLShom::ConstantUpinlinevirtual
hash() constnsMLShom::ConstantUpinlinevirtual
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &other) constnsMLShom::ConstantUpinlinevirtual
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
skip_variable(int) constnsMLShom::ConstantUpinline
upnsMLShom::ConstantUpprivate
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1ConstantUp.html b/libddd.html/classnsMLShom_1_1ConstantUp.html new file mode 100644 index 000000000..5c0187ec3 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp.html @@ -0,0 +1,468 @@ + + + + + + + +DDD: nsMLShom::ConstantUp Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLShom::ConstantUp Class Reference
+
+
+
+Inheritance diagram for nsMLShom::ConstantUp:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLShom::ConstantUp:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ConstantUp (const GShom &uup, const MLShom &ddown)
 
bool operator== (const _MLShom &other) const
 
_MLShomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
SHomNodeMap eval (const GSDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + + + +

+Private Attributes

GShom up
 
MLShom down
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ ConstantUp()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLShom::ConstantUp::ConstantUp (const GShomuup,
const MLShomddown 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLShom* nsMLShom::ConstantUp::clone () const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References ConstantUp().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap nsMLShom::ConstantUp::eval (const GSDDd) const
+
+inlinevirtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLShom::ConstantUp::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLShom.

+ +

References down, MLShom::hash(), GShom::hash(), and up.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::ConstantUp::operator== (const _MLShomother) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References down, and up.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::ConstantUp::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ down

+ +
+
+ + + + + +
+ + + + +
MLShom nsMLShom::ConstantUp::down
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+ +

◆ up

+ +
+
+ + + + + +
+ + + + +
GShom nsMLShom::ConstantUp::up
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.map b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.map new file mode 100644 index 000000000..147a4460e --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.md5 b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.md5 new file mode 100644 index 000000000..9b8184b5b --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.md5 @@ -0,0 +1 @@ +8923ccc5d15b5dcbad69ac23cfffa44a \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.png b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.png new file mode 100644 index 000000000..463e1406b Binary files /dev/null and b/libddd.html/classnsMLShom_1_1ConstantUp__coll__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.map b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.map new file mode 100644 index 000000000..72c5a8c5d --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.md5 b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.md5 new file mode 100644 index 000000000..e2b1b364b --- /dev/null +++ b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.md5 @@ -0,0 +1 @@ +1e51013d052d0faa16e8ca167b5127b7 \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.png b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.png new file mode 100644 index 000000000..241fb7106 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1ConstantUp__inherit__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter-members.html b/libddd.html/classnsMLShom_1_1GShomAdapter-members.html new file mode 100644 index 000000000..4dcd2c006 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter-members.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLShom::GShomAdapter Member List
+
+
+ +

This is the complete list of members for nsMLShom::GShomAdapter, including all inherited members.

+ + + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() constnsMLShom::GShomAdapterinlinevirtual
eval(const GSDD &d) constnsMLShom::GShomAdapterinlinevirtual
GShomAdapter(const GShom &_h, int ref=0)nsMLShom::GShomAdapterinline
hnsMLShom::GShomAdapterprivate
hash() constnsMLShom::GShomAdapterinlinevirtual
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &other) constnsMLShom::GShomAdapterinlinevirtual
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
skip_variable(int var) constnsMLShom::GShomAdapterinline
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter.html b/libddd.html/classnsMLShom_1_1GShomAdapter.html new file mode 100644 index 000000000..f0ee00bd5 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter.html @@ -0,0 +1,443 @@ + + + + + + + +DDD: nsMLShom::GShomAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLShom::GShomAdapter Class Reference
+
+
+
+Inheritance diagram for nsMLShom::GShomAdapter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLShom::GShomAdapter:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 GShomAdapter (const GShom &_h, int ref=0)
 
bool operator== (const _MLShom &other) const
 
size_t hash () const
 unique table trivia More...
 
_MLShomclone () const
 
bool skip_variable (int var) const
 
SHomNodeMap eval (const GSDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + +

+Private Attributes

GShom h
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ GShomAdapter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
nsMLShom::GShomAdapter::GShomAdapter (const GShom_h,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLShom* nsMLShom::GShomAdapter::clone () const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References GShomAdapter().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap nsMLShom::GShomAdapter::eval (const GSDDd) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References AdditiveMap< K, V, EqualKey >::add(), h, and GShom::id.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLShom::GShomAdapter::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLShom.

+ +

References h, and GShom::hash().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::GShomAdapter::operator== (const _MLShomother) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References h.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::GShomAdapter::skip_variable (int var) const
+
+inline
+
+ +

References h, and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
GShom nsMLShom::GShomAdapter::h
+
+private
+
+ +

Referenced by eval(), hash(), operator==(), and skip_variable().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.map b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.map new file mode 100644 index 000000000..21e4b9a1e --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.md5 b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.md5 new file mode 100644 index 000000000..14b430ac9 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.md5 @@ -0,0 +1 @@ +f4368c0347748428fa6fcd669926b574 \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.png b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.png new file mode 100644 index 000000000..3a7496134 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1GShomAdapter__coll__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.map b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.map new file mode 100644 index 000000000..3dadb2902 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.md5 b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.md5 new file mode 100644 index 000000000..8baa5e4b8 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.md5 @@ -0,0 +1 @@ +6cafba3ac467cf7b21ea5d4efeac8ebc \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.png b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.png new file mode 100644 index 000000000..73f8756f0 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1GShomAdapter__inherit__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1Identity-members.html b/libddd.html/classnsMLShom_1_1Identity-members.html new file mode 100644 index 000000000..52cb0bd4d --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity-members.html @@ -0,0 +1,72 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLShom::Identity Member List
+
+
+ +

This is the complete list of members for nsMLShom::Identity, including all inherited members.

+ + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() constnsMLShom::Identityinlinevirtual
eval(const GSDD &d) constnsMLShom::Identityinlinevirtual
hash() constnsMLShom::Identityinlinevirtual
Identity(int ref=0)nsMLShom::Identityinline
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &) constnsMLShom::Identityinlinevirtual
refCounter_MLShommutableprivate
shouldCache() constnsMLShom::Identityinlinevirtual
skip_variable(int) constnsMLShom::Identityinline
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1Identity.html b/libddd.html/classnsMLShom_1_1Identity.html new file mode 100644 index 000000000..12f61ab6a --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity.html @@ -0,0 +1,399 @@ + + + + + + + +DDD: nsMLShom::Identity Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLShom::Identity Class Reference
+
+
+
+Inheritance diagram for nsMLShom::Identity:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLShom::Identity:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Identity (int ref=0)
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
bool operator== (const _MLShom &) const
 
size_t hash () const
 unique table trivia More...
 
_MLShomclone () const
 
bool skip_variable (int) const
 
SHomNodeMap eval (const GSDD &d) const
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + +

+Private Attributes

int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Identity()

+ +
+
+ + + + + +
+ + + + + + + + +
nsMLShom::Identity::Identity (int ref = 0)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLShom* nsMLShom::Identity::clone () const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References Identity().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap nsMLShom::Identity::eval (const GSDDd) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References AdditiveMap< K, V, EqualKey >::add(), and GShom::id.

+ +
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLShom::Identity::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLShom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::Identity::operator== (const _MLShom) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool nsMLShom::Identity::shouldCache () const
+
+inlinevirtual
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented from _MLShom.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::Identity::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1Identity__coll__graph.map b/libddd.html/classnsMLShom_1_1Identity__coll__graph.map new file mode 100644 index 000000000..7b10752a1 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1Identity__coll__graph.md5 b/libddd.html/classnsMLShom_1_1Identity__coll__graph.md5 new file mode 100644 index 000000000..b7314035d --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity__coll__graph.md5 @@ -0,0 +1 @@ +ab3c49e8e33ffcbe0251662de9c3949e \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1Identity__coll__graph.png b/libddd.html/classnsMLShom_1_1Identity__coll__graph.png new file mode 100644 index 000000000..764a2f6f9 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1Identity__coll__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1Identity__inherit__graph.map b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.map new file mode 100644 index 000000000..7b10752a1 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1Identity__inherit__graph.md5 b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.md5 new file mode 100644 index 000000000..b7314035d --- /dev/null +++ b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.md5 @@ -0,0 +1 @@ +ab3c49e8e33ffcbe0251662de9c3949e \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1Identity__inherit__graph.png b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.png new file mode 100644 index 000000000..764a2f6f9 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1Identity__inherit__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1LeftConcat-members.html b/libddd.html/classnsMLShom_1_1LeftConcat-members.html new file mode 100644 index 000000000..7efc92437 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat-members.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
nsMLShom::LeftConcat Member List
+
+
+ +

This is the complete list of members for nsMLShom::LeftConcat, including all inherited members.

+ + + + + + + + + + + + + + + +
_MLShom(int ref=0)_MLShominline
clone() constnsMLShom::LeftConcatinlinevirtual
eval(const GSDD &d) constnsMLShom::LeftConcatinlinevirtual
hnsMLShom::LeftConcatprivate
hash() constnsMLShom::LeftConcatinlinevirtual
leftnsMLShom::LeftConcatprivate
LeftConcat(const GSDD &l, const MLShom &_h, int ref=0)nsMLShom::LeftConcatinline
mark() const_MLShominlineprivatevirtual
marking_MLShommutableprivate
operator==(const _MLShom &other) constnsMLShom::LeftConcatinlinevirtual
refCounter_MLShommutableprivate
shouldCache() const_MLShominlinevirtual
skip_variable(int) constnsMLShom::LeftConcatinline
~_MLShom()_MLShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1LeftConcat.html b/libddd.html/classnsMLShom_1_1LeftConcat.html new file mode 100644 index 000000000..776d4eb5b --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat.html @@ -0,0 +1,475 @@ + + + + + + + +DDD: nsMLShom::LeftConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
nsMLShom::LeftConcat Class Reference
+
+
+
+Inheritance diagram for nsMLShom::LeftConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for nsMLShom::LeftConcat:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LeftConcat (const GSDD &l, const MLShom &_h, int ref=0)
 
bool operator== (const _MLShom &other) const
 
_MLShomclone () const
 
size_t hash () const
 unique table trivia More...
 
bool skip_variable (int) const
 
SHomNodeMap eval (const GSDD &d) const
 
virtual bool shouldCache () const
 test if caching should be done : default means should cache More...
 
+ + + + +

+Private Member Functions

virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
+ + + + + + + + + + + +

+Private Attributes

GSDD left
 
MLShom h
 
int refCounter
 For garbage collection. More...
 
bool marking
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ LeftConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
nsMLShom::LeftConcat::LeftConcat (const GSDDl,
const MLShom_h,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_MLShom* nsMLShom::LeftConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References LeftConcat().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
SHomNodeMap nsMLShom::LeftConcat::eval (const GSDDd) const
+
+inlinevirtual
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t nsMLShom::LeftConcat::hash () const
+
+inlinevirtual
+
+ +

unique table trivia

+ +

Implements _MLShom.

+ +

References h, MLShom::hash(), GSDD::hash(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _MLShom::mark () const
+
+inlineprivatevirtualinherited
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::LeftConcat::operator== (const _MLShomother) const
+
+inlinevirtual
+
+ +

Implements _MLShom.

+ +

References h, and left.

+ +
+
+ +

◆ shouldCache()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _MLShom::shouldCache () const
+
+inlinevirtualinherited
+
+ +

test if caching should be done : default means should cache

+ +

Reimplemented in nsMLShom::Identity.

+ +
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool nsMLShom::LeftConcat::skip_variable (int ) const
+
+inline
+
+ +
+
+

Member Data Documentation

+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
MLShom nsMLShom::LeftConcat::h
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GSDD nsMLShom::LeftConcat::left
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+ +

◆ marking

+ +
+
+ + + + + +
+ + + + +
bool _MLShom::marking
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by MLShom::garbage().

+ +
+
+ +

◆ refCounter

+ +
+
+ + + + + +
+ + + + +
int _MLShom::refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _MLHom is referenced from the context of an MLHom.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.map b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.map new file mode 100644 index 000000000..3399f2259 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.md5 b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.md5 new file mode 100644 index 000000000..5f52bf050 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.md5 @@ -0,0 +1 @@ +134a3d19b173ab4452f703bef0317b0c \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.png b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.png new file mode 100644 index 000000000..d2a26968b Binary files /dev/null and b/libddd.html/classnsMLShom_1_1LeftConcat__coll__graph.png differ diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.map b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.map new file mode 100644 index 000000000..630b41644 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.md5 b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.md5 new file mode 100644 index 000000000..157ecd919 --- /dev/null +++ b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.md5 @@ -0,0 +1 @@ +aad982ea5266b20107253cfbf7e81c8c \ No newline at end of file diff --git a/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.png b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.png new file mode 100644 index 000000000..f8e7ff782 Binary files /dev/null and b/libddd.html/classnsMLShom_1_1LeftConcat__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Add-members.html b/libddd.html/classsns_1_1Add-members.html new file mode 100644 index 000000000..b22b8bf0c --- /dev/null +++ b/libddd.html/classsns_1_1Add-members.html @@ -0,0 +1,97 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Add Member List
+
+
+ +

This is the complete list of members for sns::Add, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
Add(const d3::set< GShom >::type &p, bool have_id)sns::Addinline
clone() constsns::Addinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Addinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
factorizeByLevel(Gset_t &G, int target) constsns::Addinlineprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_have_id() constsns::Addinline
get_partition(int var) constsns::Addinline
get_range() constsns::Addinlinevirtual
Gset_it typedefsns::Add
Gset_t typedefsns::Add
has_image(const GSDD &d) constsns::Addinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Addinlinevirtual
have_idsns::Addprivate
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Addinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Addinlinevirtual
mark() constsns::Addinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Addinlinevirtual
parameterssns::Add
parameters_it typedefsns::Add
parameters_t typedefsns::Add
partition_cachesns::Addmutableprivate
partition_cache_type typedefsns::Add
print(std::ostream &os) constsns::Addinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::Addinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Add.html b/libddd.html/classsns_1_1Add.html new file mode 100644 index 000000000..1de761825 --- /dev/null +++ b/libddd.html/classsns_1_1Add.html @@ -0,0 +1,1174 @@ + + + + + + + +DDD: sns::Add Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Classes | +Public Types | +Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Add Class Reference
+
+
+
+Inheritance diagram for sns::Add:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Add:
+
+
Collaboration graph
+ + + + + + +
+ + + + +

+Classes

struct  partition
 
+ + + + + + + + + + + +

+Public Types

typedef std::vector< GShomGset_t
 
typedef Gset_t::const_iterator Gset_it
 
typedef hash_map< int, partition >::type partition_cache_type
 
typedef std::vector< GShomparameters_t
 
typedef parameters_t::const_iterator parameters_it
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Add (const d3::set< GShom >::type &p, bool have_id)
 
bool get_have_id () const
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD has_image (const GSDD &d) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GShom invert (const GSDD &pot) const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
partition get_partition (int var) const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + +

+Public Attributes

parameters_t parameters
 
+ + + + + + + + + + +

+Private Member Functions

void factorizeByLevel (Gset_t &G, int target) const
 apply factorization rules adapted to g = l & f More...
 
GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

partition_cache_type partition_cache
 
bool have_id
 
int _refCounter
 For garbage collection. More...
 
+

Member Typedef Documentation

+ +

◆ Gset_it

+ +
+
+ + + + +
typedef Gset_t::const_iterator sns::Add::Gset_it
+
+ +
+
+ +

◆ Gset_t

+ +
+
+ + + + +
typedef std::vector<GShom> sns::Add::Gset_t
+
+ +
+
+ +

◆ parameters_it

+ +
+
+ + + + +
typedef parameters_t::const_iterator sns::Add::parameters_it
+
+ +
+
+ +

◆ parameters_t

+ +
+
+ + + + +
typedef std::vector<GShom> sns::Add::parameters_t
+
+ +
+
+ +

◆ partition_cache_type

+ +
+
+ + + + +
typedef hash_map<int, partition>::type sns::Add::partition_cache_type
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Add()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::Add::Add (const d3::set< GShom >::type & p,
bool have_id 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Add::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Add().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Add::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), _GShom::GShom, GSDD::null, GSDD::one, parameters, partition_cache, skip_variable(), GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ factorizeByLevel()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void sns::Add::factorizeByLevel (Gset_tG,
int target 
) const
+
+inlineprivate
+
+ +

apply factorization rules adapted to g = l & f

+

First step : for any g1 = l1 & f1 and any g2 = l2 & f2, if l1 == l2 then rewrite into g' = g1 + g2 = l1 & (f1+f2)

+

load the map

+

We have now obtained a partition of G into the terms of the form l & f, stored by l key in the map_ltof, and the "normal" or default g terms, that are still in G.

+

Now apply second factorization wrt. the f value

+

look if the term exists

+

Finally reinsert into the G set

+ +

References GShom::add, and _GShom::get_concret().

+ +

Referenced by skip_variable().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_have_id()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Add::get_have_id () const
+
+inline
+
+ +

References have_id.

+ +
+
+ +

◆ get_partition()

+ +
+
+ + + + + +
+ + + + + + + + +
partition sns::Add::get_partition (int var) const
+
+inline
+
+ +

References partition_cache, and skip_variable().

+ +
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::Add::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Add::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GSDD::null, and parameters.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Add::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Add::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::add, and parameters.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Add::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Add::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References parameters, and partition_cache.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Add::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Add::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Add::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References GShom::add, sns::Add::partition::F, factorizeByLevel(), sns::Add::partition::G, _GShom::get_concret(), sns::Add::partition::has_local, sns::Add::partition::L, parameters, partition_cache, and _GShom::skip_variable().

+ +

Referenced by eval(), and get_partition().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ have_id

+ +
+
+ + + + + +
+ + + + +
bool sns::Add::have_id
+
+private
+
+ +

Referenced by get_have_id().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + +
parameters_t sns::Add::parameters
+
+
+ +

◆ partition_cache

+ +
+
+ + + + + +
+ + + + +
partition_cache_type sns::Add::partition_cache
+
+mutableprivate
+
+ +

Referenced by eval(), get_partition(), mark(), and skip_variable().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Add__coll__graph.map b/libddd.html/classsns_1_1Add__coll__graph.map new file mode 100644 index 000000000..c16ef8cb5 --- /dev/null +++ b/libddd.html/classsns_1_1Add__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classsns_1_1Add__coll__graph.md5 b/libddd.html/classsns_1_1Add__coll__graph.md5 new file mode 100644 index 000000000..6a6ba645f --- /dev/null +++ b/libddd.html/classsns_1_1Add__coll__graph.md5 @@ -0,0 +1 @@ +07eed62cff4d5907652eafd0423a0485 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Add__coll__graph.png b/libddd.html/classsns_1_1Add__coll__graph.png new file mode 100644 index 000000000..9973df02d Binary files /dev/null and b/libddd.html/classsns_1_1Add__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Add__inherit__graph.map b/libddd.html/classsns_1_1Add__inherit__graph.map new file mode 100644 index 000000000..90469401c --- /dev/null +++ b/libddd.html/classsns_1_1Add__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Add__inherit__graph.md5 b/libddd.html/classsns_1_1Add__inherit__graph.md5 new file mode 100644 index 000000000..c146fb7b3 --- /dev/null +++ b/libddd.html/classsns_1_1Add__inherit__graph.md5 @@ -0,0 +1 @@ +e2c237dd25486a32d29aa9b8e6956a38 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Add__inherit__graph.png b/libddd.html/classsns_1_1Add__inherit__graph.png new file mode 100644 index 000000000..18d4ea786 Binary files /dev/null and b/libddd.html/classsns_1_1Add__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1And-members.html b/libddd.html/classsns_1_1And-members.html new file mode 100644 index 000000000..fbb8393bf --- /dev/null +++ b/libddd.html/classsns_1_1And-members.html @@ -0,0 +1,89 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::And Member List
+
+
+ +

This is the complete list of members for sns::And, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
And(const parameters_t &p, int ref=0)sns::Andinline
clone() constsns::Andinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Andinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::Andinlinevirtual
has_image(const GSDD &d) constsns::Andinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Andinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Andinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Andinlinevirtual
mark() constsns::Andinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Andinlinevirtual
parameterssns::And
parameters_it typedefsns::And
parameters_t typedefsns::And
print(std::ostream &os) constsns::Andinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::Andinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1And.html b/libddd.html/classsns_1_1And.html new file mode 100644 index 000000000..f9d9f9e7a --- /dev/null +++ b/libddd.html/classsns_1_1And.html @@ -0,0 +1,962 @@ + + + + + + + +DDD: sns::And Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::And Class Reference
+
+
+ +

A commutative composition of n homomorphisms. + More...

+
+Inheritance diagram for sns::And:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::And:
+
+
Collaboration graph
+ + + + +
+ + + + + + +

+Public Types

typedef std::vector< GShomparameters_t
 
typedef parameters_t::const_iterator parameters_it
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 And (const parameters_t &p, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
GShom invert (const GSDD &pot) const
 
GSDD has_image (const GSDD &d) const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + +

+Public Attributes

parameters_t parameters
 PLEASE DONT HURT ME !! More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Detailed Description

+

A commutative composition of n homomorphisms.

+

Member Typedef Documentation

+ +

◆ parameters_it

+ +
+
+ + + + +
typedef parameters_t::const_iterator sns::And::parameters_it
+
+ +
+
+ +

◆ parameters_t

+ +
+
+ + + + +
typedef std::vector<GShom> sns::And::parameters_t
+
+ +
+
+

Constructor & Destructor Documentation

+ +

◆ And()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::And::And (const parameters_tp,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone(), eval(), and has_image().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::And::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References And().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::And::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References And(), GShom::id, GSDD::null, GSDD::one, parameters, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::And::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::And::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References And(), GShom::has_image(), GShom::id, GSDD::null, GSDD::one, parameters, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::And::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::And::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::id, and parameters.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::And::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::And::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::And::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::And::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References parameters.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::And::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References parameters.

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ parameters

+ +
+
+ + + + +
parameters_t sns::And::parameters
+
+ +

PLEASE DONT HURT ME !!

+ +

Referenced by eval(), get_range(), has_image(), hash(), invert(), is_selector(), mark(), operator==(), print(), and skip_variable().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1And__coll__graph.map b/libddd.html/classsns_1_1And__coll__graph.map new file mode 100644 index 000000000..f9cadafb8 --- /dev/null +++ b/libddd.html/classsns_1_1And__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1And__coll__graph.md5 b/libddd.html/classsns_1_1And__coll__graph.md5 new file mode 100644 index 000000000..be9f15124 --- /dev/null +++ b/libddd.html/classsns_1_1And__coll__graph.md5 @@ -0,0 +1 @@ +d327d128356c6cddb73f8029b7ace2e5 \ No newline at end of file diff --git a/libddd.html/classsns_1_1And__coll__graph.png b/libddd.html/classsns_1_1And__coll__graph.png new file mode 100644 index 000000000..2b9ee1e07 Binary files /dev/null and b/libddd.html/classsns_1_1And__coll__graph.png differ diff --git a/libddd.html/classsns_1_1And__inherit__graph.map b/libddd.html/classsns_1_1And__inherit__graph.map new file mode 100644 index 000000000..f9cadafb8 --- /dev/null +++ b/libddd.html/classsns_1_1And__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1And__inherit__graph.md5 b/libddd.html/classsns_1_1And__inherit__graph.md5 new file mode 100644 index 000000000..be9f15124 --- /dev/null +++ b/libddd.html/classsns_1_1And__inherit__graph.md5 @@ -0,0 +1 @@ +d327d128356c6cddb73f8029b7ace2e5 \ No newline at end of file diff --git a/libddd.html/classsns_1_1And__inherit__graph.png b/libddd.html/classsns_1_1And__inherit__graph.png new file mode 100644 index 000000000..2b9ee1e07 Binary files /dev/null and b/libddd.html/classsns_1_1And__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Compose-members.html b/libddd.html/classsns_1_1Compose-members.html new file mode 100644 index 000000000..624a2257a --- /dev/null +++ b/libddd.html/classsns_1_1Compose-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Compose Member List
+
+
+ +

This is the complete list of members for sns::Compose, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Composeinlinevirtual
Compose(const GShom &l, const GShom &r, int ref=0)sns::Composeinline
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Composeinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::Composeinlinevirtual
has_image(const GSDD &d) constsns::Composeinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Composeinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Composeinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Composeinlinevirtual
leftsns::Compose
mark() constsns::Composeinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Composeinlinevirtual
print(std::ostream &os) constsns::Composeinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::Compose
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::Composeinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Compose.html b/libddd.html/classsns_1_1Compose.html new file mode 100644 index 000000000..90c27774f --- /dev/null +++ b/libddd.html/classsns_1_1Compose.html @@ -0,0 +1,942 @@ + + + + + + + +DDD: sns::Compose Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Compose Class Reference
+
+
+
+Inheritance diagram for sns::Compose:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Compose:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Compose (const GShom &l, const GShom &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GShom invert (const GSDD &pot) const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GSDD has_image (const GSDD &d) const
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + +

+Public Attributes

GShom left
 
GShom right
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Compose()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::Compose::Compose (const GShoml,
const GShomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Compose::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Compose().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Compose::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::Compose::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References GShom::get_range(), left, and right.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Compose::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::has_image(), _GShom::has_image(), left, GSDD::null, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Compose::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Compose::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References _GShom::GShom, GShom::invert(), left, GSDD::null, and right.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Compose::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), left, and right.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Compose::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Compose::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Compose::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Compose::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References left, right, and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + +
GShom sns::Compose::left
+
+
+ +

◆ right

+ +
+
+ + + + +
GShom sns::Compose::right
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Compose__coll__graph.map b/libddd.html/classsns_1_1Compose__coll__graph.map new file mode 100644 index 000000000..71881883b --- /dev/null +++ b/libddd.html/classsns_1_1Compose__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1Compose__coll__graph.md5 b/libddd.html/classsns_1_1Compose__coll__graph.md5 new file mode 100644 index 000000000..304d0b7fd --- /dev/null +++ b/libddd.html/classsns_1_1Compose__coll__graph.md5 @@ -0,0 +1 @@ +5ca56c1f4c6ae52b705ee32c7105b3e6 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Compose__coll__graph.png b/libddd.html/classsns_1_1Compose__coll__graph.png new file mode 100644 index 000000000..1bc67f1f8 Binary files /dev/null and b/libddd.html/classsns_1_1Compose__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Compose__inherit__graph.map b/libddd.html/classsns_1_1Compose__inherit__graph.map new file mode 100644 index 000000000..2161df7db --- /dev/null +++ b/libddd.html/classsns_1_1Compose__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Compose__inherit__graph.md5 b/libddd.html/classsns_1_1Compose__inherit__graph.md5 new file mode 100644 index 000000000..cb3ebb8bc --- /dev/null +++ b/libddd.html/classsns_1_1Compose__inherit__graph.md5 @@ -0,0 +1 @@ +0695e0c7fc3ca1b27cd36b4071c92dfe \ No newline at end of file diff --git a/libddd.html/classsns_1_1Compose__inherit__graph.png b/libddd.html/classsns_1_1Compose__inherit__graph.png new file mode 100644 index 000000000..7088977e0 Binary files /dev/null and b/libddd.html/classsns_1_1Compose__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Constant-members.html b/libddd.html/classsns_1_1Constant-members.html new file mode 100644 index 000000000..9eef0871b --- /dev/null +++ b/libddd.html/classsns_1_1Constant-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Constant Member List
+
+
+ +

This is the complete list of members for sns::Constant, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Constantinlinevirtual
compose(const GShom &) const_GShomvirtual
Constant(const GSDD &d, int ref=0)sns::Constantinline
deref() const_GShominline
eval(const GSDD &d) constsns::Constantinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Constantinlinevirtual
immediat() constsns::Constantinlinevirtual
invert(const GSDD &pot) constsns::Constantinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Constantinlinevirtual
mark() constsns::Constantinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Constantinlinevirtual
print(std::ostream &os) constsns::Constantinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
valuesns::Constantprivate
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Constant.html b/libddd.html/classsns_1_1Constant.html new file mode 100644 index 000000000..a3725b08d --- /dev/null +++ b/libddd.html/classsns_1_1Constant.html @@ -0,0 +1,924 @@ + + + + + + + +DDD: sns::Constant Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Constant Class Reference
+
+
+
+Inheritance diagram for sns::Constant:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Constant:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Constant (const GSDD &d, int ref=0)
 
bool immediat () const
 For operation cache management. More...
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
GShom invert (const GSDD &pot) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
+ + + + + + +

+Private Attributes

GSDD value
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Constant()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::Constant::Constant (const GSDDd,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Constant::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Constant().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Constant::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References GSDD::null, and value.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Constant::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), and value.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Constant::immediat () const
+
+inlinevirtual
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Constant::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Constant::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GSDD::null, and value.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Constant::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References GSDD::mark(), and value.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Constant::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References value.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Constant::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References value.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ value

+ +
+
+ + + + + +
+ + + + +
GSDD sns::Constant::value
+
+private
+
+ +

Referenced by eval(), hash(), is_selector(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Constant__coll__graph.map b/libddd.html/classsns_1_1Constant__coll__graph.map new file mode 100644 index 000000000..f6d42139f --- /dev/null +++ b/libddd.html/classsns_1_1Constant__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classsns_1_1Constant__coll__graph.md5 b/libddd.html/classsns_1_1Constant__coll__graph.md5 new file mode 100644 index 000000000..f93a1573d --- /dev/null +++ b/libddd.html/classsns_1_1Constant__coll__graph.md5 @@ -0,0 +1 @@ +588807affedf43cd1ab8c692739438aa \ No newline at end of file diff --git a/libddd.html/classsns_1_1Constant__coll__graph.png b/libddd.html/classsns_1_1Constant__coll__graph.png new file mode 100644 index 000000000..d4b9eeb2d Binary files /dev/null and b/libddd.html/classsns_1_1Constant__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Constant__inherit__graph.map b/libddd.html/classsns_1_1Constant__inherit__graph.map new file mode 100644 index 000000000..f32fba4a9 --- /dev/null +++ b/libddd.html/classsns_1_1Constant__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Constant__inherit__graph.md5 b/libddd.html/classsns_1_1Constant__inherit__graph.md5 new file mode 100644 index 000000000..89b41fc47 --- /dev/null +++ b/libddd.html/classsns_1_1Constant__inherit__graph.md5 @@ -0,0 +1 @@ +06e666ae10d802d020b2440dc62ece8d \ No newline at end of file diff --git a/libddd.html/classsns_1_1Constant__inherit__graph.png b/libddd.html/classsns_1_1Constant__inherit__graph.png new file mode 100644 index 000000000..6657e8c9b Binary files /dev/null and b/libddd.html/classsns_1_1Constant__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Fixpoint-members.html b/libddd.html/classsns_1_1Fixpoint-members.html new file mode 100644 index 000000000..84fa4e4c9 --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Fixpoint Member List
+
+
+ +

This is the complete list of members for sns::Fixpoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
argsns::Fixpointprivate
can_garbagesns::Fixpointprivate
clone() constsns::Fixpointinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Fixpointinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
Fixpoint(const GShom &a, int ref=0, bool can_garbage=false)sns::Fixpointinline
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::Fixpointinlinevirtual
has_image(const GSDD &d) constsns::Fixpointinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Fixpointinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Fixpointinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Fixpointinlinevirtual
mark() constsns::Fixpointinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Fixpointinlinevirtual
print(std::ostream &os) constsns::Fixpointinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::Fixpointinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Fixpoint.html b/libddd.html/classsns_1_1Fixpoint.html new file mode 100644 index 000000000..c79c14700 --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint.html @@ -0,0 +1,956 @@ + + + + + + + +DDD: sns::Fixpoint Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Fixpoint Class Reference
+
+
+
+Inheritance diagram for sns::Fixpoint:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Fixpoint:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Fixpoint (const GShom &a, int ref=0, bool can_garbage=false)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GSDD has_image (const GSDD &d) const
 
GShom invert (const GSDD &pot) const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom arg
 
bool can_garbage
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Fixpoint()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::Fixpoint::Fixpoint (const GShoma,
int ref = 0,
bool can_garbage = false 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Fixpoint::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Fixpoint().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Fixpoint::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+

Step 1 : identify G = G_part + LF_part such that g \in LF_part <=> g = l & f

+

END RECFIREANDSAT CASE

+ +

Implements _GShom.

+ +

References GShom::add, DED::add(), arg, can_garbage, GShom::DFS, sns::Add::partition::F, fixpoint(), sns::Add::partition::G, MemoryManager::garbage(), _GShom::get_concret(), fobs::get_fixobserver(), GShom::getFixpointStrategy(), GShom::getSaturationStrategy(), _GShom::GShom, sns::Add::partition::has_local, GShom::id, sns::Add::partition::L, localApply(), GSDD::mark(), GShom::mark(), GSDD::null, GSDD::one, GShom::RECFIREANDSAT, sns::recFireSat(), _GShom::Shom, MemoryManager::should_garbage(), sns::testShouldInterrupt(), sns::testWasInterrupt(), GSDD::top, trace, fobs::FixObserver::update(), GSDD::variable(), and fobs::FixObserver::was_interrupted().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::Fixpoint::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References arg, and GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Fixpoint::has_image (const GSDDd) const
+
+inlinevirtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Fixpoint::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References arg, and GShom::hash().

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Fixpoint::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References arg, fixpoint(), GShom::id, and GShom::invert().

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Fixpoint::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References arg, and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Fixpoint::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References arg, and GShom::mark().

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Fixpoint::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References arg.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Fixpoint::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References arg.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Fixpoint::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References arg, and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ arg

+ +
+
+ + + + + +
+ + + + +
GShom sns::Fixpoint::arg
+
+private
+
+
+ +

◆ can_garbage

+ +
+
+ + + + + +
+ + + + +
bool sns::Fixpoint::can_garbage
+
+private
+
+ +

Referenced by eval(), and has_image().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Fixpoint__coll__graph.map b/libddd.html/classsns_1_1Fixpoint__coll__graph.map new file mode 100644 index 000000000..48b1b19a3 --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1Fixpoint__coll__graph.md5 b/libddd.html/classsns_1_1Fixpoint__coll__graph.md5 new file mode 100644 index 000000000..1b396979d --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint__coll__graph.md5 @@ -0,0 +1 @@ +9aad416e226d2122688d80799ae29890 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Fixpoint__coll__graph.png b/libddd.html/classsns_1_1Fixpoint__coll__graph.png new file mode 100644 index 000000000..8a7952b51 Binary files /dev/null and b/libddd.html/classsns_1_1Fixpoint__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Fixpoint__inherit__graph.map b/libddd.html/classsns_1_1Fixpoint__inherit__graph.map new file mode 100644 index 000000000..a52b861c9 --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Fixpoint__inherit__graph.md5 b/libddd.html/classsns_1_1Fixpoint__inherit__graph.md5 new file mode 100644 index 000000000..850a21fbc --- /dev/null +++ b/libddd.html/classsns_1_1Fixpoint__inherit__graph.md5 @@ -0,0 +1 @@ +03e2bfe808d67acfb39e835c5e4d37df \ No newline at end of file diff --git a/libddd.html/classsns_1_1Fixpoint__inherit__graph.png b/libddd.html/classsns_1_1Fixpoint__inherit__graph.png new file mode 100644 index 000000000..db3aea924 Binary files /dev/null and b/libddd.html/classsns_1_1Fixpoint__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1HomMinus-members.html b/libddd.html/classsns_1_1HomMinus-members.html new file mode 100644 index 000000000..21460e9a9 --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::HomMinus Member List
+
+
+ +

This is the complete list of members for sns::HomMinus, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::HomMinusinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::HomMinusinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::HomMinusinlinevirtual
HomMinus(const GShom &l, const GShom &r, int ref=0)sns::HomMinusinline
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::HomMinusinlinevirtual
is_marked() const_GShominline
is_selector() constsns::HomMinusinlinevirtual
leftsns::HomMinusprivate
mark() constsns::HomMinusinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::HomMinusinlinevirtual
print(std::ostream &os) constsns::HomMinusinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::HomMinusprivate
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1HomMinus.html b/libddd.html/classsns_1_1HomMinus.html new file mode 100644 index 000000000..539433cef --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus.html @@ -0,0 +1,958 @@ + + + + + + + +DDD: sns::HomMinus Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::HomMinus Class Reference
+
+
+
+Inheritance diagram for sns::HomMinus:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::HomMinus:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 HomMinus (const GShom &l, const GShom &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GShom invert (const GSDD &pot) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom left
 
GShom right
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ HomMinus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::HomMinus::HomMinus (const GShoml,
const GShomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::HomMinus::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References HomMinus().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::HomMinus::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::HomMinus::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::HomMinus::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::id, GShom::invert(), left, and right.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::HomMinus::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::HomMinus::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::HomMinus::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::HomMinus::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GShom sns::HomMinus::left
+
+private
+
+ +

Referenced by eval(), hash(), invert(), is_selector(), mark(), operator==(), and print().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GShom sns::HomMinus::right
+
+private
+
+ +

Referenced by eval(), hash(), invert(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1HomMinus__coll__graph.map b/libddd.html/classsns_1_1HomMinus__coll__graph.map new file mode 100644 index 000000000..4254920bd --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1HomMinus__coll__graph.md5 b/libddd.html/classsns_1_1HomMinus__coll__graph.md5 new file mode 100644 index 000000000..e39357866 --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus__coll__graph.md5 @@ -0,0 +1 @@ +a59389125b826732b08e26d09c1156b3 \ No newline at end of file diff --git a/libddd.html/classsns_1_1HomMinus__coll__graph.png b/libddd.html/classsns_1_1HomMinus__coll__graph.png new file mode 100644 index 000000000..d00f29faa Binary files /dev/null and b/libddd.html/classsns_1_1HomMinus__coll__graph.png differ diff --git a/libddd.html/classsns_1_1HomMinus__inherit__graph.map b/libddd.html/classsns_1_1HomMinus__inherit__graph.map new file mode 100644 index 000000000..88081758c --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1HomMinus__inherit__graph.md5 b/libddd.html/classsns_1_1HomMinus__inherit__graph.md5 new file mode 100644 index 000000000..241463263 --- /dev/null +++ b/libddd.html/classsns_1_1HomMinus__inherit__graph.md5 @@ -0,0 +1 @@ +3c08c7aa1f652ea39e05175c4da2f9ef \ No newline at end of file diff --git a/libddd.html/classsns_1_1HomMinus__inherit__graph.png b/libddd.html/classsns_1_1HomMinus__inherit__graph.png new file mode 100644 index 000000000..9e8af1c29 Binary files /dev/null and b/libddd.html/classsns_1_1HomMinus__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Identity-members.html b/libddd.html/classsns_1_1Identity-members.html new file mode 100644 index 000000000..86bca5f79 --- /dev/null +++ b/libddd.html/classsns_1_1Identity-members.html @@ -0,0 +1,86 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Identity Member List
+
+
+ +

This is the complete list of members for sns::Identity, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Identityinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Identityinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) constsns::Identityinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Identityinlinevirtual
Identity(int ref=0)sns::Identityinline
immediat() constsns::Identityinlinevirtual
invert(const GSDD &pot) constsns::Identityinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Identityinlinevirtual
mark() const_GShominlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &) constsns::Identityinlinevirtual
print(std::ostream &os) constsns::Identityinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int) constsns::Identityinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Identity.html b/libddd.html/classsns_1_1Identity.html new file mode 100644 index 000000000..cfb99d90b --- /dev/null +++ b/libddd.html/classsns_1_1Identity.html @@ -0,0 +1,869 @@ + + + + + + + +DDD: sns::Identity Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Identity Class Reference
+
+
+
+Inheritance diagram for sns::Identity:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Identity:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Identity (int ref=0)
 
bool immediat () const
 For operation cache management. More...
 
bool operator== (const _GShom &) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GShom invert (const GSDD &pot) const
 
GSDD has_image (const GSDD &d) const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GShom compose (const GShom &) const
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Identity()

+ +
+
+ + + + + +
+ + + + + + + + +
sns::Identity::Identity (int ref = 0)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Identity::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Identity().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Identity::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Identity::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Identity::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Identity::immediat () const
+
+inlinevirtual
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Identity::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Identity::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GShom::mark () const
+
+inlinevirtualinherited
+
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Identity::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Identity::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Identity::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Identity__coll__graph.map b/libddd.html/classsns_1_1Identity__coll__graph.map new file mode 100644 index 000000000..9dd58c265 --- /dev/null +++ b/libddd.html/classsns_1_1Identity__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Identity__coll__graph.md5 b/libddd.html/classsns_1_1Identity__coll__graph.md5 new file mode 100644 index 000000000..ae82d60af --- /dev/null +++ b/libddd.html/classsns_1_1Identity__coll__graph.md5 @@ -0,0 +1 @@ +0320757df9bbc8c94fab16bfc2d7bc92 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Identity__coll__graph.png b/libddd.html/classsns_1_1Identity__coll__graph.png new file mode 100644 index 000000000..b906244f6 Binary files /dev/null and b/libddd.html/classsns_1_1Identity__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Identity__inherit__graph.map b/libddd.html/classsns_1_1Identity__inherit__graph.map new file mode 100644 index 000000000..9dd58c265 --- /dev/null +++ b/libddd.html/classsns_1_1Identity__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Identity__inherit__graph.md5 b/libddd.html/classsns_1_1Identity__inherit__graph.md5 new file mode 100644 index 000000000..ae82d60af --- /dev/null +++ b/libddd.html/classsns_1_1Identity__inherit__graph.md5 @@ -0,0 +1 @@ +0320757df9bbc8c94fab16bfc2d7bc92 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Identity__inherit__graph.png b/libddd.html/classsns_1_1Identity__inherit__graph.png new file mode 100644 index 000000000..b906244f6 Binary files /dev/null and b/libddd.html/classsns_1_1Identity__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Inter-members.html b/libddd.html/classsns_1_1Inter-members.html new file mode 100644 index 000000000..b7d721de1 --- /dev/null +++ b/libddd.html/classsns_1_1Inter-members.html @@ -0,0 +1,89 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Inter Member List
+
+
+ +

This is the complete list of members for sns::Inter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Interinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Interinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
Fixpoint classsns::Interfriend
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) constsns::Interinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Interinlinevirtual
immediat() const_GShominlineprivatevirtual
Inter(const GShom &l, const GShom &r, int ref=0)sns::Interinline
invert(const GSDD &pot) constsns::Interinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Interinlinevirtual
leftsns::Interprivate
mark() constsns::Interinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::Interinlinevirtual
print(std::ostream &os) constsns::Interinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::Interprivate
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::Interinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Inter.html b/libddd.html/classsns_1_1Inter.html new file mode 100644 index 000000000..bed8f1fda --- /dev/null +++ b/libddd.html/classsns_1_1Inter.html @@ -0,0 +1,985 @@ + + + + + + + +DDD: sns::Inter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +Friends | +List of all members
+
+
sns::Inter Class Reference
+
+
+
+Inheritance diagram for sns::Inter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Inter:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Inter (const GShom &l, const GShom &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GShom invert (const GSDD &pot) const
 
GSDD has_image (const GSDD &d) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom left
 
GShom right
 
int _refCounter
 For garbage collection. More...
 
+ + + +

+Friends

class Fixpoint
 
+

Constructor & Destructor Documentation

+ +

◆ Inter()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::Inter::Inter (const GShoml,
const GShomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Inter::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Inter().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Inter::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Inter::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::has_image(), _GShom::has_image(), left, GSDD::null, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Inter::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Inter::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::invert(), left, and right.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Inter::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), left, and right.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Inter::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Inter::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Inter::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Inter::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References _GShom::get_concret(), left, right, and _GShom::skip_variable().

+ +
+
+

Friends And Related Function Documentation

+ +

◆ Fixpoint

+ +
+
+ + + + + +
+ + + + +
friend class Fixpoint
+
+friend
+
+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GShom sns::Inter::left
+
+private
+
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GShom sns::Inter::right
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Inter__coll__graph.map b/libddd.html/classsns_1_1Inter__coll__graph.map new file mode 100644 index 000000000..8565998da --- /dev/null +++ b/libddd.html/classsns_1_1Inter__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1Inter__coll__graph.md5 b/libddd.html/classsns_1_1Inter__coll__graph.md5 new file mode 100644 index 000000000..eee453f59 --- /dev/null +++ b/libddd.html/classsns_1_1Inter__coll__graph.md5 @@ -0,0 +1 @@ +cc5c9d881cb688fb6d71bc2caef53723 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Inter__coll__graph.png b/libddd.html/classsns_1_1Inter__coll__graph.png new file mode 100644 index 000000000..860719009 Binary files /dev/null and b/libddd.html/classsns_1_1Inter__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Inter__inherit__graph.map b/libddd.html/classsns_1_1Inter__inherit__graph.map new file mode 100644 index 000000000..32e44da9b --- /dev/null +++ b/libddd.html/classsns_1_1Inter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Inter__inherit__graph.md5 b/libddd.html/classsns_1_1Inter__inherit__graph.md5 new file mode 100644 index 000000000..f31df33fc --- /dev/null +++ b/libddd.html/classsns_1_1Inter__inherit__graph.md5 @@ -0,0 +1 @@ +efdbe1ce27f386abfa2f4dd13cbeb279 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Inter__inherit__graph.png b/libddd.html/classsns_1_1Inter__inherit__graph.png new file mode 100644 index 000000000..d5e01fdee Binary files /dev/null and b/libddd.html/classsns_1_1Inter__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1LeftConcat-members.html b/libddd.html/classsns_1_1LeftConcat-members.html new file mode 100644 index 000000000..a5d02c178 --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::LeftConcat Member List
+
+
+ +

This is the complete list of members for sns::LeftConcat, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::LeftConcatinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::LeftConcatinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) constsns::LeftConcatinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::LeftConcatinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
leftsns::LeftConcatprivate
LeftConcat(const GSDD &l, const GShom &r, int ref=0)sns::LeftConcatinline
mark() constsns::LeftConcatinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::LeftConcatinlinevirtual
print(std::ostream &os) constsns::LeftConcatinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::LeftConcatprivate
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1LeftConcat.html b/libddd.html/classsns_1_1LeftConcat.html new file mode 100644 index 000000000..f9188be55 --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat.html @@ -0,0 +1,961 @@ + + + + + + + +DDD: sns::LeftConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::LeftConcat Class Reference
+
+
+
+Inheritance diagram for sns::LeftConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::LeftConcat:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LeftConcat (const GSDD &l, const GShom &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GSDD has_image (const GSDD &d) const
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GSDD left
 
GShom right
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ LeftConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::LeftConcat::LeftConcat (const GSDDl,
const GShomr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::LeftConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References LeftConcat().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::LeftConcat::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::LeftConcat::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::has_image(), left, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::LeftConcat::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::LeftConcat::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GSDD::mark(), GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::LeftConcat::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::LeftConcat::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GSDD sns::LeftConcat::left
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GShom sns::LeftConcat::right
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1LeftConcat__coll__graph.map b/libddd.html/classsns_1_1LeftConcat__coll__graph.map new file mode 100644 index 000000000..11b8069ee --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classsns_1_1LeftConcat__coll__graph.md5 b/libddd.html/classsns_1_1LeftConcat__coll__graph.md5 new file mode 100644 index 000000000..be1b6f8a2 --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat__coll__graph.md5 @@ -0,0 +1 @@ +3b2906e2603b83c67748ae80f2e76f0f \ No newline at end of file diff --git a/libddd.html/classsns_1_1LeftConcat__coll__graph.png b/libddd.html/classsns_1_1LeftConcat__coll__graph.png new file mode 100644 index 000000000..fe81c3183 Binary files /dev/null and b/libddd.html/classsns_1_1LeftConcat__coll__graph.png differ diff --git a/libddd.html/classsns_1_1LeftConcat__inherit__graph.map b/libddd.html/classsns_1_1LeftConcat__inherit__graph.map new file mode 100644 index 000000000..f7d9b023f --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1LeftConcat__inherit__graph.md5 b/libddd.html/classsns_1_1LeftConcat__inherit__graph.md5 new file mode 100644 index 000000000..86a3e2f58 --- /dev/null +++ b/libddd.html/classsns_1_1LeftConcat__inherit__graph.md5 @@ -0,0 +1 @@ +4f03828972af94323251134f2c7c68fe \ No newline at end of file diff --git a/libddd.html/classsns_1_1LeftConcat__inherit__graph.png b/libddd.html/classsns_1_1LeftConcat__inherit__graph.png new file mode 100644 index 000000000..eb8756cba Binary files /dev/null and b/libddd.html/classsns_1_1LeftConcat__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1LocalApply-members.html b/libddd.html/classsns_1_1LocalApply-members.html new file mode 100644 index 000000000..2f5f8ff39 --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply-members.html @@ -0,0 +1,89 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::LocalApply Member List
+
+
+ +

This is the complete list of members for sns::LocalApply, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::LocalApplyinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::LocalApplyinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::LocalApplyinlinevirtual
hsns::LocalApply
has_image(const GSDD &d) constsns::LocalApplyinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::LocalApplyinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::LocalApplyinlinevirtual
is_marked() const_GShominline
is_selector() constsns::LocalApplyinlinevirtual
LocalApply()sns::LocalApplyinline
LocalApply(const GHom &hh, int t)sns::LocalApplyinline
mark() constsns::LocalApplyinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &s) constsns::LocalApplyinlinevirtual
print(std::ostream &os) constsns::LocalApplyinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::LocalApplyinlinevirtual
targetsns::LocalApply
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1LocalApply.html b/libddd.html/classsns_1_1LocalApply.html new file mode 100644 index 000000000..a269fcbe1 --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply.html @@ -0,0 +1,964 @@ + + + + + + + +DDD: sns::LocalApply Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::LocalApply Class Reference
+
+
+
+Inheritance diagram for sns::LocalApply:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::LocalApply:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LocalApply ()
 
 LocalApply (const GHom &hh, int t)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GSDD has_image (const GSDD &d) const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
size_t hash () const
 Hash key computation. More...
 
GShom invert (const GSDD &pot) const
 
bool operator== (const _GShom &s) const
 Comparator. More...
 
_GShomclone () const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + +

+Public Attributes

GHom h
 
int target
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ LocalApply() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
sns::LocalApply::LocalApply ()
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ LocalApply() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::LocalApply::LocalApply (const GHomhh,
int t 
)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::LocalApply::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References LocalApply().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::LocalApply::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), GSDD::begin(), GSDD::end(), h, GDDD::null, GSDD::null, GSDD::one, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::LocalApply::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References target.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::LocalApply::has_image (const GSDDd) const
+
+inlinevirtual
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::LocalApply::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References h, GHom::hash(), and target.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::LocalApply::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GSDD::begin(), extractPotential(), h, GHom::invert(), localApply(), and target.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::LocalApply::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References h, and GHom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::LocalApply::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References h, and GHom::mark().

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::LocalApply::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References h, and target.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::LocalApply::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References h, and target.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::LocalApply::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References target.

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ h

+ +
+
+ + + + +
GHom sns::LocalApply::h
+
+
+ +

◆ target

+ +
+
+ + + + +
int sns::LocalApply::target
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1LocalApply__coll__graph.map b/libddd.html/classsns_1_1LocalApply__coll__graph.map new file mode 100644 index 000000000..b9281d4fb --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classsns_1_1LocalApply__coll__graph.md5 b/libddd.html/classsns_1_1LocalApply__coll__graph.md5 new file mode 100644 index 000000000..0e584e216 --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply__coll__graph.md5 @@ -0,0 +1 @@ +1ea0b27035c6f4e5c8ad06753651b9fe \ No newline at end of file diff --git a/libddd.html/classsns_1_1LocalApply__coll__graph.png b/libddd.html/classsns_1_1LocalApply__coll__graph.png new file mode 100644 index 000000000..fd47dd07a Binary files /dev/null and b/libddd.html/classsns_1_1LocalApply__coll__graph.png differ diff --git a/libddd.html/classsns_1_1LocalApply__inherit__graph.map b/libddd.html/classsns_1_1LocalApply__inherit__graph.map new file mode 100644 index 000000000..a5fe6bc1a --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1LocalApply__inherit__graph.md5 b/libddd.html/classsns_1_1LocalApply__inherit__graph.md5 new file mode 100644 index 000000000..c484fd79a --- /dev/null +++ b/libddd.html/classsns_1_1LocalApply__inherit__graph.md5 @@ -0,0 +1 @@ +c1623551200d2fc206af9c79b7ea6a1e \ No newline at end of file diff --git a/libddd.html/classsns_1_1LocalApply__inherit__graph.png b/libddd.html/classsns_1_1LocalApply__inherit__graph.png new file mode 100644 index 000000000..4d0241427 Binary files /dev/null and b/libddd.html/classsns_1_1LocalApply__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1MLShomAdapter-members.html b/libddd.html/classsns_1_1MLShomAdapter-members.html new file mode 100644 index 000000000..1b84afc62 --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::MLShomAdapter Member List
+
+
+ +

This is the complete list of members for sns::MLShomAdapter, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::MLShomAdapterinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::MLShomAdapterinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
hsns::MLShomAdapterprivate
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::MLShomAdapterinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
mark() constsns::MLShomAdapterinlinevirtual
mark_if_refd() const_GShominline
MLShomAdapter(const MLShom &hh)sns::MLShomAdapterinline
operator==(const _GShom &other) constsns::MLShomAdapterinlinevirtual
print(std::ostream &os) constsns::MLShomAdapterinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1MLShomAdapter.html b/libddd.html/classsns_1_1MLShomAdapter.html new file mode 100644 index 000000000..982873e0d --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter.html @@ -0,0 +1,916 @@ + + + + + + + +DDD: sns::MLShomAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::MLShomAdapter Class Reference
+
+
+
+Inheritance diagram for sns::MLShomAdapter:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::MLShomAdapter:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 MLShomAdapter (const MLShom &hh)
 
bool operator== (const _GShom &other) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + +

+Private Attributes

MLShom h
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ MLShomAdapter()

+ +
+
+ + + + + +
+ + + + + + + + +
sns::MLShomAdapter::MLShomAdapter (const MLShomhh)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::MLShomAdapter::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References MLShomAdapter().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::MLShomAdapter::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), AdditiveMap< K, V, EqualKey >::begin(), AdditiveMap< K, V, EqualKey >::end(), and h.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::MLShomAdapter::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References h, and MLShom::hash().

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::MLShomAdapter::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+

???????

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::MLShomAdapter::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References h.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::MLShomAdapter::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ h

+ +
+
+ + + + + +
+ + + + +
MLShom sns::MLShomAdapter::h
+
+private
+
+ +

Referenced by eval(), hash(), and operator==().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1MLShomAdapter__coll__graph.map b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.map new file mode 100644 index 000000000..d878380a3 --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/libddd.html/classsns_1_1MLShomAdapter__coll__graph.md5 b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.md5 new file mode 100644 index 000000000..2851c5ae9 --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.md5 @@ -0,0 +1 @@ +a6dbb37d49472155620c820ba9e5e6a0 \ No newline at end of file diff --git a/libddd.html/classsns_1_1MLShomAdapter__coll__graph.png b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.png new file mode 100644 index 000000000..8e491b052 Binary files /dev/null and b/libddd.html/classsns_1_1MLShomAdapter__coll__graph.png differ diff --git a/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.map b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.map new file mode 100644 index 000000000..a6b56d5bd --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.md5 b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.md5 new file mode 100644 index 000000000..f225260cf --- /dev/null +++ b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.md5 @@ -0,0 +1 @@ +696428d54c97ea93a4706734d2ab622c \ No newline at end of file diff --git a/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.png b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.png new file mode 100644 index 000000000..dd2e35a18 Binary files /dev/null and b/libddd.html/classsns_1_1MLShomAdapter__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Minus-members.html b/libddd.html/classsns_1_1Minus-members.html new file mode 100644 index 000000000..a63a10d44 --- /dev/null +++ b/libddd.html/classsns_1_1Minus-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Minus Member List
+
+
+ +

This is the complete list of members for sns::Minus, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Minusinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Minusinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Minusinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Minusinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Minusinlinevirtual
leftsns::Minusprivate
mark() constsns::Minusinlinevirtual
mark_if_refd() const_GShominline
Minus(const GShom &l, const GSDD &r, int ref=0)sns::Minusinline
operator==(const _GShom &h) constsns::Minusinlinevirtual
print(std::ostream &os) constsns::Minusinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::Minusprivate
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Minus.html b/libddd.html/classsns_1_1Minus.html new file mode 100644 index 000000000..4ddc6c440 --- /dev/null +++ b/libddd.html/classsns_1_1Minus.html @@ -0,0 +1,961 @@ + + + + + + + +DDD: sns::Minus Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Minus Class Reference
+
+
+
+Inheritance diagram for sns::Minus:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Minus:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Minus (const GShom &l, const GSDD &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
GShom invert (const GSDD &pot) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom left
 
GSDD right
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Minus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::Minus::Minus (const GShoml,
const GSDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Minus::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Minus().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Minus::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Minus::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Minus::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::id, GShom::invert(), left, and right.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Minus::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Minus::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GSDD::mark(), GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Minus::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Minus::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GShom sns::Minus::left
+
+private
+
+ +

Referenced by eval(), hash(), invert(), is_selector(), mark(), operator==(), and print().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GSDD sns::Minus::right
+
+private
+
+ +

Referenced by eval(), hash(), invert(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Minus__coll__graph.map b/libddd.html/classsns_1_1Minus__coll__graph.map new file mode 100644 index 000000000..f11c3bb3c --- /dev/null +++ b/libddd.html/classsns_1_1Minus__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classsns_1_1Minus__coll__graph.md5 b/libddd.html/classsns_1_1Minus__coll__graph.md5 new file mode 100644 index 000000000..9cc3b2b11 --- /dev/null +++ b/libddd.html/classsns_1_1Minus__coll__graph.md5 @@ -0,0 +1 @@ +f186c6df8bf46f20a4d877ca578a2c55 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Minus__coll__graph.png b/libddd.html/classsns_1_1Minus__coll__graph.png new file mode 100644 index 000000000..f31bbdd8e Binary files /dev/null and b/libddd.html/classsns_1_1Minus__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Minus__inherit__graph.map b/libddd.html/classsns_1_1Minus__inherit__graph.map new file mode 100644 index 000000000..6bfd14a69 --- /dev/null +++ b/libddd.html/classsns_1_1Minus__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Minus__inherit__graph.md5 b/libddd.html/classsns_1_1Minus__inherit__graph.md5 new file mode 100644 index 000000000..10126fbad --- /dev/null +++ b/libddd.html/classsns_1_1Minus__inherit__graph.md5 @@ -0,0 +1 @@ +8bb1a31a867ebd23c6653e8e608c7ff3 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Minus__inherit__graph.png b/libddd.html/classsns_1_1Minus__inherit__graph.png new file mode 100644 index 000000000..944511bda Binary files /dev/null and b/libddd.html/classsns_1_1Minus__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1Mult-members.html b/libddd.html/classsns_1_1Mult-members.html new file mode 100644 index 000000000..b238afd21 --- /dev/null +++ b/libddd.html/classsns_1_1Mult-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::Mult Member List
+
+
+ +

This is the complete list of members for sns::Mult, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::Multinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::Multinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::Multinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::Multinlinevirtual
is_marked() const_GShominline
is_selector() constsns::Multinlinevirtual
leftsns::Multprivate
mark() constsns::Multinlinevirtual
mark_if_refd() const_GShominline
Mult(const GShom &l, const GSDD &r, int ref=0)sns::Multinline
operator==(const _GShom &h) constsns::Multinlinevirtual
print(std::ostream &os) constsns::Multinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::Multprivate
set_mark(bool val) const_GShominline
skip_variable(int) const_GShominlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Mult.html b/libddd.html/classsns_1_1Mult.html new file mode 100644 index 000000000..8748dabf3 --- /dev/null +++ b/libddd.html/classsns_1_1Mult.html @@ -0,0 +1,963 @@ + + + + + + + +DDD: sns::Mult Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::Mult Class Reference
+
+
+
+Inheritance diagram for sns::Mult:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::Mult:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Mult (const GShom &l, const GSDD &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GShom invert (const GSDD &pot) const
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom left
 
GSDD right
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ Mult()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::Mult::Mult (const GShoml,
const GSDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::Mult::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References Mult().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::Mult::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+

optimized evaluation when left.skip : prune at current level and drop a recursive call i.e. do OTF intersection with the constant

+

CODE COPY PASTE FROM SDED_MULT OF 2 SDD : TODO : REFACTOR THIS ALGO TO SHARE CODE

+ +

Implements _GShom.

+ +

References GSDD::begin(), DataSet::empty(), GSDD::end(), GShom::id, left, GSDD::null, right, DataSet::set_intersect(), GShom::skip_variable(), square_union(), and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::Mult::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::Mult::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::id, GShom::invert(), left, and right.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::Mult::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), and left.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::Mult::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GSDD::mark(), GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::Mult::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::Mult::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool _GShom::skip_variable (int ) const
+
+inlinevirtualinherited
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented in sns::SDomExtract, sns::Identity, sns::Fixpoint, sns::RightConcat, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::Inter, and sns::SApply2k.

+ +

Referenced by _GShom::eval_skip(), _GShom::has_image_skip(), sns::Inter::skip_variable(), sns::Add::skip_variable(), sns::RightConcat::skip_variable(), and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GShom sns::Mult::left
+
+private
+
+ +

Referenced by eval(), hash(), invert(), is_selector(), mark(), operator==(), and print().

+ +
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GSDD sns::Mult::right
+
+private
+
+ +

Referenced by eval(), hash(), invert(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1Mult__coll__graph.map b/libddd.html/classsns_1_1Mult__coll__graph.map new file mode 100644 index 000000000..6a4546649 --- /dev/null +++ b/libddd.html/classsns_1_1Mult__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classsns_1_1Mult__coll__graph.md5 b/libddd.html/classsns_1_1Mult__coll__graph.md5 new file mode 100644 index 000000000..4c24dad92 --- /dev/null +++ b/libddd.html/classsns_1_1Mult__coll__graph.md5 @@ -0,0 +1 @@ +697b076ec21e589d5225fca689574186 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Mult__coll__graph.png b/libddd.html/classsns_1_1Mult__coll__graph.png new file mode 100644 index 000000000..95df1c8bf Binary files /dev/null and b/libddd.html/classsns_1_1Mult__coll__graph.png differ diff --git a/libddd.html/classsns_1_1Mult__inherit__graph.map b/libddd.html/classsns_1_1Mult__inherit__graph.map new file mode 100644 index 000000000..a7b558c13 --- /dev/null +++ b/libddd.html/classsns_1_1Mult__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1Mult__inherit__graph.md5 b/libddd.html/classsns_1_1Mult__inherit__graph.md5 new file mode 100644 index 000000000..d74c29cba --- /dev/null +++ b/libddd.html/classsns_1_1Mult__inherit__graph.md5 @@ -0,0 +1 @@ +b1124a335832fd4c41b091a8542d65c0 \ No newline at end of file diff --git a/libddd.html/classsns_1_1Mult__inherit__graph.png b/libddd.html/classsns_1_1Mult__inherit__graph.png new file mode 100644 index 000000000..a285da25b Binary files /dev/null and b/libddd.html/classsns_1_1Mult__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1RecFireSat-members.html b/libddd.html/classsns_1_1RecFireSat-members.html new file mode 100644 index 000000000..5fbaa7fb3 --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::RecFireSat Member List
+
+
+ +

This is the complete list of members for sns::RecFireSat, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::RecFireSatinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::RecFireSatinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::RecFireSatinlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::RecFireSatinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::RecFireSatinlinevirtual
is_marked() const_GShominline
is_selector() constsns::RecFireSatinlinevirtual
lfsns::RecFireSatprivate
mark() constsns::RecFireSatinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::RecFireSatinlinevirtual
print(std::ostream &os) constsns::RecFireSatinlinevirtual
RecFireSat(const GShom &sat, const GShom &lf, int ref=0)sns::RecFireSatinline
ref() const_GShominline
refCounter() const_GShominline
satsns::RecFireSatprivate
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::RecFireSatinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1RecFireSat.html b/libddd.html/classsns_1_1RecFireSat.html new file mode 100644 index 000000000..98dd89553 --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat.html @@ -0,0 +1,956 @@ + + + + + + + +DDD: sns::RecFireSat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::RecFireSat Class Reference
+
+
+
+Inheritance diagram for sns::RecFireSat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::RecFireSat:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RecFireSat (const GShom &sat, const GShom &lf, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GShom invert (const GSDD &pot) const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom sat
 
GShom lf
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ RecFireSat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::RecFireSat::RecFireSat (const GShomsat,
const GShomlf,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::RecFireSat::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References RecFireSat().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::RecFireSat::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), DED::add(), GSDD::begin(), GSDD::end(), sns::Add::partition::F, fixpoint(), sns::Add::partition::G, _GShom::get_concret(), _GShom::GShom, GShom::has_image(), sns::Add::partition::has_local, sns::Add::partition::L, lf, GDDD::null, GSDD::null, GSDD::one, sns::recFireSat(), sat, GSDD::top, trace, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::RecFireSat::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References GShom::get_range(), lf, and sat.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::RecFireSat::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GShom::hash(), lf, and sat.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::RecFireSat::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::invert(), lf, and sat.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::RecFireSat::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GShom::is_selector(), lf, and sat.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::RecFireSat::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References lf, GShom::mark(), and sat.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::RecFireSat::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References lf, and sat.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::RecFireSat::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References lf, and sat.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::RecFireSat::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References lf, sat, and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ lf

+ +
+
+ + + + + +
+ + + + +
GShom sns::RecFireSat::lf
+
+private
+
+
+ +

◆ sat

+ +
+
+ + + + + +
+ + + + +
GShom sns::RecFireSat::sat
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1RecFireSat__coll__graph.map b/libddd.html/classsns_1_1RecFireSat__coll__graph.map new file mode 100644 index 000000000..7485c9f5e --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1RecFireSat__coll__graph.md5 b/libddd.html/classsns_1_1RecFireSat__coll__graph.md5 new file mode 100644 index 000000000..2dd7c22d7 --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat__coll__graph.md5 @@ -0,0 +1 @@ +749f6e1e696e47e2318d3b361bdb5ee8 \ No newline at end of file diff --git a/libddd.html/classsns_1_1RecFireSat__coll__graph.png b/libddd.html/classsns_1_1RecFireSat__coll__graph.png new file mode 100644 index 000000000..7d2d4ce4f Binary files /dev/null and b/libddd.html/classsns_1_1RecFireSat__coll__graph.png differ diff --git a/libddd.html/classsns_1_1RecFireSat__inherit__graph.map b/libddd.html/classsns_1_1RecFireSat__inherit__graph.map new file mode 100644 index 000000000..d6053251f --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1RecFireSat__inherit__graph.md5 b/libddd.html/classsns_1_1RecFireSat__inherit__graph.md5 new file mode 100644 index 000000000..dd7e79a23 --- /dev/null +++ b/libddd.html/classsns_1_1RecFireSat__inherit__graph.md5 @@ -0,0 +1 @@ +e4325adb60732d0d7c2a70078ccb8841 \ No newline at end of file diff --git a/libddd.html/classsns_1_1RecFireSat__inherit__graph.png b/libddd.html/classsns_1_1RecFireSat__inherit__graph.png new file mode 100644 index 000000000..f0c107693 Binary files /dev/null and b/libddd.html/classsns_1_1RecFireSat__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1RightConcat-members.html b/libddd.html/classsns_1_1RightConcat-members.html new file mode 100644 index 000000000..e61ae3295 --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::RightConcat Member List
+
+
+ +

This is the complete list of members for sns::RightConcat, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::RightConcatinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::RightConcatinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) constsns::RightConcatinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::RightConcatinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() const_GShominlinevirtual
leftsns::RightConcatprivate
mark() constsns::RightConcatinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::RightConcatinlinevirtual
print(std::ostream &os) constsns::RightConcatinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
rightsns::RightConcatprivate
RightConcat(const GShom &l, const GSDD &r, int ref=0)sns::RightConcatinline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::RightConcatinlinevirtual
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1RightConcat.html b/libddd.html/classsns_1_1RightConcat.html new file mode 100644 index 000000000..ab311c916 --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat.html @@ -0,0 +1,961 @@ + + + + + + + +DDD: sns::RightConcat Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::RightConcat Class Reference
+
+
+
+Inheritance diagram for sns::RightConcat:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::RightConcat:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 RightConcat (const GShom &l, const GSDD &r, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
GSDD has_image (const GSDD &d) const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + + + +

+Private Attributes

GShom left
 
GSDD right
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ RightConcat()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
sns::RightConcat::RightConcat (const GShoml,
const GSDDr,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::RightConcat::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References RightConcat().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::RightConcat::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::RightConcat::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GShom::has_image(), left, and right.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::RightConcat::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), GShom::hash(), left, and right.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::is_selector () const
+
+inlinevirtualinherited
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented in sns::Fixpoint, sns::HomMinus, sns::Minus, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, sns::LocalApply, sns::SDomExtract, sns::Inter, sns::Mult, sns::SApply2k, sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::invert(), and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::RightConcat::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References left, GSDD::mark(), GShom::mark(), and right.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::RightConcat::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::RightConcat::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References left, and right.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::RightConcat::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References _GShom::get_concret(), left, and _GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ left

+ +
+
+ + + + + +
+ + + + +
GShom sns::RightConcat::left
+
+private
+
+
+ +

◆ right

+ +
+
+ + + + + +
+ + + + +
GSDD sns::RightConcat::right
+
+private
+
+ +

Referenced by eval(), has_image(), hash(), mark(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1RightConcat__coll__graph.map b/libddd.html/classsns_1_1RightConcat__coll__graph.map new file mode 100644 index 000000000..0b0217f87 --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/classsns_1_1RightConcat__coll__graph.md5 b/libddd.html/classsns_1_1RightConcat__coll__graph.md5 new file mode 100644 index 000000000..3039a9ad6 --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat__coll__graph.md5 @@ -0,0 +1 @@ +f06c587788c28234d54bd2f35cbf1115 \ No newline at end of file diff --git a/libddd.html/classsns_1_1RightConcat__coll__graph.png b/libddd.html/classsns_1_1RightConcat__coll__graph.png new file mode 100644 index 000000000..1be6a2926 Binary files /dev/null and b/libddd.html/classsns_1_1RightConcat__coll__graph.png differ diff --git a/libddd.html/classsns_1_1RightConcat__inherit__graph.map b/libddd.html/classsns_1_1RightConcat__inherit__graph.map new file mode 100644 index 000000000..a36f398f1 --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1RightConcat__inherit__graph.md5 b/libddd.html/classsns_1_1RightConcat__inherit__graph.md5 new file mode 100644 index 000000000..7aa924e5f --- /dev/null +++ b/libddd.html/classsns_1_1RightConcat__inherit__graph.md5 @@ -0,0 +1 @@ +9214dcc141ce45c9e3b8c6ad41555a3f \ No newline at end of file diff --git a/libddd.html/classsns_1_1RightConcat__inherit__graph.png b/libddd.html/classsns_1_1RightConcat__inherit__graph.png new file mode 100644 index 000000000..d68888058 Binary files /dev/null and b/libddd.html/classsns_1_1RightConcat__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1SApply2k-members.html b/libddd.html/classsns_1_1SApply2k-members.html new file mode 100644 index 000000000..58c4c9b30 --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::SApply2k Member List
+
+
+ +

This is the complete list of members for sns::SApply2k, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::SApply2kinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::SApply2kinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::SApply2kinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::SApply2kinlinevirtual
is_marked() const_GShominline
is_selector() constsns::SApply2kinlinevirtual
mark() constsns::SApply2kinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &h) constsns::SApply2kinlinevirtual
print(std::ostream &os) constsns::SApply2kinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
SApply2k(const GSDD &d, int ref=0)sns::SApply2kinline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::SApply2kinlinevirtual
valuesns::SApply2kprivate
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SApply2k.html b/libddd.html/classsns_1_1SApply2k.html new file mode 100644 index 000000000..5083f6831 --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k.html @@ -0,0 +1,926 @@ + + + + + + + +DDD: sns::SApply2k Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::SApply2k Class Reference
+
+
+
+Inheritance diagram for sns::SApply2k:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::SApply2k:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SApply2k (const GSDD &d, int ref=0)
 
bool operator== (const _GShom &h) const
 Comparator. More...
 
size_t hash () const
 Hash key computation. More...
 
_GShomclone () const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
GShom invert (const GSDD &pot) const
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + + + +

+Private Attributes

GSDD value
 
int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ SApply2k()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::SApply2k::SApply2k (const GSDDd,
int ref = 0 
)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::SApply2k::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References SApply2k().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SApply2k::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), apply2k(), GSDD::begin(), GSDD::end(), GDDD::null, GSDD::null, value, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::SApply2k::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References GSDD::hash(), and value.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::SApply2k::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::SApply2k::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References GSDD::null, and value.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::SApply2k::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References GSDD::mark(), and value.

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SApply2k::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References value.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::SApply2k::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References value.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SApply2k::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References value, and GSDD::variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ value

+ +
+
+ + + + + +
+ + + + +
GSDD sns::SApply2k::value
+
+private
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SApply2k__coll__graph.map b/libddd.html/classsns_1_1SApply2k__coll__graph.map new file mode 100644 index 000000000..50f8d2942 --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/classsns_1_1SApply2k__coll__graph.md5 b/libddd.html/classsns_1_1SApply2k__coll__graph.md5 new file mode 100644 index 000000000..ee14a1cd8 --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k__coll__graph.md5 @@ -0,0 +1 @@ +97b26da4b8874e5eb3c209730a4f4a77 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SApply2k__coll__graph.png b/libddd.html/classsns_1_1SApply2k__coll__graph.png new file mode 100644 index 000000000..4efa8c070 Binary files /dev/null and b/libddd.html/classsns_1_1SApply2k__coll__graph.png differ diff --git a/libddd.html/classsns_1_1SApply2k__inherit__graph.map b/libddd.html/classsns_1_1SApply2k__inherit__graph.map new file mode 100644 index 000000000..ff40bc9dd --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1SApply2k__inherit__graph.md5 b/libddd.html/classsns_1_1SApply2k__inherit__graph.md5 new file mode 100644 index 000000000..5d8160d02 --- /dev/null +++ b/libddd.html/classsns_1_1SApply2k__inherit__graph.md5 @@ -0,0 +1 @@ +2ae1119453a760ae107ef4d9280497f8 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SApply2k__inherit__graph.png b/libddd.html/classsns_1_1SApply2k__inherit__graph.png new file mode 100644 index 000000000..863517865 Binary files /dev/null and b/libddd.html/classsns_1_1SApply2k__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1SDomExtract-members.html b/libddd.html/classsns_1_1SDomExtract-members.html new file mode 100644 index 000000000..74fba1731 --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract-members.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::SDomExtract Member List
+
+
+ +

This is the complete list of members for sns::SDomExtract, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::SDomExtractinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::SDomExtractinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() const_GShominlinevirtual
has_image(const GSDD &d) const_GShomvirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::SDomExtractinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() constsns::SDomExtractinlinevirtual
mark() const_GShominlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &s) constsns::SDomExtractinlinevirtual
print(std::ostream &os) constsns::SDomExtractinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
SDomExtract()sns::SDomExtractinline
SDomExtract(int t)sns::SDomExtractinline
set_mark(bool val) const_GShominline
skip_variable(int) constsns::SDomExtractinlinevirtual
targetsns::SDomExtract
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SDomExtract.html b/libddd.html/classsns_1_1SDomExtract.html new file mode 100644 index 000000000..aefbe9a67 --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract.html @@ -0,0 +1,941 @@ + + + + + + + +DDD: sns::SDomExtract Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::SDomExtract Class Reference
+
+
+ +

Extractor of variable domains for invert computations. + More...

+
+Inheritance diagram for sns::SDomExtract:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::SDomExtract:
+
+
Collaboration graph
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SDomExtract ()
 
 SDomExtract (int t)
 
bool skip_variable (int) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
size_t hash () const
 Hash key computation. More...
 
bool operator== (const _GShom &s) const
 Comparator. More...
 
_GShomclone () const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
virtual GSDD has_image (const GSDD &d) const
 
virtual GShom compose (const GShom &) const
 
virtual void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + +

+Public Attributes

int target
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Detailed Description

+

Extractor of variable domains for invert computations.

+

Constructor & Destructor Documentation

+ +

◆ SDomExtract() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
sns::SDomExtract::SDomExtract ()
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ SDomExtract() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
sns::SDomExtract::SDomExtract (int t)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::SDomExtract::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References SDomExtract().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SDomExtract::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), GSDD::begin(), GSDD::end(), _GShom::GShom, GSDD::null, GSDD::one, target, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const GShom::range_t _GShom::get_range () const
+
+inlinevirtualinherited
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented in sns::Fixpoint, sns::Compose, sns::RecFireSat, sns::Add, sns::And, sns::SNotCond, sns::SLocalApply, and sns::LocalApply.

+ +

References GShom::full_range.

+ +

Referenced by GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image (const GSDDd) const
+
+virtualinherited
+
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::SDomExtract::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References target.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::SDomExtract::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void _GShom::mark () const
+
+inlinevirtualinherited
+
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SDomExtract::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References target.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::SDomExtract::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References target.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SDomExtract::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ target

+ +
+
+ + + + +
int sns::SDomExtract::target
+
+ +

Referenced by eval(), hash(), operator==(), and print().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SDomExtract__coll__graph.map b/libddd.html/classsns_1_1SDomExtract__coll__graph.map new file mode 100644 index 000000000..3fc85a81c --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1SDomExtract__coll__graph.md5 b/libddd.html/classsns_1_1SDomExtract__coll__graph.md5 new file mode 100644 index 000000000..7803d4e84 --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract__coll__graph.md5 @@ -0,0 +1 @@ +0612868c2156dbf74ece84211abe4816 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SDomExtract__coll__graph.png b/libddd.html/classsns_1_1SDomExtract__coll__graph.png new file mode 100644 index 000000000..b2b8d9c99 Binary files /dev/null and b/libddd.html/classsns_1_1SDomExtract__coll__graph.png differ diff --git a/libddd.html/classsns_1_1SDomExtract__inherit__graph.map b/libddd.html/classsns_1_1SDomExtract__inherit__graph.map new file mode 100644 index 000000000..3fc85a81c --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1SDomExtract__inherit__graph.md5 b/libddd.html/classsns_1_1SDomExtract__inherit__graph.md5 new file mode 100644 index 000000000..7803d4e84 --- /dev/null +++ b/libddd.html/classsns_1_1SDomExtract__inherit__graph.md5 @@ -0,0 +1 @@ +0612868c2156dbf74ece84211abe4816 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SDomExtract__inherit__graph.png b/libddd.html/classsns_1_1SDomExtract__inherit__graph.png new file mode 100644 index 000000000..b2b8d9c99 Binary files /dev/null and b/libddd.html/classsns_1_1SDomExtract__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1SLocalApply-members.html b/libddd.html/classsns_1_1SLocalApply-members.html new file mode 100644 index 000000000..aee61df56 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply-members.html @@ -0,0 +1,89 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::SLocalApply Member List
+
+
+ +

This is the complete list of members for sns::SLocalApply, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::SLocalApplyinlinevirtual
compose(const GShom &) const_GShomvirtual
deref() const_GShominline
eval(const GSDD &d) constsns::SLocalApplyinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::SLocalApplyinlinevirtual
hsns::SLocalApply
has_image(const GSDD &d) constsns::SLocalApplyinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::SLocalApplyinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &pot) constsns::SLocalApplyinlinevirtual
is_marked() const_GShominline
is_selector() constsns::SLocalApplyinlinevirtual
mark() constsns::SLocalApplyinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &s) constsns::SLocalApplyinlinevirtual
print(std::ostream &os) constsns::SLocalApplyinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::SLocalApplyinlinevirtual
SLocalApply()sns::SLocalApplyinline
SLocalApply(const GShom &hh, int t)sns::SLocalApplyinline
targetsns::SLocalApply
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SLocalApply.html b/libddd.html/classsns_1_1SLocalApply.html new file mode 100644 index 000000000..d55bea328 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply.html @@ -0,0 +1,963 @@ + + + + + + + +DDD: sns::SLocalApply Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::SLocalApply Class Reference
+
+
+
+Inheritance diagram for sns::SLocalApply:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::SLocalApply:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SLocalApply ()
 
 SLocalApply (const GShom &hh, int t)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
size_t hash () const
 Hash key computation. More...
 
GShom invert (const GSDD &pot) const
 
GSDD has_image (const GSDD &d) const
 
bool operator== (const _GShom &s) const
 Comparator. More...
 
_GShomclone () const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + + + +

+Public Attributes

GShom h
 
int target
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ SLocalApply() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
sns::SLocalApply::SLocalApply ()
+
+inline
+
+ +

Referenced by clone().

+ +
+
+ +

◆ SLocalApply() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
sns::SLocalApply::SLocalApply (const GShomhh,
int t 
)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::SLocalApply::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References SLocalApply().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SLocalApply::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References SDED::add(), GSDD::begin(), GSDD::end(), h, GSDD::null, GSDD::one, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::SLocalApply::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References target.

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SLocalApply::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GSDD::begin(), GSDD::end(), h, GShom::has_image(), GSDD::null, GSDD::one, GSDD::top, and GSDD::variable().

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::SLocalApply::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References h, GShom::hash(), and target.

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom sns::SLocalApply::invert (const GSDDpot) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References GSDD::begin(), extractPotential(), h, GShom::invert(), localApply(), and target.

+ +
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::SLocalApply::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +

References h, and GShom::is_selector().

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::SLocalApply::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References h, and GShom::mark().

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SLocalApply::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References h, and target.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::SLocalApply::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References h, and target.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SLocalApply::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References target.

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ h

+ +
+
+ + + + +
GShom sns::SLocalApply::h
+
+
+ +

◆ target

+ +
+
+ + + + +
int sns::SLocalApply::target
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SLocalApply__coll__graph.map b/libddd.html/classsns_1_1SLocalApply__coll__graph.map new file mode 100644 index 000000000..aedf1b3d5 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1SLocalApply__coll__graph.md5 b/libddd.html/classsns_1_1SLocalApply__coll__graph.md5 new file mode 100644 index 000000000..8b3abefb7 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply__coll__graph.md5 @@ -0,0 +1 @@ +eced438e9f7da9e5ff5e675ed0366b8d \ No newline at end of file diff --git a/libddd.html/classsns_1_1SLocalApply__coll__graph.png b/libddd.html/classsns_1_1SLocalApply__coll__graph.png new file mode 100644 index 000000000..043d7234d Binary files /dev/null and b/libddd.html/classsns_1_1SLocalApply__coll__graph.png differ diff --git a/libddd.html/classsns_1_1SLocalApply__inherit__graph.map b/libddd.html/classsns_1_1SLocalApply__inherit__graph.map new file mode 100644 index 000000000..f6ac12d42 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1SLocalApply__inherit__graph.md5 b/libddd.html/classsns_1_1SLocalApply__inherit__graph.md5 new file mode 100644 index 000000000..6b54e6612 --- /dev/null +++ b/libddd.html/classsns_1_1SLocalApply__inherit__graph.md5 @@ -0,0 +1 @@ +757ea98f8486a3424e76ef9dde5c47cc \ No newline at end of file diff --git a/libddd.html/classsns_1_1SLocalApply__inherit__graph.png b/libddd.html/classsns_1_1SLocalApply__inherit__graph.png new file mode 100644 index 000000000..8cc6284e2 Binary files /dev/null and b/libddd.html/classsns_1_1SLocalApply__inherit__graph.png differ diff --git a/libddd.html/classsns_1_1SNotCond-members.html b/libddd.html/classsns_1_1SNotCond-members.html new file mode 100644 index 000000000..5cabb1cf8 --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond-members.html @@ -0,0 +1,87 @@ + + + + + + + +DDD: Member List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
sns::SNotCond Member List
+
+
+ +

This is the complete list of members for sns::SNotCond, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
_GShom(int ref=0)_GShominline
_refCounter_GShommutableprivate
clone() constsns::SNotCondinlinevirtual
compose(const GShom &) const_GShomvirtual
cond_sns::SNotCond
deref() const_GShominline
eval(const GSDD &d) constsns::SNotCondinlinevirtual
eval_skip(const GSDD &) const_GShomprivate
get_concret(const GShom &gshom)_GShominlinestatic
get_range() constsns::SNotCondinlinevirtual
has_image(const GSDD &d) constsns::SNotCondinlinevirtual
has_image_skip(const GSDD &) const_GShom
hash() constsns::SNotCondinlinevirtual
immediat() const_GShominlineprivatevirtual
invert(const GSDD &) const_GShominlinevirtual
is_marked() const_GShominline
is_selector() constsns::SNotCondinlinevirtual
mark() constsns::SNotCondinlinevirtual
mark_if_refd() const_GShominline
operator==(const _GShom &s) constsns::SNotCondinlinevirtual
print(std::ostream &os) constsns::SNotCondinlinevirtual
ref() const_GShominline
refCounter() const_GShominline
set_mark(bool val) const_GShominline
skip_variable(int var) constsns::SNotCondinlinevirtual
SNotCond(const GShom &cond)sns::SNotCondinline
~_GShom()_GShominlinevirtual
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SNotCond.html b/libddd.html/classsns_1_1SNotCond.html new file mode 100644 index 000000000..d2f8581fc --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond.html @@ -0,0 +1,908 @@ + + + + + + + +DDD: sns::SNotCond Class Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Public Member Functions | +Static Public Member Functions | +Public Attributes | +Private Member Functions | +Private Attributes | +List of all members
+
+
sns::SNotCond Class Reference
+
+
+
+Inheritance diagram for sns::SNotCond:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for sns::SNotCond:
+
+
Collaboration graph
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SNotCond (const GShom &cond)
 
bool skip_variable (int var) const
 The skip_variable predicate indicates which variables are "don't care" with respect to this SHom. More...
 
const GShom::range_t get_range () const
 The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism. More...
 
bool is_selector () const
 The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct. More...
 
GSDD has_image (const GSDD &d) const
 
GSDD eval (const GSDD &d) const
 The computation function responsible for evaluation over a node. More...
 
void mark () const
 For garbage collection. Used in first phase of garbage collection. More...
 
size_t hash () const
 Hash key computation. More...
 
bool operator== (const _GShom &s) const
 Comparator. More...
 
_GShomclone () const
 
void print (std::ostream &os) const
 
GSDD has_image_skip (const GSDD &) const
 
virtual GShom compose (const GShom &) const
 
void mark_if_refd () const
 
void ref () const
 
void deref () const
 
unsigned long int refCounter () const
 
bool is_marked () const
 
void set_mark (bool val) const
 
virtual GShom invert (const GSDD &) const
 
+ + + + +

+Static Public Member Functions

static const _GShomget_concret (const GShom &gshom)
 TODO : this is a dirty trick to allow us to do terms rewriting in Add, Fixpoint etc... More...
 
+ + + +

+Public Attributes

GShom cond_
 
+ + + + + + + +

+Private Member Functions

GSDD eval_skip (const GSDD &) const
 The procedure responsible for propagating efficiently across "skipped" variable nodes. More...
 
virtual bool immediat () const
 For operation cache management. More...
 
+ + + + +

+Private Attributes

int _refCounter
 For garbage collection. More...
 
+

Constructor & Destructor Documentation

+ +

◆ SNotCond()

+ +
+
+ + + + + +
+ + + + + + + + +
sns::SNotCond::SNotCond (const GShomcond)
+
+inline
+
+ +

Referenced by clone().

+ +
+
+

Member Function Documentation

+ +

◆ clone()

+ +
+
+ + + + + +
+ + + + + + + +
_GShom* sns::SNotCond::clone () const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References SNotCond().

+ +
+
+ +

◆ compose()

+ +
+
+ + + + + +
+ + + + + + + + +
GShom _GShom::compose (const GShomr) const
+
+virtualinherited
+
+ +

References GShom::id, and GSDD::null.

+ +

Referenced by GShom::compose().

+ +
+
+ +

◆ deref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::deref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::~Shom().

+ +
+
+ +

◆ eval()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SNotCond::eval (const GSDD) const
+
+inlinevirtual
+
+ +

The computation function responsible for evaluation over a node.

+

Users should not directly use this. Normal behavior is to use GShom::operator() that encapsulates this call with operation caching.

+ +

Implements _GShom.

+ +

References cond_, GSDD::null, GSDD::one, and GSDD::top.

+ +
+
+ +

◆ eval_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::eval_skip (const GSDDd) const
+
+privateinherited
+
+ +

The procedure responsible for propagating efficiently across "skipped" variable nodes.

+ +

References GSDD::begin(), GSDD::end(), _GShom::eval(), GShom::id, _GShom::immediat(), GSDD::nbsons(), GSDD::null, GSDD::one, _GShom::skip_variable(), square_union(), GSDD::top, and GSDD::variable().

+ +

Referenced by GShom::eval().

+ +
+
+ +

◆ get_concret()

+ +
+
+ + + + + +
+ + + + + + + + +
static const _GShom* _GShom::get_concret (const GShomgshom)
+
+inlinestaticinherited
+
+
+ +

◆ get_range()

+ +
+
+ + + + + +
+ + + + + + + +
const GShom::range_t sns::SNotCond::get_range () const
+
+inlinevirtual
+
+ +

The range returns the dual of skip_variable, default implem considers that all variables are affected by this homomorphism.

+ +

Reimplemented from _GShom.

+ +

References cond_, and GShom::get_range().

+ +
+
+ +

◆ has_image()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD sns::SNotCond::has_image (const GSDDd) const
+
+inlinevirtual
+
+ +

Reimplemented from _GShom.

+ +

References cond_, GShom::has_image(), _GShom::has_image(), and GSDD::null.

+ +
+
+ +

◆ has_image_skip()

+ +
+
+ + + + + +
+ + + + + + + + +
GSDD _GShom::has_image_skip (const GSDDd) const
+
+inherited
+
+
+ +

◆ hash()

+ +
+
+ + + + + +
+ + + + + + + +
size_t sns::SNotCond::hash () const
+
+inlinevirtual
+
+ +

Hash key computation.

+

It is essential for good hash table operation that the spread of the keys be as good as possible. Also, fast hash key computation is a good design goal. Note that bad hash functions will yield more collisions, thus equality comparisons which may be quite costly.

+ +

Implements _GShom.

+ +

References cond_, and GShom::hash().

+ +
+
+ +

◆ immediat()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool _GShom::immediat () const
+
+inlineprivatevirtualinherited
+
+ +

For operation cache management.

+

If immediat==true, eval is called without attempting a cache hit. Currently only the constant homomorphism has this attribute set to true. Overload and return true for immediate computations.

+ +

Reimplemented in sns::Constant, and sns::Identity.

+ +

Referenced by _GShom::eval_skip(), and GShom::operator()().

+ +
+
+ +

◆ invert()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual GShom _GShom::invert (const GSDD) const
+
+inlinevirtualinherited
+
+
+ +

◆ is_marked()

+ +
+
+ + + + + +
+ + + + + + + +
bool _GShom::is_marked () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by _GShom::set_mark().

+ +
+
+ +

◆ is_selector()

+ +
+
+ + + + + +
+ + + + + + + +
bool sns::SNotCond::is_selector () const
+
+inlinevirtual
+
+ +

The isSelector predicate indicates a homomorphism that only selects paths in the SDD (no modifications, no additions) Tagging with isSelector() allows to enable optimizations and makes the homomorphism eligible as "condition" in ITE construct.

+ +

Reimplemented from _GShom.

+ +
+
+ +

◆ mark()

+ +
+
+ + + + + +
+ + + + + + + +
void sns::SNotCond::mark () const
+
+inlinevirtual
+
+ +

For garbage collection. Used in first phase of garbage collection.

+ +

Reimplemented from _GShom.

+ +

References cond_, and GShom::mark().

+ +
+
+ +

◆ mark_if_refd()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::mark_if_refd () const
+
+inlineinherited
+
+ +

References _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ operator==()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SNotCond::operator== (const _GShomh) const
+
+inlinevirtual
+
+ +

Comparator.

+

Used in case of hash collision. Should be appropriately defined in derived classes, in particular in user defined homomorphisms.

+ +

Implements _GShom.

+ +

References cond_.

+ +
+
+ +

◆ print()

+ +
+
+ + + + + +
+ + + + + + + + +
void sns::SNotCond::print (std::ostream & os) const
+
+inlinevirtual
+
+ +

Implements _GShom.

+ +

References cond_.

+ +
+
+ +

◆ ref()

+ +
+
+ + + + + +
+ + + + + + + +
void _GShom::ref () const
+
+inlineinherited
+
+ +

References _GShom::_refCounter.

+ +

Referenced by Shom::operator=(), and Shom::Shom().

+ +
+
+ +

◆ refCounter()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long int _GShom::refCounter () const
+
+inlineinherited
+
+
+ +

◆ set_mark()

+ +
+
+ + + + + +
+ + + + + + + + +
void _GShom::set_mark (bool val) const
+
+inlineinherited
+
+
+ +

◆ skip_variable()

+ +
+
+ + + + + +
+ + + + + + + + +
bool sns::SNotCond::skip_variable (int ) const
+
+inlinevirtual
+
+ +

The skip_variable predicate indicates which variables are "don't care" with respect to this SHom.

+

This is defined as a StrongHom with : phi(var,val) { if ( skip_variable(var) ) return GShom( var, val, this ); else { real behavior } }

+ +

Reimplemented from _GShom.

+ +

References cond_, and GShom::skip_variable().

+ +
+
+

Member Data Documentation

+ +

◆ _refCounter

+ +
+
+ + + + + +
+ + + + +
int _GShom::_refCounter
+
+mutableprivateinherited
+
+ +

For garbage collection.

+

Counts the number of times a _GShom is referenced from the context of an Shom. For garbage collection: lowest bit of refCounter gives marking value for mark&sweep. Used in the two phase garbage collection process. A Shom that is not marked after the first pass over the unicity table, will be sweeped in the second phase. Outside of garbage collection routine, marking should always bear the value false.

+ +

Referenced by _GShom::deref(), _GShom::is_marked(), _GShom::ref(), _GShom::refCounter(), and _GShom::set_mark().

+ +
+
+ +

◆ cond_

+ +
+
+ + + + +
GShom sns::SNotCond::cond_
+
+
+
The documentation for this class was generated from the following file: +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/classsns_1_1SNotCond__coll__graph.map b/libddd.html/classsns_1_1SNotCond__coll__graph.map new file mode 100644 index 000000000..74b5c8ae0 --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/classsns_1_1SNotCond__coll__graph.md5 b/libddd.html/classsns_1_1SNotCond__coll__graph.md5 new file mode 100644 index 000000000..1912a8e96 --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond__coll__graph.md5 @@ -0,0 +1 @@ +788ec9010fbad33d3fcb67caa52d4f37 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SNotCond__coll__graph.png b/libddd.html/classsns_1_1SNotCond__coll__graph.png new file mode 100644 index 000000000..84cf46bf7 Binary files /dev/null and b/libddd.html/classsns_1_1SNotCond__coll__graph.png differ diff --git a/libddd.html/classsns_1_1SNotCond__inherit__graph.map b/libddd.html/classsns_1_1SNotCond__inherit__graph.map new file mode 100644 index 000000000..20b2e8d57 --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/classsns_1_1SNotCond__inherit__graph.md5 b/libddd.html/classsns_1_1SNotCond__inherit__graph.md5 new file mode 100644 index 000000000..f5eb43620 --- /dev/null +++ b/libddd.html/classsns_1_1SNotCond__inherit__graph.md5 @@ -0,0 +1 @@ +5a9a3cd83feb183ae837c23bbe47d9e0 \ No newline at end of file diff --git a/libddd.html/classsns_1_1SNotCond__inherit__graph.png b/libddd.html/classsns_1_1SNotCond__inherit__graph.png new file mode 100644 index 000000000..4d01ce4c1 Binary files /dev/null and b/libddd.html/classsns_1_1SNotCond__inherit__graph.png differ diff --git a/libddd.html/closed.png b/libddd.html/closed.png new file mode 100644 index 000000000..98cc2c909 Binary files /dev/null and b/libddd.html/closed.png differ diff --git a/libddd.html/configuration_8hh.html b/libddd.html/configuration_8hh.html new file mode 100644 index 000000000..e032210db --- /dev/null +++ b/libddd.html/configuration_8hh.html @@ -0,0 +1,138 @@ + + + + + + + +DDD: util/configuration.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Classes | +Namespaces
+
+
configuration.hh File Reference
+
+
+
#include "ddd/util/hash_support.hh"
+#include "ddd/util/ext_hash_map.hh"
+#include "ddd/util/tbb_hash_map.hh"
+
+Include dependency graph for configuration.hh:
+
+
+ + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Classes

struct  hash_map< Key, Data, HashKey, EqualKey >
 
struct  conf::allocator< T >
 
+ + + +

+Namespaces

 conf
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/configuration_8hh__dep__incl.map b/libddd.html/configuration_8hh__dep__incl.map new file mode 100644 index 000000000..73024a3d2 --- /dev/null +++ b/libddd.html/configuration_8hh__dep__incl.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/configuration_8hh__dep__incl.md5 b/libddd.html/configuration_8hh__dep__incl.md5 new file mode 100644 index 000000000..50e282a2d --- /dev/null +++ b/libddd.html/configuration_8hh__dep__incl.md5 @@ -0,0 +1 @@ +ed61a65292fe85d370017710da58960f \ No newline at end of file diff --git a/libddd.html/configuration_8hh__dep__incl.png b/libddd.html/configuration_8hh__dep__incl.png new file mode 100644 index 000000000..c1fe7e417 Binary files /dev/null and b/libddd.html/configuration_8hh__dep__incl.png differ diff --git a/libddd.html/configuration_8hh__incl.map b/libddd.html/configuration_8hh__incl.map new file mode 100644 index 000000000..056b1a4e1 --- /dev/null +++ b/libddd.html/configuration_8hh__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/libddd.html/configuration_8hh__incl.md5 b/libddd.html/configuration_8hh__incl.md5 new file mode 100644 index 000000000..42288b556 --- /dev/null +++ b/libddd.html/configuration_8hh__incl.md5 @@ -0,0 +1 @@ +cca071e86ac48f01e9ec8fa53dba49de \ No newline at end of file diff --git a/libddd.html/configuration_8hh__incl.png b/libddd.html/configuration_8hh__incl.png new file mode 100644 index 000000000..66de5ed72 Binary files /dev/null and b/libddd.html/configuration_8hh__incl.png differ diff --git a/libddd.html/configuration_8hh_source.html b/libddd.html/configuration_8hh_source.html new file mode 100644 index 000000000..50efdac76 --- /dev/null +++ b/libddd.html/configuration_8hh_source.html @@ -0,0 +1,112 @@ + + + + + + + +DDD: util/configuration.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
configuration.hh
+
+
+Go to the documentation of this file.
1 #ifndef _D3_CONFIGURATION_HH_
+
2 #define _D3_CONFIGURATION_HH_
+
3 
+
4 #ifdef PARALLEL_DD
+
5 #ifndef REENTRANT
+
6 #define REENTRANT
+
7 #endif
+
8 #endif
+
9 
+
10 #include "ddd/util/hash_support.hh"
+
11 #include "ddd/util/ext_hash_map.hh"
+
12 #include "ddd/util/tbb_hash_map.hh"
+
13 
+
14 
+
15 template
+
16 <
+
17  typename Key,
+
18  typename Data,
+
19  typename HashKey = d3::util::hash<Key>,
+
20  typename EqualKey = d3::util::equal<Key>
+
21 > struct hash_map
+
22 {
+
23 # ifdef REENTRANT
+
24  typedef tbb_hash_map<Key,Data,HashKey,EqualKey> type;
+
25 # else
+ +
27 #endif
+
28 };
+
29 
+
30 namespace conf
+
31 {
+
32 
+
33 template
+
34 <
+
35  typename T
+
36 >
+
37 struct allocator
+
38 {
+
39  typedef typename std::allocator<T> type;
+
40 };
+
41 
+
42 } // conf
+
43 
+
44 #endif
+
Definition: ext_hash_map.hh:21
+ + +
Definition: configuration.hh:31
+
Definition: configuration.hh:38
+
std::allocator< T > type
Definition: configuration.hh:39
+
Definition: hash_support.hh:51
+
Definition: hash_support.hh:40
+
Definition: configuration.hh:22
+
ext_hash_map< Key, Data, HashKey, EqualKey > type
Definition: configuration.hh:26
+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/dir_23ec12649285f9fabf3a6b7380226c28.html b/libddd.html/dir_23ec12649285f9fabf3a6b7380226c28.html new file mode 100644 index 000000000..109b8f80a --- /dev/null +++ b/libddd.html/dir_23ec12649285f9fabf3a6b7380226c28.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: util Directory Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
util Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Files

file  configuration.hh [code]
 
file  dotExporter.cpp
 
file  dotExporter.h [code]
 
file  ext_hash_map.hh [code]
 
file  hash_set.hh [code]
 
file  hash_support.hh [code]
 
file  map.hh [code]
 
file  set.hh [code]
 
file  tbb_hash_map.hh [code]
 
file  vector.hh [code]
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/doc.png b/libddd.html/doc.png new file mode 100644 index 000000000..17edabff9 Binary files /dev/null and b/libddd.html/doc.png differ diff --git a/libddd.html/dotExporter_8cpp.html b/libddd.html/dotExporter_8cpp.html new file mode 100644 index 000000000..882c38c4d --- /dev/null +++ b/libddd.html/dotExporter_8cpp.html @@ -0,0 +1,253 @@ + + + + + + + +DDD: util/dotExporter.cpp File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Classes | +Functions | +Variables
+
+
dotExporter.cpp File Reference
+
+
+
#include "ddd/util/dotExporter.h"
+#include <typeinfo>
+#include <map>
+#include <iostream>
+#include <sstream>
+#include <fstream>
+#include "ddd/util/hash_support.hh"
+#include "ddd/util/hash_set.hh"
+
+Include dependency graph for dotExporter.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +

+Classes

class  dotExporter
 
class  hDotExporter
 
+ + + + + + + +

+Functions

int exportDot (const GSDD &g, const string &path, bool hierarchical, bool multiT)
 
static void addSDD (const GSDD &d)
 
void exportUniqueTable (const GSDD &d, const std::string &path)
 
+ + + +

+Variables

static dotHighlight dotH = dotHighlight("table")
 
+

Function Documentation

+ +

◆ addSDD()

+ +
+
+ + + + + +
+ + + + + + + + +
static void addSDD (const GSDDd)
+
+static
+
+ +

References dotHighlight::addSDD(), and dotH.

+ +

Referenced by exportUniqueTable().

+ +
+
+ +

◆ exportDot()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int exportDot (const GSDDg,
const string & path,
bool hierarchical,
bool multiT 
)
+
+ +

References dotExporter::init().

+ +
+
+ +

◆ exportUniqueTable()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void exportUniqueTable (const GSDDd,
const std::string & path 
)
+
+
+

Variable Documentation

+ +

◆ dotH

+ +
+
+ + + + + +
+ + + + +
dotHighlight dotH = dotHighlight("table")
+
+static
+
+ +

Referenced by addSDD(), and exportUniqueTable().

+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/dotExporter_8cpp__incl.map b/libddd.html/dotExporter_8cpp__incl.map new file mode 100644 index 000000000..5bb1dce0f --- /dev/null +++ b/libddd.html/dotExporter_8cpp__incl.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/dotExporter_8cpp__incl.md5 b/libddd.html/dotExporter_8cpp__incl.md5 new file mode 100644 index 000000000..769dd5bbd --- /dev/null +++ b/libddd.html/dotExporter_8cpp__incl.md5 @@ -0,0 +1 @@ +95d1dcb7ddc71c383bc14da7a19417fd \ No newline at end of file diff --git a/libddd.html/dotExporter_8cpp__incl.png b/libddd.html/dotExporter_8cpp__incl.png new file mode 100644 index 000000000..a11444acd Binary files /dev/null and b/libddd.html/dotExporter_8cpp__incl.png differ diff --git a/libddd.html/dotExporter_8h.html b/libddd.html/dotExporter_8h.html new file mode 100644 index 000000000..4a262d2a5 --- /dev/null +++ b/libddd.html/dotExporter_8h.html @@ -0,0 +1,187 @@ + + + + + + + +DDD: util/dotExporter.h File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+Classes | +Functions
+
+
dotExporter.h File Reference
+
+
+
#include "ddd/SDD.h"
+#include "ddd/DDD.h"
+
+Include dependency graph for dotExporter.h:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  dotHighlight
 a more evolved API for highlighting parts of a graph More...
 
+ + + + + +

+Functions

int exportDot (const GSDD &g, const string &path="test", bool hierarchical=false, bool multiT=true)
 
void exportUniqueTable (const GSDD &d, const string &path="table")
 
+

Function Documentation

+ +

◆ exportDot()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int exportDot (const GSDDg,
const string & path = "test",
bool hierarchical = false,
bool multiT = true 
)
+
+ +

References dotExporter::init().

+ +
+
+ +

◆ exportUniqueTable()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void exportUniqueTable (const GSDDd,
const string & path = "table" 
)
+
+ +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/dotExporter_8h__dep__incl.map b/libddd.html/dotExporter_8h__dep__incl.map new file mode 100644 index 000000000..5fc69a415 --- /dev/null +++ b/libddd.html/dotExporter_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/dotExporter_8h__dep__incl.md5 b/libddd.html/dotExporter_8h__dep__incl.md5 new file mode 100644 index 000000000..c60008da8 --- /dev/null +++ b/libddd.html/dotExporter_8h__dep__incl.md5 @@ -0,0 +1 @@ +f69c7c770fc46adcccc275524656ba4c \ No newline at end of file diff --git a/libddd.html/dotExporter_8h__dep__incl.png b/libddd.html/dotExporter_8h__dep__incl.png new file mode 100644 index 000000000..518d388ec Binary files /dev/null and b/libddd.html/dotExporter_8h__dep__incl.png differ diff --git a/libddd.html/dotExporter_8h__incl.map b/libddd.html/dotExporter_8h__incl.map new file mode 100644 index 000000000..939c5497c --- /dev/null +++ b/libddd.html/dotExporter_8h__incl.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/dotExporter_8h__incl.md5 b/libddd.html/dotExporter_8h__incl.md5 new file mode 100644 index 000000000..3f3fec6bb --- /dev/null +++ b/libddd.html/dotExporter_8h__incl.md5 @@ -0,0 +1 @@ +5d0ce83dcb20fedb27d1350d8c7b84de \ No newline at end of file diff --git a/libddd.html/dotExporter_8h__incl.png b/libddd.html/dotExporter_8h__incl.png new file mode 100644 index 000000000..6c93676b9 Binary files /dev/null and b/libddd.html/dotExporter_8h__incl.png differ diff --git a/libddd.html/dotExporter_8h_source.html b/libddd.html/dotExporter_8h_source.html new file mode 100644 index 000000000..3b35b5b91 --- /dev/null +++ b/libddd.html/dotExporter_8h_source.html @@ -0,0 +1,138 @@ + + + + + + + +DDD: util/dotExporter.h Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
dotExporter.h
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2004-2008 Yann Thierry-Mieg */
+
6 /* */
+
7 /* This program is free software; you can redistribute it and/or modify */
+
8 /* it under the terms of the GNU Lesser General Public License as */
+
9 /* published by the Free Software Foundation; either version 3 of the */
+
10 /* License, or (at your option) any later version. */
+
11 /* This program is distributed in the hope that it will be useful, */
+
12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
14 /* GNU LEsserGeneral Public License for more details. */
+
15 /* */
+
16 /* You should have received a copy of the GNU Lesser General Public License */
+
17 /* along with this program; if not, write to the Free Software */
+
18 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
19 /* */
+
20 /****************************************************************************/
+
21 
+
22 #ifndef __DOTEXPORTER__H__
+
23 #define __DOTEXPORTER__H__
+
24 
+
25 
+
26 #include "ddd/SDD.h"
+
27 #include "ddd/DDD.h"
+
28 using namespace std;
+
29 
+
30 
+
31 /* exports a SDD g into the file specified by path.
+
32  * If hierarchical is true, single dot file is produced with dashed lines to represent arc values.
+
33  * The default produces one graph xxx.dot with SDD and another with DDD d3XXX.dot
+
34  */
+
35 int exportDot(const GSDD & g, const string & path="test",bool hierarchical=false, bool multiT=true);
+
36 
+
37 
+
38 /* Exports the full unique table of SDD into a dot file specified by path.
+
39  * Highlights nodes that belong to the SDD provided.
+
40  * NB : avoid if unique table size is too large...
+
41  **/
+
42 void exportUniqueTable ( const GSDD & d, const string & path="table" );
+
43 
+
44 class dotExporter;
+
45 
+
47 class dotHighlight {
+
48  class dotExporter * de;
+
49 public:
+
50  virtual ~dotHighlight ();
+
51  // prepares to export in file named "path"
+
52  dotHighlight (const string & path);
+
53  // Call this to empty the "known nodes" lists
+
54  void initialize (const string & path);
+
55  // Sets the vars to be aligned
+
56  void setVarAlignment (bool isAligned);
+
57  // This adds an SDD node and all sons to a graph
+
58  void addSDD (const GSDD & g);
+
59  // This adds an SDD node and names it with the provided label
+
60  void addSDD (const GSDD & g, const string &label);
+
61  // This changes the color of a node and sons
+
62  void setColor(const GSDD & g, const string & color);
+
63  // This creates the actual file
+
64  void exportDot();
+
65 };
+
66 
+
67 
+
68 #endif
+ + +
This class is the base class representing a hierarchical Set Decision Diagram.
Definition: SDD.h:49
+
Definition: dotExporter.cpp:32
+
string path
Definition: dotExporter.cpp:49
+
void label(const GSDD &g, const string &name)
Definition: dotExporter.cpp:292
+
bool isAligned
Definition: dotExporter.cpp:58
+
void setColor(const GSDD &g, const string &color)
Definition: dotExporter.cpp:261
+
a more evolved API for highlighting parts of a graph
Definition: dotExporter.h:47
+
class dotExporter * de
Definition: dotExporter.h:48
+
static void addSDD(const GSDD &d)
Definition: dotExporter.cpp:507
+
void exportUniqueTable(const GSDD &d, const string &path="table")
+
int exportDot(const GSDD &g, const string &path="test", bool hierarchical=false, bool multiT=true)
Definition: dotExporter.cpp:455
+
Definition: DDD.h:340
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/doxygen.css b/libddd.html/doxygen.css new file mode 100644 index 000000000..ffbff0224 --- /dev/null +++ b/libddd.html/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/libddd.html/doxygen.svg b/libddd.html/doxygen.svg new file mode 100644 index 000000000..d42dad52d --- /dev/null +++ b/libddd.html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/dynsections.js b/libddd.html/dynsections.js new file mode 100644 index 000000000..3174bd7be --- /dev/null +++ b/libddd.html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +DDD: util/ext_hash_map.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+ +
+
ext_hash_map.hh File Reference
+
+
+
#include <ddd/google/sparse_hash_map>
+#include "ddd/util/hash_support.hh"
+#include <utility>
+
+Include dependency graph for ext_hash_map.hh:
+
+
+ + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  ext_hash_map< Key, Data, HashKey, EqualKey >
 
class  ext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor
 
class  ext_hash_map< Key, Data, HashKey, EqualKey >::accessor
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/ext__hash__map_8hh__dep__incl.map b/libddd.html/ext__hash__map_8hh__dep__incl.map new file mode 100644 index 000000000..366b8cc72 --- /dev/null +++ b/libddd.html/ext__hash__map_8hh__dep__incl.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/ext__hash__map_8hh__dep__incl.md5 b/libddd.html/ext__hash__map_8hh__dep__incl.md5 new file mode 100644 index 000000000..51d59a3ac --- /dev/null +++ b/libddd.html/ext__hash__map_8hh__dep__incl.md5 @@ -0,0 +1 @@ +077116ba66c49b76ca0871ecf7fe0217 \ No newline at end of file diff --git a/libddd.html/ext__hash__map_8hh__dep__incl.png b/libddd.html/ext__hash__map_8hh__dep__incl.png new file mode 100644 index 000000000..edbbc900b Binary files /dev/null and b/libddd.html/ext__hash__map_8hh__dep__incl.png differ diff --git a/libddd.html/ext__hash__map_8hh__incl.map b/libddd.html/ext__hash__map_8hh__incl.map new file mode 100644 index 000000000..96fd5d180 --- /dev/null +++ b/libddd.html/ext__hash__map_8hh__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/libddd.html/ext__hash__map_8hh__incl.md5 b/libddd.html/ext__hash__map_8hh__incl.md5 new file mode 100644 index 000000000..900e97d32 --- /dev/null +++ b/libddd.html/ext__hash__map_8hh__incl.md5 @@ -0,0 +1 @@ +b9c4ad81126f5a2380dab32c3d2db2cd \ No newline at end of file diff --git a/libddd.html/ext__hash__map_8hh__incl.png b/libddd.html/ext__hash__map_8hh__incl.png new file mode 100644 index 000000000..1ab1f6aec Binary files /dev/null and b/libddd.html/ext__hash__map_8hh__incl.png differ diff --git a/libddd.html/ext__hash__map_8hh_source.html b/libddd.html/ext__hash__map_8hh_source.html new file mode 100644 index 000000000..ab5258bce --- /dev/null +++ b/libddd.html/ext__hash__map_8hh_source.html @@ -0,0 +1,356 @@ + + + + + + + +DDD: util/ext_hash_map.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
ext_hash_map.hh
+
+
+Go to the documentation of this file.
1 #ifndef _EXT_HASH_MAP_HH_
+
2 #define _EXT_HASH_MAP_HH_
+
3 
+
4 #ifndef USE_STD_HASH
+
5 #include <ddd/google/sparse_hash_map>
+
6 #else
+
7 #include <unordered_map>
+
8 #endif
+
9 
+
10 #include "ddd/util/hash_support.hh"
+
11 #include <utility>
+
12 
+
13 template
+
14 <
+
15  typename Key,
+
16  typename Data,
+
17  typename HashKey = d3::util::hash<Key>,
+
18  typename EqualKey = d3::util::equal<Key>
+
19 >
+ +
21 {
+
22  // Types
+
23 public:
+
24 
+
25 #ifndef USE_STD_HASH
+
26  typedef google::sparse_hash_map<Key,Data,HashKey,EqualKey> internal_hash_map;
+
27 #else
+
28  typedef std::unordered_map<Key,Data,HashKey,EqualKey> internal_hash_map;
+
29 #endif
+
30 
+
31  typedef typename internal_hash_map::iterator iterator;
+
32  typedef typename internal_hash_map::const_iterator const_iterator;
+
33  typedef typename internal_hash_map::size_type size_type;
+
34 
+
36 
+ +
38  {
+
39  // Types
+
40  public:
+
41 
+
42  typedef const typename std::pair<const Key, Data> value_type;
+
43 
+
44  // Attributes
+
45  private:
+
46 
+
47  friend class ext_hash_map;
+ + +
50 
+
51 
+
52  // Methods
+
53  public:
+
54 
+ +
56  :
+
57  has_result_(false),
+ +
59  {
+
60  }
+
61 
+
62  bool
+
63  empty() const
+
64  {
+
65  return ! has_result_;
+
66  }
+
67 
+
68  const value_type&
+
69  operator*() const
+
70  {
+
71  return *current_bucket_;
+
72  }
+
73 
+
74  const value_type*
+
75  operator->() const
+
76  {
+
77  return &operator*();
+
78  }
+
79 
+
80  void
+ +
82  {
+
83  // nothing to do, because there are no mutexes to release
+
84  }
+
85 
+
86  private:
+
87 
+
88  // cannot copy or assign a const_accessor
+ + +
91 
+
92  };
+
93 
+
95  class accessor
+
96  {
+
97  // Types
+
98  public:
+
99  typedef typename std::pair<const Key, Data> value_type;
+
100 
+
101  // Attributes
+
102  private:
+ + +
105 
+
106  friend class ext_hash_map;
+
107  // Methods
+
108  public:
+
109 
+
110  value_type&
+
111  operator*() const
+
112  {
+
113  return *(this->current_bucket_);
+
114  }
+
115 
+
116  value_type*
+
117  operator->() const
+
118  {
+
119  return &operator*();
+
120  }
+
121 
+ +
123  :
+
124  has_result_(false),
+ +
126  {
+
127  }
+
128 
+
129  bool
+
130  empty() const
+
131  {
+
132  return ! has_result_;
+
133  }
+
134 
+
135  void
+ +
137  {
+
138  // nothing to do, because there are no mutexes to release
+
139  }
+
140 
+
141  private:
+
142 
+
143  // cannot copy or assign a const_accessor
+ + +
146 
+
147 
+
148  };
+
149 
+
151 
+
152  // Attributes
+
153 private:
+
154 
+
155  friend class const_accessor;
+
156  friend class accessor;
+ +
158 
+
159  // Methods
+
160 public:
+
161 
+ +
163  :
+
164  map_()
+
165  {
+
166  }
+
167 
+
168  ext_hash_map(size_t s)
+
169  :
+
170  map_(s)
+
171  {
+
172  }
+
173 
+
174  iterator
+ +
176  {
+
177  return map_.begin();
+
178  }
+
179 
+ +
181  begin() const
+
182  {
+
183  return map_.begin();
+
184  }
+
185 
+
186  iterator
+
187  end()
+
188  {
+
189  return map_.end();
+
190  }
+
191 
+ +
193  end() const
+
194  {
+
195  return map_.end();
+
196  }
+
197 
+
198  size_type
+
199  size() const
+
200  {
+
201  return map_.size();
+
202  }
+
203 
+
204  bool
+
205  empty() const
+
206  {
+
207  return map_.empty();
+
208  }
+
209 
+
210  void
+ +
212  {
+
213  map_.clear();
+
214  }
+
215 
+
216  bool
+
217  find( accessor& result, const Key& key)
+
218  {
+
219  iterator i = map_.find(key);
+
220  result.current_bucket_ = i;
+
221  result.has_result_ = ( i != map_.end() );
+
222  return result.has_result_;
+
223  }
+
224 
+
225  bool
+
226  find( const_accessor& result, const Key& key) const
+
227  {
+
228  const_iterator i = map_.find(key);
+
229  result.current_bucket_ = i;
+
230  result.has_result_ = ( i != map_.end() );
+
231  return result.has_result_;
+
232  }
+
233 
+
234  bool
+
235  insert( accessor& result, const Key& key)
+
236  {
+
237  std::pair<const Key, Data> value_to_insert(key,Data());
+
238  std::pair<iterator,bool> p(map_.insert(value_to_insert));
+
239  result.current_bucket_ = p.first;
+
240  result.has_result_ = true;
+
241  return p.second;
+
242  }
+
243 
+
244  bool
+
245  erase( const Key& key)
+
246  {
+
247  return map_.erase(key) > 1 ? false : true;
+
248  }
+
249 
+
250 #ifdef HASH_STAT
+
251  std::map<std::string, size_t> get_hits() const { return map_.get_hits(); }
+
252  std::map<std::string, size_t> get_misses() const { return map_.get_misses(); }
+
253  std::map<std::string, size_t> get_bounces() const { return map_.get_bounces(); }
+
254 #endif // HASH_STAT
+
255 
+
256 };
+
257 
+
258 #endif
+
Definition: ext_hash_map.hh:96
+
accessor & operator=(const accessor &)
+
bool has_result_
Definition: ext_hash_map.hh:103
+
iterator current_bucket_
Definition: ext_hash_map.hh:104
+
std::pair< const Key, Data > value_type
Definition: ext_hash_map.hh:99
+
accessor()
Definition: ext_hash_map.hh:122
+
void release()
Definition: ext_hash_map.hh:136
+
value_type & operator*() const
Definition: ext_hash_map.hh:111
+
accessor(const accessor &)
+
bool empty() const
Definition: ext_hash_map.hh:130
+
value_type * operator->() const
Definition: ext_hash_map.hh:117
+
Definition: ext_hash_map.hh:38
+
bool empty() const
Definition: ext_hash_map.hh:63
+
const_accessor(const const_accessor &)
+
const_accessor()
Definition: ext_hash_map.hh:55
+
const value_type * operator->() const
Definition: ext_hash_map.hh:75
+
bool has_result_
Definition: ext_hash_map.hh:48
+
const_iterator current_bucket_
Definition: ext_hash_map.hh:49
+
const_accessor & operator=(const const_accessor &)
+
const std::pair< const Key, Data > value_type
Definition: ext_hash_map.hh:42
+
const value_type & operator*() const
Definition: ext_hash_map.hh:69
+
void release()
Definition: ext_hash_map.hh:81
+
Definition: ext_hash_map.hh:21
+
iterator end()
Definition: ext_hash_map.hh:187
+
const_iterator end() const
Definition: ext_hash_map.hh:193
+
size_type size() const
Definition: ext_hash_map.hh:199
+
ext_hash_map()
Definition: ext_hash_map.hh:162
+
internal_hash_map::const_iterator const_iterator
Definition: ext_hash_map.hh:32
+
google::sparse_hash_map< Key, Data, HashKey, EqualKey > internal_hash_map
Definition: ext_hash_map.hh:26
+
bool find(accessor &result, const Key &key)
Definition: ext_hash_map.hh:217
+
internal_hash_map::iterator iterator
Definition: ext_hash_map.hh:31
+
iterator begin()
Definition: ext_hash_map.hh:175
+
bool empty() const
Definition: ext_hash_map.hh:205
+
ext_hash_map(size_t s)
Definition: ext_hash_map.hh:168
+
bool insert(accessor &result, const Key &key)
Definition: ext_hash_map.hh:235
+
bool find(const_accessor &result, const Key &key) const
Definition: ext_hash_map.hh:226
+
internal_hash_map::size_type size_type
Definition: ext_hash_map.hh:33
+
void clear()
Definition: ext_hash_map.hh:211
+
const_iterator begin() const
Definition: ext_hash_map.hh:181
+
internal_hash_map map_
Definition: ext_hash_map.hh:157
+
bool erase(const Key &key)
Definition: ext_hash_map.hh:245
+ +
Definition: hash_support.hh:51
+
Definition: hash_support.hh:40
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/files.html b/libddd.html/files.html new file mode 100644 index 000000000..661c57a2a --- /dev/null +++ b/libddd.html/files.html @@ -0,0 +1,103 @@ + + + + + + + +DDD: File List + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/folderclosed.png b/libddd.html/folderclosed.png new file mode 100644 index 000000000..bb8ab35ed Binary files /dev/null and b/libddd.html/folderclosed.png differ diff --git a/libddd.html/folderopen.png b/libddd.html/folderopen.png new file mode 100644 index 000000000..d6c7f676a Binary files /dev/null and b/libddd.html/folderopen.png differ diff --git a/libddd.html/functions.html b/libddd.html/functions.html new file mode 100644 index 000000000..4c247ff34 --- /dev/null +++ b/libddd.html/functions.html @@ -0,0 +1,117 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- _ -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_a.html b/libddd.html/functions_a.html new file mode 100644 index 000000000..2b2229497 --- /dev/null +++ b/libddd.html/functions_a.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_b.html b/libddd.html/functions_b.html new file mode 100644 index 000000000..4715ec4ce --- /dev/null +++ b/libddd.html/functions_b.html @@ -0,0 +1,65 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- b -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_c.html b/libddd.html/functions_c.html new file mode 100644 index 000000000..152e6fb8d --- /dev/null +++ b/libddd.html/functions_c.html @@ -0,0 +1,244 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- c -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_d.html b/libddd.html/functions_d.html new file mode 100644 index 000000000..96e90dfcd --- /dev/null +++ b/libddd.html/functions_d.html @@ -0,0 +1,105 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- d -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_e.html b/libddd.html/functions_e.html new file mode 100644 index 000000000..e35f488f6 --- /dev/null +++ b/libddd.html/functions_e.html @@ -0,0 +1,182 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- e -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_enum.html b/libddd.html/functions_enum.html new file mode 100644 index 000000000..23719c8be --- /dev/null +++ b/libddd.html/functions_enum.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members - Enumerations + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_eval.html b/libddd.html/functions_eval.html new file mode 100644 index 000000000..7c823103c --- /dev/null +++ b/libddd.html/functions_eval.html @@ -0,0 +1,63 @@ + + + + + + + +DDD: Class Members - Enumerator + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_f.html b/libddd.html/functions_f.html new file mode 100644 index 000000000..f75fcc7ff --- /dev/null +++ b/libddd.html/functions_f.html @@ -0,0 +1,94 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- f -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func.html b/libddd.html/functions_func.html new file mode 100644 index 000000000..a8cecd9ca --- /dev/null +++ b/libddd.html/functions_func.html @@ -0,0 +1,110 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- _ -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_a.html b/libddd.html/functions_func_a.html new file mode 100644 index 000000000..2a3d14da1 --- /dev/null +++ b/libddd.html/functions_func_a.html @@ -0,0 +1,91 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- a -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_b.html b/libddd.html/functions_func_b.html new file mode 100644 index 000000000..e6fadc68d --- /dev/null +++ b/libddd.html/functions_func_b.html @@ -0,0 +1,62 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- b -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_c.html b/libddd.html/functions_func_c.html new file mode 100644 index 000000000..92e51ec61 --- /dev/null +++ b/libddd.html/functions_func_c.html @@ -0,0 +1,185 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- c -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_d.html b/libddd.html/functions_func_d.html new file mode 100644 index 000000000..74d14c73c --- /dev/null +++ b/libddd.html/functions_func_d.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- d -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_e.html b/libddd.html/functions_func_e.html new file mode 100644 index 000000000..81b87c0d3 --- /dev/null +++ b/libddd.html/functions_func_e.html @@ -0,0 +1,161 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- e -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_f.html b/libddd.html/functions_func_f.html new file mode 100644 index 000000000..df9b2df6b --- /dev/null +++ b/libddd.html/functions_func_f.html @@ -0,0 +1,70 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- f -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_g.html b/libddd.html/functions_func_g.html new file mode 100644 index 000000000..0e791502a --- /dev/null +++ b/libddd.html/functions_func_g.html @@ -0,0 +1,141 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- g -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_h.html b/libddd.html/functions_func_h.html new file mode 100644 index 000000000..9643f4f7a --- /dev/null +++ b/libddd.html/functions_func_h.html @@ -0,0 +1,167 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- h -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_i.html b/libddd.html/functions_func_i.html new file mode 100644 index 000000000..094e5ebd2 --- /dev/null +++ b/libddd.html/functions_func_i.html @@ -0,0 +1,159 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- i -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_l.html b/libddd.html/functions_func_l.html new file mode 100644 index 000000000..b065f24ec --- /dev/null +++ b/libddd.html/functions_func_l.html @@ -0,0 +1,68 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- l -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_m.html b/libddd.html/functions_func_m.html new file mode 100644 index 000000000..834ce41c1 --- /dev/null +++ b/libddd.html/functions_func_m.html @@ -0,0 +1,140 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- m -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_n.html b/libddd.html/functions_func_n.html new file mode 100644 index 000000000..db2a0be1a --- /dev/null +++ b/libddd.html/functions_func_n.html @@ -0,0 +1,113 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- n -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_o.html b/libddd.html/functions_func_o.html new file mode 100644 index 000000000..6e05c03d2 --- /dev/null +++ b/libddd.html/functions_func_o.html @@ -0,0 +1,212 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- o -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_p.html b/libddd.html/functions_func_p.html new file mode 100644 index 000000000..dc5b34dfa --- /dev/null +++ b/libddd.html/functions_func_p.html @@ -0,0 +1,173 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- p -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_r.html b/libddd.html/functions_func_r.html new file mode 100644 index 000000000..c5670201d --- /dev/null +++ b/libddd.html/functions_func_r.html @@ -0,0 +1,84 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- r -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_s.html b/libddd.html/functions_func_s.html new file mode 100644 index 000000000..719f5bb8b --- /dev/null +++ b/libddd.html/functions_func_s.html @@ -0,0 +1,240 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- s -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_u.html b/libddd.html/functions_func_u.html new file mode 100644 index 000000000..c84c962f0 --- /dev/null +++ b/libddd.html/functions_func_u.html @@ -0,0 +1,63 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- u -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_v.html b/libddd.html/functions_func_v.html new file mode 100644 index 000000000..b024b5add --- /dev/null +++ b/libddd.html/functions_func_v.html @@ -0,0 +1,60 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_w.html b/libddd.html/functions_func_w.html new file mode 100644 index 000000000..174c4472d --- /dev/null +++ b/libddd.html/functions_func_w.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- w -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_func_~.html b/libddd.html/functions_func_~.html new file mode 100644 index 000000000..61fc8d0b6 --- /dev/null +++ b/libddd.html/functions_func_~.html @@ -0,0 +1,152 @@ + + + + + + + +DDD: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- ~ -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_g.html b/libddd.html/functions_g.html new file mode 100644 index 000000000..89e64f10d --- /dev/null +++ b/libddd.html/functions_g.html @@ -0,0 +1,156 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- g -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_h.html b/libddd.html/functions_h.html new file mode 100644 index 000000000..84956b595 --- /dev/null +++ b/libddd.html/functions_h.html @@ -0,0 +1,209 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- h -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_i.html b/libddd.html/functions_i.html new file mode 100644 index 000000000..6eae831b8 --- /dev/null +++ b/libddd.html/functions_i.html @@ -0,0 +1,189 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- i -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_l.html b/libddd.html/functions_l.html new file mode 100644 index 000000000..9f3b6b755 --- /dev/null +++ b/libddd.html/functions_l.html @@ -0,0 +1,100 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- l -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_m.html b/libddd.html/functions_m.html new file mode 100644 index 000000000..da89b5510 --- /dev/null +++ b/libddd.html/functions_m.html @@ -0,0 +1,180 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- m -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_n.html b/libddd.html/functions_n.html new file mode 100644 index 000000000..ce7e86726 --- /dev/null +++ b/libddd.html/functions_n.html @@ -0,0 +1,142 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- n -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_o.html b/libddd.html/functions_o.html new file mode 100644 index 000000000..246c42cf0 --- /dev/null +++ b/libddd.html/functions_o.html @@ -0,0 +1,251 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- o -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_p.html b/libddd.html/functions_p.html new file mode 100644 index 000000000..3eee3fa38 --- /dev/null +++ b/libddd.html/functions_p.html @@ -0,0 +1,247 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- p -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_r.html b/libddd.html/functions_r.html new file mode 100644 index 000000000..09f7449f1 --- /dev/null +++ b/libddd.html/functions_r.html @@ -0,0 +1,127 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- r -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_rela.html b/libddd.html/functions_rela.html new file mode 100644 index 000000000..c41ec3943 --- /dev/null +++ b/libddd.html/functions_rela.html @@ -0,0 +1,200 @@ + + + + + + + +DDD: Class Members - Related Functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- _ -

+ + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- l -

+ + +

- m -

+ + +

- o -

+ + +

- s -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_s.html b/libddd.html/functions_s.html new file mode 100644 index 000000000..9243b449f --- /dev/null +++ b/libddd.html/functions_s.html @@ -0,0 +1,302 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- s -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_t.html b/libddd.html/functions_t.html new file mode 100644 index 000000000..899f59b77 --- /dev/null +++ b/libddd.html/functions_t.html @@ -0,0 +1,91 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- t -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_type.html b/libddd.html/functions_type.html new file mode 100644 index 000000000..bb9afa751 --- /dev/null +++ b/libddd.html/functions_type.html @@ -0,0 +1,253 @@ + + + + + + + +DDD: Class Members - Typedefs + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- c -

+ + +

- e -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_u.html b/libddd.html/functions_u.html new file mode 100644 index 000000000..7eccd83f0 --- /dev/null +++ b/libddd.html/functions_u.html @@ -0,0 +1,67 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- u -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_v.html b/libddd.html/functions_v.html new file mode 100644 index 000000000..357d99ceb --- /dev/null +++ b/libddd.html/functions_v.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars.html b/libddd.html/functions_vars.html new file mode 100644 index 000000000..dda1efc24 --- /dev/null +++ b/libddd.html/functions_vars.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- _ -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_a.html b/libddd.html/functions_vars_a.html new file mode 100644 index 000000000..ffaf165d8 --- /dev/null +++ b/libddd.html/functions_vars_a.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- a -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_c.html b/libddd.html/functions_vars_c.html new file mode 100644 index 000000000..c3e517a42 --- /dev/null +++ b/libddd.html/functions_vars_c.html @@ -0,0 +1,93 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- c -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_d.html b/libddd.html/functions_vars_d.html new file mode 100644 index 000000000..d0ae8863e --- /dev/null +++ b/libddd.html/functions_vars_d.html @@ -0,0 +1,81 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- d -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_e.html b/libddd.html/functions_vars_e.html new file mode 100644 index 000000000..51aedf5ac --- /dev/null +++ b/libddd.html/functions_vars_e.html @@ -0,0 +1,68 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- e -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_f.html b/libddd.html/functions_vars_f.html new file mode 100644 index 000000000..682ccbb5b --- /dev/null +++ b/libddd.html/functions_vars_f.html @@ -0,0 +1,66 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- f -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_g.html b/libddd.html/functions_vars_g.html new file mode 100644 index 000000000..1c46778e3 --- /dev/null +++ b/libddd.html/functions_vars_g.html @@ -0,0 +1,56 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- g -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_h.html b/libddd.html/functions_vars_h.html new file mode 100644 index 000000000..048162874 --- /dev/null +++ b/libddd.html/functions_vars_h.html @@ -0,0 +1,83 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- h -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_i.html b/libddd.html/functions_vars_i.html new file mode 100644 index 000000000..0b15ec679 --- /dev/null +++ b/libddd.html/functions_vars_i.html @@ -0,0 +1,71 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- i -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_l.html b/libddd.html/functions_vars_l.html new file mode 100644 index 000000000..bf182833f --- /dev/null +++ b/libddd.html/functions_vars_l.html @@ -0,0 +1,79 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- l -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_m.html b/libddd.html/functions_vars_m.html new file mode 100644 index 000000000..cd12e30c7 --- /dev/null +++ b/libddd.html/functions_vars_m.html @@ -0,0 +1,76 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- m -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_n.html b/libddd.html/functions_vars_n.html new file mode 100644 index 000000000..5b925150c --- /dev/null +++ b/libddd.html/functions_vars_n.html @@ -0,0 +1,82 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- n -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_o.html b/libddd.html/functions_vars_o.html new file mode 100644 index 000000000..dceb79601 --- /dev/null +++ b/libddd.html/functions_vars_o.html @@ -0,0 +1,60 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- o -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_p.html b/libddd.html/functions_vars_p.html new file mode 100644 index 000000000..f3cedad24 --- /dev/null +++ b/libddd.html/functions_vars_p.html @@ -0,0 +1,98 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- p -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_r.html b/libddd.html/functions_vars_r.html new file mode 100644 index 000000000..cd5680abe --- /dev/null +++ b/libddd.html/functions_vars_r.html @@ -0,0 +1,84 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- r -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_s.html b/libddd.html/functions_vars_s.html new file mode 100644 index 000000000..15340c052 --- /dev/null +++ b/libddd.html/functions_vars_s.html @@ -0,0 +1,90 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- s -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_t.html b/libddd.html/functions_vars_t.html new file mode 100644 index 000000000..a1c064101 --- /dev/null +++ b/libddd.html/functions_vars_t.html @@ -0,0 +1,71 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- t -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_u.html b/libddd.html/functions_vars_u.html new file mode 100644 index 000000000..d293cbcb6 --- /dev/null +++ b/libddd.html/functions_vars_u.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- u -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_vars_v.html b/libddd.html/functions_vars_v.html new file mode 100644 index 000000000..86308d31d --- /dev/null +++ b/libddd.html/functions_vars_v.html @@ -0,0 +1,86 @@ + + + + + + + +DDD: Class Members - Variables + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_w.html b/libddd.html/functions_w.html new file mode 100644 index 000000000..e05adb2f9 --- /dev/null +++ b/libddd.html/functions_w.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- w -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/functions_~.html b/libddd.html/functions_~.html new file mode 100644 index 000000000..7c43f1e06 --- /dev/null +++ b/libddd.html/functions_~.html @@ -0,0 +1,152 @@ + + + + + + + +DDD: Class Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all class members with links to the classes they belong to:
+ +

- ~ -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals.html b/libddd.html/globals.html new file mode 100644 index 000000000..74cd10877 --- /dev/null +++ b/libddd.html/globals.html @@ -0,0 +1,491 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
Here is a list of all file members with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_defs.html b/libddd.html/globals_defs.html new file mode 100644 index 000000000..91ddfc68f --- /dev/null +++ b/libddd.html/globals_defs.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_enum.html b/libddd.html/globals_enum.html new file mode 100644 index 000000000..16ba83e10 --- /dev/null +++ b/libddd.html/globals_enum.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_eval.html b/libddd.html/globals_eval.html new file mode 100644 index 000000000..f5e5d1174 --- /dev/null +++ b/libddd.html/globals_eval.html @@ -0,0 +1,75 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_func.html b/libddd.html/globals_func.html new file mode 100644 index 000000000..47b5c6763 --- /dev/null +++ b/libddd.html/globals_func.html @@ -0,0 +1,348 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_type.html b/libddd.html/globals_type.html new file mode 100644 index 000000000..334d2e805 --- /dev/null +++ b/libddd.html/globals_type.html @@ -0,0 +1,99 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/globals_vars.html b/libddd.html/globals_vars.html new file mode 100644 index 000000000..25993a776 --- /dev/null +++ b/libddd.html/globals_vars.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: File Members + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/graph_legend.html b/libddd.html/graph_legend.html new file mode 100644 index 000000000..8e35934b2 --- /dev/null +++ b/libddd.html/graph_legend.html @@ -0,0 +1,113 @@ + + + + + + + +DDD: Graph Legend + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+ +

The arrows have the following meaning:

+ +
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/graph_legend.md5 b/libddd.html/graph_legend.md5 new file mode 100644 index 000000000..fc106d234 --- /dev/null +++ b/libddd.html/graph_legend.md5 @@ -0,0 +1 @@ +8bb57cf80f55daa218327b528db057e5 \ No newline at end of file diff --git a/libddd.html/graph_legend.png b/libddd.html/graph_legend.png new file mode 100644 index 000000000..7e2cbcfb2 Binary files /dev/null and b/libddd.html/graph_legend.png differ diff --git a/libddd.html/group__hash__funcs.html b/libddd.html/group__hash__funcs.html new file mode 100644 index 000000000..66de99263 --- /dev/null +++ b/libddd.html/group__hash__funcs.html @@ -0,0 +1,163 @@ + + + + + + + +DDD: Hashing functions + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+ +
+
Hashing functions
+
+
+ + + + + + + + + + + +

+Functions

size_t ddd::wang32_hash (size_t key)
 Thomas Wang's 32 bit hash function. More...
 
uint32_t ddd::int32_hash (uint32_t a)
 Another of Wang's fast hash with a magic number. More...
 
size_t ddd::knuth32_hash (size_t key)
 Knuth's Multiplicative hash function. More...
 
+

Detailed Description

+

Function Documentation

+ +

◆ int32_hash()

+ +
+
+ + + + + +
+ + + + + + + + +
uint32_t ddd::int32_hash (uint32_t a)
+
+inline
+
+ +

Another of Wang's fast hash with a magic number.

+

good for (sequence of) integers

+ +

Referenced by _GDDD::hash(), GDDD::hash(), _setVarConst::hash(), and _incVar::hash().

+ +
+
+ +

◆ knuth32_hash()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t ddd::knuth32_hash (size_t key)
+
+inline
+
+ +

Knuth's Multiplicative hash function.

+

This function is suitable for hashing values whose high order bits do not vary much (ex. addresses of memory objects). Prefer spot::wang32_hash() otherwise. http://www.concentric.net/~Ttwang/tech/addrhash.htm

+ +

Referenced by GHom::hash(), MLHom::hash(), MLShom::hash(), GSDD::hash(), and GShom::hash().

+ +
+
+ +

◆ wang32_hash()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t ddd::wang32_hash (size_t key)
+
+inline
+
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hash__set_8hh.html b/libddd.html/hash__set_8hh.html new file mode 100644 index 000000000..eb7adc66b --- /dev/null +++ b/libddd.html/hash__set_8hh.html @@ -0,0 +1,127 @@ + + + + + + + +DDD: util/hash_set.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+ +
+
hash_set.hh File Reference
+
+
+
#include <ddd/google/sparse_hash_set>
+#include "ddd/util/configuration.hh"
+
+Include dependency graph for hash_set.hh:
+
+
+ + + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  d3::hash_set< Key, Hash, Compare, Allocator >
 
+ + + +

+Namespaces

 d3
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hash__set_8hh__dep__incl.map b/libddd.html/hash__set_8hh__dep__incl.map new file mode 100644 index 000000000..8618b02cd --- /dev/null +++ b/libddd.html/hash__set_8hh__dep__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/hash__set_8hh__dep__incl.md5 b/libddd.html/hash__set_8hh__dep__incl.md5 new file mode 100644 index 000000000..8e3a0eb4d --- /dev/null +++ b/libddd.html/hash__set_8hh__dep__incl.md5 @@ -0,0 +1 @@ +6bc61fe0fd8c3ff26867b677e2d80652 \ No newline at end of file diff --git a/libddd.html/hash__set_8hh__dep__incl.png b/libddd.html/hash__set_8hh__dep__incl.png new file mode 100644 index 000000000..a4a6e5a8e Binary files /dev/null and b/libddd.html/hash__set_8hh__dep__incl.png differ diff --git a/libddd.html/hash__set_8hh__incl.map b/libddd.html/hash__set_8hh__incl.map new file mode 100644 index 000000000..1eb811ecb --- /dev/null +++ b/libddd.html/hash__set_8hh__incl.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/libddd.html/hash__set_8hh__incl.md5 b/libddd.html/hash__set_8hh__incl.md5 new file mode 100644 index 000000000..eb045f4ef --- /dev/null +++ b/libddd.html/hash__set_8hh__incl.md5 @@ -0,0 +1 @@ +06cd3c616d3a9c2c0ef07cf9262e990a \ No newline at end of file diff --git a/libddd.html/hash__set_8hh__incl.png b/libddd.html/hash__set_8hh__incl.png new file mode 100644 index 000000000..39e80dd4b Binary files /dev/null and b/libddd.html/hash__set_8hh__incl.png differ diff --git a/libddd.html/hash__set_8hh_source.html b/libddd.html/hash__set_8hh_source.html new file mode 100644 index 000000000..2932613e0 --- /dev/null +++ b/libddd.html/hash__set_8hh_source.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: util/hash_set.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
hash_set.hh
+
+
+Go to the documentation of this file.
1 #ifndef _HASH_SET_HH_
+
2 #define _HASH_SET_HH_
+
3 
+
4 #ifndef USE_STD_HASH
+
5 #include <ddd/google/sparse_hash_set>
+
6 #else
+
7 #include <unordered_set>
+
8 #endif
+
9 
+ +
11 
+
12 namespace d3 {
+
13 
+
14 template
+
15  <
+
16  typename Key
+
17  , typename Hash = d3::util::hash<Key>
+
18  , typename Compare = d3::util::equal<Key>
+
19  , typename Allocator = typename conf::allocator<Key>::type
+
20  >
+
21 struct hash_set
+
22 {
+
23 #ifndef USE_STD_HASH
+
24  typedef typename google::sparse_hash_set<Key,Hash,Compare,Allocator> type;
+
25 #else
+
26  typedef typename std::unordered_set<Key,Hash,Compare,Allocator> type;
+
27 #endif
+
28 };
+
29 
+
30 } // namespace d3
+
31 
+
32 #endif /* _SET_HH_ */
+ +
Definition: Hom.cpp:41
+
std::allocator< T > type
Definition: configuration.hh:39
+
Definition: hash_set.hh:22
+
google::sparse_hash_set< Key, Hash, Compare, Allocator > type
Definition: hash_set.hh:24
+
Definition: hash_support.hh:51
+
Definition: hash_support.hh:40
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hash__support_8hh.html b/libddd.html/hash__support_8hh.html new file mode 100644 index 000000000..ae7a9a21a --- /dev/null +++ b/libddd.html/hash__support_8hh.html @@ -0,0 +1,177 @@ + + + + + + + +DDD: util/hash_support.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+ +
+
hash_support.hh File Reference
+
+
+
#include <utility>
+#include <set>
+#include <vector>
+#include <typeinfo>
+#include <string>
+#include "ddd/hashfunc.hh"
+#include <unordered_map>
+
+Include dependency graph for hash_support.hh:
+
+
+ + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  d3::util::hash< T >
 
struct  d3::util::equal< T >
 
struct  d3::util::hash< T * >
 
struct  d3::util::equal< T * >
 
struct  d3::util::hash< int >
 
struct  d3::util::hash< std::pair< T1, T2 > >
 
struct  d3::util::hash< std::set< T1 > >
 
struct  d3::util::hash< const std::vector< int > >
 
struct  d3::util::hash< std::vector< int > >
 
struct  d3::util::hash< const std::vector< short > >
 
struct  d3::util::hash< std::vector< short > >
 
struct  d3::util::hash< std::vector< int > * >
 
struct  d3::util::hash< const std::vector< int > * >
 
struct  d3::util::equal< std::pair< T1, T2 > >
 
struct  d3::util::hash< std::string >
 
struct  d3::util::equal< std::string >
 
struct  unique::clone< T >
 
struct  unique::clone< std::vector< int > >
 
+ + + + + + + +

+Namespaces

 d3
 
 d3::util
 
 unique
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hash__support_8hh__dep__incl.map b/libddd.html/hash__support_8hh__dep__incl.map new file mode 100644 index 000000000..4a8fdf8b3 --- /dev/null +++ b/libddd.html/hash__support_8hh__dep__incl.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/hash__support_8hh__dep__incl.md5 b/libddd.html/hash__support_8hh__dep__incl.md5 new file mode 100644 index 000000000..c4d9c2f66 --- /dev/null +++ b/libddd.html/hash__support_8hh__dep__incl.md5 @@ -0,0 +1 @@ +b8b1b2a19957415abb5365c3b7c005a7 \ No newline at end of file diff --git a/libddd.html/hash__support_8hh__dep__incl.png b/libddd.html/hash__support_8hh__dep__incl.png new file mode 100644 index 000000000..f6cee3dbb Binary files /dev/null and b/libddd.html/hash__support_8hh__dep__incl.png differ diff --git a/libddd.html/hash__support_8hh__incl.map b/libddd.html/hash__support_8hh__incl.map new file mode 100644 index 000000000..3ae66eb3e --- /dev/null +++ b/libddd.html/hash__support_8hh__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/libddd.html/hash__support_8hh__incl.md5 b/libddd.html/hash__support_8hh__incl.md5 new file mode 100644 index 000000000..727a4d123 --- /dev/null +++ b/libddd.html/hash__support_8hh__incl.md5 @@ -0,0 +1 @@ +396563c12b46fa96392e9c602e6ade1c \ No newline at end of file diff --git a/libddd.html/hash__support_8hh__incl.png b/libddd.html/hash__support_8hh__incl.png new file mode 100644 index 000000000..b3eb7c8d2 Binary files /dev/null and b/libddd.html/hash__support_8hh__incl.png differ diff --git a/libddd.html/hash__support_8hh_source.html b/libddd.html/hash__support_8hh_source.html new file mode 100644 index 000000000..d8c87d538 --- /dev/null +++ b/libddd.html/hash__support_8hh_source.html @@ -0,0 +1,359 @@ + + + + + + + +DDD: util/hash_support.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
hash_support.hh
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Alexandre Hamez, Yann Thierry-Mieg */
+
6 /* */
+
7 /* This program is free software; you can redistribute it and/or modify */
+
8 /* it under the terms of the GNU Lesser General Public License as */
+
9 /* published by the Free Software Foundation; either version 3 of the */
+
10 /* License, or (at your option) any later version. */
+
11 /* This program is distributed in the hope that it will be useful, */
+
12 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
13 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
14 /* GNU LEsserGeneral Public License for more details. */
+
15 /* */
+
16 /* You should have received a copy of the GNU Lesser General Public License */
+
17 /* along with this program; if not, write to the Free Software */
+
18 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
19 /* */
+
20 /****************************************************************************/
+
21 #ifndef _HASH_SUPPORT_HH_
+
22 #define _HASH_SUPPORT_HH_
+
23 
+
24 #include <utility>
+
25 #include <set>
+
26 #include <vector>
+
27 #include <typeinfo>
+
28 #include <string>
+
29 
+
30 #include "ddd/hashfunc.hh"
+
31 
+
32 #include <unordered_map>
+
33 
+
34 
+
35 namespace d3 { namespace util {
+
36 
+
37 // Basic definition of a d3 hash function : define a member function : size_t hash() const , in hashable classes
+
38 template<typename T>
+
39 struct hash
+
40 {
+
41  size_t
+
42  operator()(const T &e) const
+
43  {
+
44  return e.hash();
+
45  }
+
46 };
+
47 
+
48 // Basic definition of a d3 equality test : define a member function : bool operator== (const T & )const , in comparable classes
+
49 template<typename T>
+
50 struct equal
+
51 {
+
52  bool
+
53  operator()(const T &e1,const T &e2) const
+
54  {
+
55  return e1==e2;
+
56  }
+
57 };
+
58 
+
59 // Specialized version for storage of pointers to hashable objects.
+
60 template <typename T>
+
61 struct hash<T*>
+
62 {
+
63  size_t
+
64  operator()(const T* e) const
+
65  {
+
66  if (e == NULL) return 0;
+
67  return e->hash();
+
68  }
+
69 };
+
70 
+
71 // Specialized version for storage of pointers to comparable objects. Perform deep comparison.
+
72 template<typename T>
+
73 struct equal<T*>
+
74 {
+
75  bool
+
76  operator()(const T* e1,const T* e2) const
+
77  {
+
78  if (e1 == NULL) return e2==NULL;
+
79  if (e2 == NULL) return false;
+
80  return (typeid(*e1)==typeid(*e2)?(*e1)==(*e2):false);
+
81  }
+
82 };
+
83 
+
84 // Specialized version for use of int as keys in hash_map
+
85 template<>
+
86 struct hash<int> {
+
87  size_t operator()(int i) const {
+
88  return ddd::wang32_hash(i);
+
89  };
+
90  };
+
91 
+
92 // Specialized version for std::pair of hashable objects.
+
93 template <typename T1,typename T2>
+
94 struct hash<std::pair<T1,T2> > {
+
95  size_t operator() (const std::pair<T1,T2> &p)const {
+
96  return hash<T1>()(p.first) ^ hash<T2>()(p.second);
+
97  };
+
98 };
+
99 
+
100 
+
101 // Specialized version for std::set of hashable objects.
+
102 template <typename T1>
+
103 struct hash<std::set<T1> > {
+
104  size_t operator() (const std::set<T1> &p)const {
+
105  size_t res = 11317;
+
106  typename std::set<T1>::const_iterator it;
+
107  for ( it = p.begin() ; it != p.end() ; ++it )
+
108  res ^= it->hash();
+
109  return res;
+
110  };
+
111 };
+
112 // Specialized version for std::vector<int>.
+
113 template <>
+
114 struct hash<const std::vector<int> > {
+
115  size_t operator() (const std::vector<int> &p)const {
+
116  size_t res = 2473;
+
117  std::vector<int>::const_iterator it;
+
118  for ( it = p.begin() ; it != p.end() ; ++it )
+
119  res ^= (ddd::wang32_hash(*it)* res);
+
120  return res;
+
121  };
+
122 };
+
123 // could this be removed somehow ??
+
124 template <>
+
125 struct hash<std::vector<int> > {
+
126  size_t operator() (const std::vector<int> &p)const {
+
127  return hash<const std::vector<int> > () (p);
+
128  };
+
129 };
+
130 
+
131 // Specialized version for std::vector<int>.
+
132 template <>
+
133 struct hash<const std::vector<short> > {
+
134  size_t operator() (const std::vector<short> &p)const {
+
135  size_t res = 2473;
+
136  std::vector<short>::const_iterator it;
+
137  for ( it = p.begin() ; it != p.end() ; ++it )
+
138  res ^= (ddd::wang32_hash(*it)* res);
+
139  return res;
+
140  };
+
141 };
+
142 // could this be removed somehow ??
+
143 template <>
+
144 struct hash<std::vector<short> > {
+
145  size_t operator() (const std::vector<short> &p)const {
+
146  return hash<const std::vector<short> > () (p);
+
147  };
+
148 };
+
149 
+
150 
+
151 template <>
+
152 struct hash<std::vector<int>* > {
+
153  size_t operator() (const std::vector<int> *p)const {
+
154  return hash<const std::vector<int> > () (*p);
+
155  };
+
156 };
+
157 template <>
+
158 struct hash<const std::vector<int>* > {
+
159  size_t operator() (const std::vector<int> *p)const {
+
160  return hash<const std::vector<int> > () (*p);
+
161  };
+
162 };
+
163 
+
164 // Specialized version for std::pair of comparable objects.
+
165 template<typename T1,typename T2>
+
166 struct equal<std::pair<T1,T2> >
+
167 {
+
168  bool
+
169  operator()(const std::pair<T1,T2> & e1,const std::pair<T1,T2>& e2) const
+
170  {
+
171  return equal<T1>()(e1.first,e2.first) && equal<T2>()(e1.second,e2.second);
+
172  }
+
173 };
+
174 
+
175 
+
176 // For use of strings as d3::util hash table keys
+
177  template<>
+
178  struct hash<std::string> {
+
179  size_t operator()(const std::string & string) const{
+
180  return std::hash<std::string>() (string);
+
181  }
+
182  };
+
183 
+
184  template<>
+
185  struct equal<std::string> {
+
186  bool operator()(const std::string & g1, const std::string & g2) const{
+
187  return g1==g2;
+
188  }
+
189  };
+
190 
+
191 #ifdef HASH_STAT
+
192  template<class T>
+
193  struct hash_stat_get_type
+
194  {
+
195  std::string
+
196  operator() (const T & t) const
+
197  {
+
198  return typeid (t).name ();
+
199  }
+
200  };
+
201 
+
202  template<class T>
+
203  struct hash_stat_get_type<T*>
+
204  {
+
205  std::string
+
206  operator() (const T * t) const
+
207  {
+
208  return typeid (*t).name ();
+
209  }
+
210  };
+
211 
+
212  template<class T1, class T2>
+
213  struct hash_stat_get_type<std::pair<T1,T2> >
+
214  {
+
215  std::string
+
216  operator() (const std::pair<T1, T2> & p) const
+
217  {
+
218  return std::string ("pair ").append (hash_stat_get_type<T1> () (p.first)).append (",").append (hash_stat_get_type<T2> () (p.second));
+
219  }
+
220  };
+
221 #endif // HASH_STAT
+
222 
+
223 }}
+
224 
+
225 // the clone contract
+
226 namespace unique {
+
227 
+
228 template<typename T>
+
229 struct clone
+
230 {
+
231  T*
+
232  operator()(const T& e1) const
+
233  {
+
234  return e1.clone();
+
235  }
+
236 };
+
237 
+
238 
+
239 template<>
+
240 struct clone<std::vector<int> >
+
241 {
+
242  std::vector<int>*
+
243  operator()(const std::vector<int>& e1) const
+
244  {
+
245  return new std::vector<int>(e1);
+
246  }
+
247 };
+
248 
+
249 }
+
250 
+
251 
+
252 
+
253 #ifdef HASH_STAT
+
254 #include <map>
+
255 #include <iostream>
+
256 // a function that prints statistics about caches
+
257 static
+
258 void
+
259 print_hash_stats(std::map<std::string, size_t> hits,
+
260  std::map<std::string, size_t> misses,
+
261  std::map<std::string, size_t> bounces)
+
262 {
+
263  size_t h,m,b;
+
264  h = m = b =0;
+
265  for (std::map<std::string, size_t>::const_iterator it = misses.begin() ; it != misses.end() ; ++it) {
+
266  std::cout << it->first << " : ";
+
267  std::cout << hits[it->first] << " hits, ";
+
268  std::cout << misses[it->first] << " misses, ";
+
269  std::cout << bounces[it->first] << " bounces, ";
+
270  std::cout << "hit ratio " << (hits[it->first]*100 / (hits[it->first] + misses[it->first] + 1)) << " %, ";
+
271  std::cout << (bounces[it->first]*100 / (hits[it->first] + misses[it->first] + 1)) << " b. per h.(%)";
+
272  std::cout << std::endl;
+
273  h += hits[it->first];
+
274  m += misses[it->first];
+
275  b += bounces[it->first];
+
276  }
+
277  std::cout << "Hits : " << h << " , Misses : " << m << " , Bounces : " << b << std::endl;
+
278  std::cout << std::endl;
+
279 }
+
280 #endif // HASH_STAT
+
281 
+
282 #endif
+
size_t wang32_hash(size_t key)
Thomas Wang's 32 bit hash function.
Definition: hashfunc.hh:42
+ +
Definition: Hom.cpp:41
+
Definition: DDD.h:340
+
Definition: hash_support.hh:226
+
Definition: set.hh:17
+
bool operator()(const T *e1, const T *e2) const
Definition: hash_support.hh:76
+
bool operator()(const std::pair< T1, T2 > &e1, const std::pair< T1, T2 > &e2) const
Definition: hash_support.hh:169
+
bool operator()(const std::string &g1, const std::string &g2) const
Definition: hash_support.hh:186
+
Definition: hash_support.hh:51
+
bool operator()(const T &e1, const T &e2) const
Definition: hash_support.hh:53
+
size_t operator()(const T *e) const
Definition: hash_support.hh:64
+
size_t operator()(int i) const
Definition: hash_support.hh:87
+
size_t operator()(const std::string &string) const
Definition: hash_support.hh:179
+
Definition: hash_support.hh:40
+
size_t operator()(const T &e) const
Definition: hash_support.hh:42
+
Definition: vector.hh:17
+
std::vector< int > * operator()(const std::vector< int > &e1) const
Definition: hash_support.hh:243
+
Definition: hash_support.hh:230
+
T * operator()(const T &e1) const
Definition: hash_support.hh:232
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hashfunc_8hh.html b/libddd.html/hashfunc_8hh.html new file mode 100644 index 000000000..70d5e66d8 --- /dev/null +++ b/libddd.html/hashfunc_8hh.html @@ -0,0 +1,131 @@ + + + + + + + +DDD: hashfunc.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+ +
+
hashfunc.hh File Reference
+
+
+
#include <stdint.h>
+
+Include dependency graph for hashfunc.hh:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

 ddd
 
+ + + + + + + + + + +

+Functions

size_t ddd::wang32_hash (size_t key)
 Thomas Wang's 32 bit hash function. More...
 
uint32_t ddd::int32_hash (uint32_t a)
 Another of Wang's fast hash with a magic number. More...
 
size_t ddd::knuth32_hash (size_t key)
 Knuth's Multiplicative hash function. More...
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hashfunc_8hh__dep__incl.map b/libddd.html/hashfunc_8hh__dep__incl.map new file mode 100644 index 000000000..c867d6ec4 --- /dev/null +++ b/libddd.html/hashfunc_8hh__dep__incl.map @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/hashfunc_8hh__dep__incl.md5 b/libddd.html/hashfunc_8hh__dep__incl.md5 new file mode 100644 index 000000000..c0bca49a5 --- /dev/null +++ b/libddd.html/hashfunc_8hh__dep__incl.md5 @@ -0,0 +1 @@ +fa9c63cb81e7b2cfb1636783a4a8b59a \ No newline at end of file diff --git a/libddd.html/hashfunc_8hh__dep__incl.png b/libddd.html/hashfunc_8hh__dep__incl.png new file mode 100644 index 000000000..3aa8f52b3 Binary files /dev/null and b/libddd.html/hashfunc_8hh__dep__incl.png differ diff --git a/libddd.html/hashfunc_8hh__incl.map b/libddd.html/hashfunc_8hh__incl.map new file mode 100644 index 000000000..f4d7e3a4e --- /dev/null +++ b/libddd.html/hashfunc_8hh__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/hashfunc_8hh__incl.md5 b/libddd.html/hashfunc_8hh__incl.md5 new file mode 100644 index 000000000..b1ae8c890 --- /dev/null +++ b/libddd.html/hashfunc_8hh__incl.md5 @@ -0,0 +1 @@ +3c0af5fb5a05e48769dd6c660a39ec84 \ No newline at end of file diff --git a/libddd.html/hashfunc_8hh__incl.png b/libddd.html/hashfunc_8hh__incl.png new file mode 100644 index 000000000..553d91471 Binary files /dev/null and b/libddd.html/hashfunc_8hh__incl.png differ diff --git a/libddd.html/hashfunc_8hh_source.html b/libddd.html/hashfunc_8hh_source.html new file mode 100644 index 000000000..3c6791c24 --- /dev/null +++ b/libddd.html/hashfunc_8hh_source.html @@ -0,0 +1,123 @@ + + + + + + + +DDD: hashfunc.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
hashfunc.hh
+
+
+Go to the documentation of this file.
1 /****************************************************************************/
+
2 /* */
+
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
+
4 /* */
+
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
+
6 /* and Denis Poitrenaud */
+
7 /* Based on a file written by Alexandre Duret-Lutz for Spot, */
+
8 /* Alexandre.Duret-Lutz@lip6.fr */
+
9 /* */
+
10 /* This program is free software; you can redistribute it and/or modify */
+
11 /* it under the terms of the GNU Lesser General Public License as */
+
12 /* published by the Free Software Foundation; either version 3 of the */
+
13 /* License, or (at your option) any later version. */
+
14 /* This program is distributed in the hope that it will be useful, */
+
15 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
+
16 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
+
17 /* GNU LEsserGeneral Public License for more details. */
+
18 /* */
+
19 /* You should have received a copy of the GNU Lesser General Public License */
+
20 /* along with this program; if not, write to the Free Software */
+
21 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
22 /* */
+
23 /****************************************************************************/
+
24 #ifndef __DDD_MISC_HASHFUNC_HH
+
25 #define __DDD_MISC_HASHFUNC_HH
+
26 
+
27 /******************************************************************************/
+
28 
+
29 #include <stdint.h>
+
30 
+
31 namespace ddd
+
32 {
+
36 
+
41  inline size_t
+
42  wang32_hash(size_t key)
+
43  {
+
44  // We assume that size_t has at least 32bits.
+
45  key += ~(key << 15);
+
46  key ^= (key >> 10);
+
47  key += (key << 3);
+
48  key ^= (key >> 6);
+
49  key += ~(key << 11);
+
50  key ^= (key >> 16);
+
51  return key;
+
52  }
+
53 
+
56  inline uint32_t int32_hash(uint32_t a) {
+
57  a = (a ^ 61) ^ (a >> 16);
+
58  a = a + (a << 3);
+
59  a = a ^ (a >> 4);
+
60  a = a * 0x27d4eb2d;
+
61  a = a ^ (a >> 15);
+
62  return a;
+
63  }
+
64 
+
65 
+
72  inline size_t
+
73  knuth32_hash(size_t key)
+
74  {
+
75  // 2654435761 is the golden ratio of 2^32. The right shift of 3
+
76  // bits assumes that all objects are aligned on a 8 byte boundary.
+
77  return (key >> 3) * 2654435761U;
+
78  }
+
80 }
+
81 
+
82 #endif // DDD_MISC_HASHFUNC_HH
+
size_t wang32_hash(size_t key)
Thomas Wang's 32 bit hash function.
Definition: hashfunc.hh:42
+
uint32_t int32_hash(uint32_t a)
Another of Wang's fast hash with a magic number.
Definition: hashfunc.hh:56
+
size_t knuth32_hash(size_t key)
Knuth's Multiplicative hash function.
Definition: hashfunc.hh:73
+
Definition: hashfunc.hh:32
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/hierarchy.html b/libddd.html/hierarchy.html new file mode 100644 index 000000000..ed7475245 --- /dev/null +++ b/libddd.html/hierarchy.html @@ -0,0 +1,209 @@ + + + + + + + +DDD: Class Hierarchy + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 C_DED
 C_GDDD
 C_GHomThe concrete data class for Homomorphisms
 C_GSDD
 C_GShomThe concrete data class for Homomorphisms
 C_MLHom
 C_MLShom
 C_SDED
 Cext_hash_map< Key, Data, HashKey, EqualKey >::accessor
 CAdditiveMap< K, V, EqualKey >
 Cconf::allocator< T >
 CCache< FuncType, ParamType, ResType, EvalFunc >
 Cunique::clone< T >
 Cunique::clone< std::vector< int > >
 Cext_hash_map< Key, Data, HashKey, EqualKey >::const_accessor
 C_GDDD::custom_new_tEmpty struct tag type used to disambiguate between different variants of the operator new for _GDDD
 CDataSetThis class is an abstraction of a set of data
 CdotExporter
 CdotHighlightMore evolved API for highlighting parts of a graph
 Cd3::util::equal< T >
 Cd3::util::equal< _GHom * >
 Cd3::util::equal< _GShom * >
 Cd3::util::equal< _MLHom * >
 Cd3::util::equal< _MLShom * >
 Cd3::util::equal< std::pair< T1, T2 > >
 Cd3::util::equal< std::string >
 Cd3::util::equal< T * >
 Cext_hash_map< Key, Data, HashKey, EqualKey >
 Cext_hash_map< std::pair< FuncType, ParamType >, ResType >
 Cext_hash_map< std::pair< MLHomType, NodeType >, HomNodeMapType >
 Cfobs::FixObserver
 CGCHook
 CGDDDThis class is the base class representing a Data Decision Diagram
 CGHomThis class is the base class representing a homomorphism over DDD
 CGShomThis class is the base class for Homomorphisms over SDD
 Cd3::util::hash< T >
 Cd3::util::hash< const std::vector< int > * >
 Cd3::util::hash< const std::vector< int > >
 Cd3::util::hash< const std::vector< short > >
 Cd3::util::hash< int >
 Cd3::util::hash< std::pair< T1, T2 > >
 Cd3::util::hash< std::set< T1 > >
 Cd3::util::hash< std::string >
 Cd3::util::hash< std::vector< int > * >
 Cd3::util::hash< std::vector< int > >
 Cd3::util::hash< std::vector< short > >
 Cd3::util::hash< T * >
 Chash_map< Key, Data, HashKey, EqualKey >
 Chash_map< int, partition >
 Cd3::hash_set< Key, Hash, Compare, Allocator >
 Cd3::hash_set< const T * >
 Cd3::hash_set< id_t, id_hash, id_compare >
 CUniqueTableId< T, ID >::id_compare
 CUniqueTableId< T, ID >::id_hash
 Cd3::init
 Cstd::less< GDDD >Compares two DDD in hash tables
 Cstd::less< GHom >Compares two GHom in hash tables
 Cstd::less< GSDD >Compares two SDD in hash tables
 Cstd::less< GShom >Compares two GShom in hash tables
 Cd3::util::map< Key, Data, Compare, Allocator >
 CMemoryManagerThis class defines a few utility functions common to DDD
 CMLCache< MLHomType, NodeType, HomNodeMapType >
 CMLHom
 CMLShom
 Cd3::multiset< Key, Compare, Allocator >
 CMyNbStates
 CMySDDNbStates
 CMySize
 Csns::Add::partition
 CSddSize
 Cd3::set< Key, Compare, Allocator >
 Cd3::set< GDDD >
 Cd3::set< GSDD >
 CStatistic
 CUniqueTable< T >This class implements a unicity table mechanism, based on an STL hash_set
 CUniqueTableId< T, ID >Requirements on the contained type are to be cloneable, hashable and equality comparable
 Cd3::util::vector< T, Allocator >
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/index.html b/libddd.html/index.html new file mode 100644 index 000000000..62d91af56 --- /dev/null +++ b/libddd.html/index.html @@ -0,0 +1,70 @@ + + + + + + + +DDD: Main Page + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
DDD Documentation
+
+
+

+The Data Decision Diagram Library

+

libDDD is a data decision diagram library. It provides algorithms and data structures to implement symbolic manipulation of data, in particular in the context of model-checking. It offers support for Hierarchical Set Decision Diagrams, and the simpler Data Decision Diagrams. Operations on theses structures are both efficiently and elegantly encoded as Homomorphisms.

+

See ddd.lip6.fr for more information about this project.

+

+Introduction

+

This document describes all the public data structures and functions of libDDD. This aims to be a reference manual, not a tutorial.

+

Although some effort has been invested in creating these doxy pages, the actual source files often contain more comments which are not doxy-compliant.

+

+Handy starting points

+

Most user functionality is found in the files:

+

For SDD: SDD.h (Basic set operations) SHom.h (Homomorphisms)

+

For DDD: DDD.h (Basic set operations) Hom.h (Homomorphisms)

+

Then, as a starting point, have a look at the pages GSDD, and GShom.

+

Remember that garbage collection should be done by invoking MemoryManager::garbage().

+

Some useful annex functionality can be found in statistic.hpp and util/dotExporter.h

+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/inherit_graph_0.map b/libddd.html/inherit_graph_0.map new file mode 100644 index 000000000..4f6dce7a9 --- /dev/null +++ b/libddd.html/inherit_graph_0.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/inherit_graph_0.md5 b/libddd.html/inherit_graph_0.md5 new file mode 100644 index 000000000..0e8d527c7 --- /dev/null +++ b/libddd.html/inherit_graph_0.md5 @@ -0,0 +1 @@ +370351f5b429a9944639f5aefc7d666d \ No newline at end of file diff --git a/libddd.html/inherit_graph_0.png b/libddd.html/inherit_graph_0.png new file mode 100644 index 000000000..303c0e42e Binary files /dev/null and b/libddd.html/inherit_graph_0.png differ diff --git a/libddd.html/inherit_graph_1.map b/libddd.html/inherit_graph_1.map new file mode 100644 index 000000000..cd4a163e1 --- /dev/null +++ b/libddd.html/inherit_graph_1.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_1.md5 b/libddd.html/inherit_graph_1.md5 new file mode 100644 index 000000000..f789cd162 --- /dev/null +++ b/libddd.html/inherit_graph_1.md5 @@ -0,0 +1 @@ +8b17984eea0170fd762496cc3e98766c \ No newline at end of file diff --git a/libddd.html/inherit_graph_1.png b/libddd.html/inherit_graph_1.png new file mode 100644 index 000000000..81ea69648 Binary files /dev/null and b/libddd.html/inherit_graph_1.png differ diff --git a/libddd.html/inherit_graph_10.map b/libddd.html/inherit_graph_10.map new file mode 100644 index 000000000..55734efb4 --- /dev/null +++ b/libddd.html/inherit_graph_10.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_10.md5 b/libddd.html/inherit_graph_10.md5 new file mode 100644 index 000000000..4794677de --- /dev/null +++ b/libddd.html/inherit_graph_10.md5 @@ -0,0 +1 @@ +a94d7a4f34dacdc8e0d6f0d2ae7045ce \ No newline at end of file diff --git a/libddd.html/inherit_graph_10.png b/libddd.html/inherit_graph_10.png new file mode 100644 index 000000000..60a78648e Binary files /dev/null and b/libddd.html/inherit_graph_10.png differ diff --git a/libddd.html/inherit_graph_11.map b/libddd.html/inherit_graph_11.map new file mode 100644 index 000000000..2fb4d4b22 --- /dev/null +++ b/libddd.html/inherit_graph_11.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_11.md5 b/libddd.html/inherit_graph_11.md5 new file mode 100644 index 000000000..4a4d68e38 --- /dev/null +++ b/libddd.html/inherit_graph_11.md5 @@ -0,0 +1 @@ +4d74b231b4c73cea06c628e42e09c9e5 \ No newline at end of file diff --git a/libddd.html/inherit_graph_11.png b/libddd.html/inherit_graph_11.png new file mode 100644 index 000000000..4f3ca300b Binary files /dev/null and b/libddd.html/inherit_graph_11.png differ diff --git a/libddd.html/inherit_graph_12.map b/libddd.html/inherit_graph_12.map new file mode 100644 index 000000000..555baa0e0 --- /dev/null +++ b/libddd.html/inherit_graph_12.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_12.md5 b/libddd.html/inherit_graph_12.md5 new file mode 100644 index 000000000..dd36b6e2d --- /dev/null +++ b/libddd.html/inherit_graph_12.md5 @@ -0,0 +1 @@ +ef15a014e8fc3a49af60c9d641a6a928 \ No newline at end of file diff --git a/libddd.html/inherit_graph_12.png b/libddd.html/inherit_graph_12.png new file mode 100644 index 000000000..431ef5736 Binary files /dev/null and b/libddd.html/inherit_graph_12.png differ diff --git a/libddd.html/inherit_graph_13.map b/libddd.html/inherit_graph_13.map new file mode 100644 index 000000000..8e1d72502 --- /dev/null +++ b/libddd.html/inherit_graph_13.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_13.md5 b/libddd.html/inherit_graph_13.md5 new file mode 100644 index 000000000..4a0560890 --- /dev/null +++ b/libddd.html/inherit_graph_13.md5 @@ -0,0 +1 @@ +da22928d0c9f52ec98d23208eb737bc2 \ No newline at end of file diff --git a/libddd.html/inherit_graph_13.png b/libddd.html/inherit_graph_13.png new file mode 100644 index 000000000..c6a2b6306 Binary files /dev/null and b/libddd.html/inherit_graph_13.png differ diff --git a/libddd.html/inherit_graph_14.map b/libddd.html/inherit_graph_14.map new file mode 100644 index 000000000..a6d20b295 --- /dev/null +++ b/libddd.html/inherit_graph_14.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_14.md5 b/libddd.html/inherit_graph_14.md5 new file mode 100644 index 000000000..e0df86308 --- /dev/null +++ b/libddd.html/inherit_graph_14.md5 @@ -0,0 +1 @@ +56bcbc7cba3b6ab7bcb63c783a6dfc99 \ No newline at end of file diff --git a/libddd.html/inherit_graph_14.png b/libddd.html/inherit_graph_14.png new file mode 100644 index 000000000..cc732c846 Binary files /dev/null and b/libddd.html/inherit_graph_14.png differ diff --git a/libddd.html/inherit_graph_15.map b/libddd.html/inherit_graph_15.map new file mode 100644 index 000000000..ba9970292 --- /dev/null +++ b/libddd.html/inherit_graph_15.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_15.md5 b/libddd.html/inherit_graph_15.md5 new file mode 100644 index 000000000..205db6cd5 --- /dev/null +++ b/libddd.html/inherit_graph_15.md5 @@ -0,0 +1 @@ +de1f71f6ecea9b8e15618784d06c0922 \ No newline at end of file diff --git a/libddd.html/inherit_graph_15.png b/libddd.html/inherit_graph_15.png new file mode 100644 index 000000000..5b8eb7ee7 Binary files /dev/null and b/libddd.html/inherit_graph_15.png differ diff --git a/libddd.html/inherit_graph_16.map b/libddd.html/inherit_graph_16.map new file mode 100644 index 000000000..2050b1475 --- /dev/null +++ b/libddd.html/inherit_graph_16.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_16.md5 b/libddd.html/inherit_graph_16.md5 new file mode 100644 index 000000000..277df6bfd --- /dev/null +++ b/libddd.html/inherit_graph_16.md5 @@ -0,0 +1 @@ +ecc3cc66b2e522ab69c9c567b881c8ef \ No newline at end of file diff --git a/libddd.html/inherit_graph_16.png b/libddd.html/inherit_graph_16.png new file mode 100644 index 000000000..f0b28c87c Binary files /dev/null and b/libddd.html/inherit_graph_16.png differ diff --git a/libddd.html/inherit_graph_17.map b/libddd.html/inherit_graph_17.map new file mode 100644 index 000000000..be43d6344 --- /dev/null +++ b/libddd.html/inherit_graph_17.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_17.md5 b/libddd.html/inherit_graph_17.md5 new file mode 100644 index 000000000..b49c22b96 --- /dev/null +++ b/libddd.html/inherit_graph_17.md5 @@ -0,0 +1 @@ +867a362c001bc3c4a7a77ff4394d5d3a \ No newline at end of file diff --git a/libddd.html/inherit_graph_17.png b/libddd.html/inherit_graph_17.png new file mode 100644 index 000000000..9d3e89330 Binary files /dev/null and b/libddd.html/inherit_graph_17.png differ diff --git a/libddd.html/inherit_graph_18.map b/libddd.html/inherit_graph_18.map new file mode 100644 index 000000000..9fe57086f --- /dev/null +++ b/libddd.html/inherit_graph_18.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_18.md5 b/libddd.html/inherit_graph_18.md5 new file mode 100644 index 000000000..09d59e453 --- /dev/null +++ b/libddd.html/inherit_graph_18.md5 @@ -0,0 +1 @@ +1950acc48816c38b6cb9079b8c56a355 \ No newline at end of file diff --git a/libddd.html/inherit_graph_18.png b/libddd.html/inherit_graph_18.png new file mode 100644 index 000000000..21138613d Binary files /dev/null and b/libddd.html/inherit_graph_18.png differ diff --git a/libddd.html/inherit_graph_19.map b/libddd.html/inherit_graph_19.map new file mode 100644 index 000000000..ae4933a70 --- /dev/null +++ b/libddd.html/inherit_graph_19.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_19.md5 b/libddd.html/inherit_graph_19.md5 new file mode 100644 index 000000000..2b8281e07 --- /dev/null +++ b/libddd.html/inherit_graph_19.md5 @@ -0,0 +1 @@ +c5908e4822c128e44a78a1a92c7c251c \ No newline at end of file diff --git a/libddd.html/inherit_graph_19.png b/libddd.html/inherit_graph_19.png new file mode 100644 index 000000000..42f9f9ce7 Binary files /dev/null and b/libddd.html/inherit_graph_19.png differ diff --git a/libddd.html/inherit_graph_2.map b/libddd.html/inherit_graph_2.map new file mode 100644 index 000000000..4ce37e24a --- /dev/null +++ b/libddd.html/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_2.md5 b/libddd.html/inherit_graph_2.md5 new file mode 100644 index 000000000..6666bea26 --- /dev/null +++ b/libddd.html/inherit_graph_2.md5 @@ -0,0 +1 @@ +1bb432ca1e39a2c1f2293597a24e2e1b \ No newline at end of file diff --git a/libddd.html/inherit_graph_2.png b/libddd.html/inherit_graph_2.png new file mode 100644 index 000000000..f873fac67 Binary files /dev/null and b/libddd.html/inherit_graph_2.png differ diff --git a/libddd.html/inherit_graph_20.map b/libddd.html/inherit_graph_20.map new file mode 100644 index 000000000..c7dde6b37 --- /dev/null +++ b/libddd.html/inherit_graph_20.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_20.md5 b/libddd.html/inherit_graph_20.md5 new file mode 100644 index 000000000..e2b636622 --- /dev/null +++ b/libddd.html/inherit_graph_20.md5 @@ -0,0 +1 @@ +2fda1079a50de851715e9b8d5fc23e2a \ No newline at end of file diff --git a/libddd.html/inherit_graph_20.png b/libddd.html/inherit_graph_20.png new file mode 100644 index 000000000..30d762208 Binary files /dev/null and b/libddd.html/inherit_graph_20.png differ diff --git a/libddd.html/inherit_graph_21.map b/libddd.html/inherit_graph_21.map new file mode 100644 index 000000000..a2a809873 --- /dev/null +++ b/libddd.html/inherit_graph_21.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_21.md5 b/libddd.html/inherit_graph_21.md5 new file mode 100644 index 000000000..75d6148e9 --- /dev/null +++ b/libddd.html/inherit_graph_21.md5 @@ -0,0 +1 @@ +6fd5c977393edaf0e62186ece772990a \ No newline at end of file diff --git a/libddd.html/inherit_graph_21.png b/libddd.html/inherit_graph_21.png new file mode 100644 index 000000000..0383b54a2 Binary files /dev/null and b/libddd.html/inherit_graph_21.png differ diff --git a/libddd.html/inherit_graph_22.map b/libddd.html/inherit_graph_22.map new file mode 100644 index 000000000..6a6bcc655 --- /dev/null +++ b/libddd.html/inherit_graph_22.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_22.md5 b/libddd.html/inherit_graph_22.md5 new file mode 100644 index 000000000..6e148220d --- /dev/null +++ b/libddd.html/inherit_graph_22.md5 @@ -0,0 +1 @@ +316dcfc6e61d9aeb5608d058f593d251 \ No newline at end of file diff --git a/libddd.html/inherit_graph_22.png b/libddd.html/inherit_graph_22.png new file mode 100644 index 000000000..93d5cc48d Binary files /dev/null and b/libddd.html/inherit_graph_22.png differ diff --git a/libddd.html/inherit_graph_23.map b/libddd.html/inherit_graph_23.map new file mode 100644 index 000000000..5e0935dff --- /dev/null +++ b/libddd.html/inherit_graph_23.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_23.md5 b/libddd.html/inherit_graph_23.md5 new file mode 100644 index 000000000..477f3704b --- /dev/null +++ b/libddd.html/inherit_graph_23.md5 @@ -0,0 +1 @@ +4f503148af8c69c14d6588613f7183bd \ No newline at end of file diff --git a/libddd.html/inherit_graph_23.png b/libddd.html/inherit_graph_23.png new file mode 100644 index 000000000..474882f53 Binary files /dev/null and b/libddd.html/inherit_graph_23.png differ diff --git a/libddd.html/inherit_graph_24.map b/libddd.html/inherit_graph_24.map new file mode 100644 index 000000000..9deb8bbf4 --- /dev/null +++ b/libddd.html/inherit_graph_24.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_24.md5 b/libddd.html/inherit_graph_24.md5 new file mode 100644 index 000000000..793ccc499 --- /dev/null +++ b/libddd.html/inherit_graph_24.md5 @@ -0,0 +1 @@ +5d3bcea30aa0136784d4528ba269a77a \ No newline at end of file diff --git a/libddd.html/inherit_graph_24.png b/libddd.html/inherit_graph_24.png new file mode 100644 index 000000000..f738016fc Binary files /dev/null and b/libddd.html/inherit_graph_24.png differ diff --git a/libddd.html/inherit_graph_25.map b/libddd.html/inherit_graph_25.map new file mode 100644 index 000000000..3dbc25793 --- /dev/null +++ b/libddd.html/inherit_graph_25.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_25.md5 b/libddd.html/inherit_graph_25.md5 new file mode 100644 index 000000000..e8581e413 --- /dev/null +++ b/libddd.html/inherit_graph_25.md5 @@ -0,0 +1 @@ +1081399048548b9e4bd0964cb949a117 \ No newline at end of file diff --git a/libddd.html/inherit_graph_25.png b/libddd.html/inherit_graph_25.png new file mode 100644 index 000000000..5c54ac3ed Binary files /dev/null and b/libddd.html/inherit_graph_25.png differ diff --git a/libddd.html/inherit_graph_26.map b/libddd.html/inherit_graph_26.map new file mode 100644 index 000000000..71aae04c6 --- /dev/null +++ b/libddd.html/inherit_graph_26.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_26.md5 b/libddd.html/inherit_graph_26.md5 new file mode 100644 index 000000000..401568217 --- /dev/null +++ b/libddd.html/inherit_graph_26.md5 @@ -0,0 +1 @@ +d843e2eb8cf39d6b64672eada32e2d66 \ No newline at end of file diff --git a/libddd.html/inherit_graph_26.png b/libddd.html/inherit_graph_26.png new file mode 100644 index 000000000..c2624cedb Binary files /dev/null and b/libddd.html/inherit_graph_26.png differ diff --git a/libddd.html/inherit_graph_27.map b/libddd.html/inherit_graph_27.map new file mode 100644 index 000000000..9c9f71abd --- /dev/null +++ b/libddd.html/inherit_graph_27.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_27.md5 b/libddd.html/inherit_graph_27.md5 new file mode 100644 index 000000000..2d02ea702 --- /dev/null +++ b/libddd.html/inherit_graph_27.md5 @@ -0,0 +1 @@ +2af085c2aa9c2ab8794bb248cdeb19c6 \ No newline at end of file diff --git a/libddd.html/inherit_graph_27.png b/libddd.html/inherit_graph_27.png new file mode 100644 index 000000000..5bacad98a Binary files /dev/null and b/libddd.html/inherit_graph_27.png differ diff --git a/libddd.html/inherit_graph_28.map b/libddd.html/inherit_graph_28.map new file mode 100644 index 000000000..e72a867d4 --- /dev/null +++ b/libddd.html/inherit_graph_28.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_28.md5 b/libddd.html/inherit_graph_28.md5 new file mode 100644 index 000000000..2fda4b954 --- /dev/null +++ b/libddd.html/inherit_graph_28.md5 @@ -0,0 +1 @@ +c52669302b7929803ea94a2dcb169a04 \ No newline at end of file diff --git a/libddd.html/inherit_graph_28.png b/libddd.html/inherit_graph_28.png new file mode 100644 index 000000000..710b56cc5 Binary files /dev/null and b/libddd.html/inherit_graph_28.png differ diff --git a/libddd.html/inherit_graph_29.map b/libddd.html/inherit_graph_29.map new file mode 100644 index 000000000..5adfec463 --- /dev/null +++ b/libddd.html/inherit_graph_29.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_29.md5 b/libddd.html/inherit_graph_29.md5 new file mode 100644 index 000000000..92cb72fd6 --- /dev/null +++ b/libddd.html/inherit_graph_29.md5 @@ -0,0 +1 @@ +17cfb56352081a288db54aa29f52d117 \ No newline at end of file diff --git a/libddd.html/inherit_graph_29.png b/libddd.html/inherit_graph_29.png new file mode 100644 index 000000000..29ac16af0 Binary files /dev/null and b/libddd.html/inherit_graph_29.png differ diff --git a/libddd.html/inherit_graph_3.map b/libddd.html/inherit_graph_3.map new file mode 100644 index 000000000..98d956be6 --- /dev/null +++ b/libddd.html/inherit_graph_3.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/inherit_graph_3.md5 b/libddd.html/inherit_graph_3.md5 new file mode 100644 index 000000000..810c8158d --- /dev/null +++ b/libddd.html/inherit_graph_3.md5 @@ -0,0 +1 @@ +c20e0df00bb9204ac935c5a23ace24c4 \ No newline at end of file diff --git a/libddd.html/inherit_graph_3.png b/libddd.html/inherit_graph_3.png new file mode 100644 index 000000000..a898f3aa1 Binary files /dev/null and b/libddd.html/inherit_graph_3.png differ diff --git a/libddd.html/inherit_graph_30.map b/libddd.html/inherit_graph_30.map new file mode 100644 index 000000000..d01f76e23 --- /dev/null +++ b/libddd.html/inherit_graph_30.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_30.md5 b/libddd.html/inherit_graph_30.md5 new file mode 100644 index 000000000..8c8f13c99 --- /dev/null +++ b/libddd.html/inherit_graph_30.md5 @@ -0,0 +1 @@ +631f64e1b633093e30e182830929357c \ No newline at end of file diff --git a/libddd.html/inherit_graph_30.png b/libddd.html/inherit_graph_30.png new file mode 100644 index 000000000..e3d64af66 Binary files /dev/null and b/libddd.html/inherit_graph_30.png differ diff --git a/libddd.html/inherit_graph_31.map b/libddd.html/inherit_graph_31.map new file mode 100644 index 000000000..ac122ca83 --- /dev/null +++ b/libddd.html/inherit_graph_31.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_31.md5 b/libddd.html/inherit_graph_31.md5 new file mode 100644 index 000000000..01a335552 --- /dev/null +++ b/libddd.html/inherit_graph_31.md5 @@ -0,0 +1 @@ +63daf51918be4abc83d6a019f4f68238 \ No newline at end of file diff --git a/libddd.html/inherit_graph_31.png b/libddd.html/inherit_graph_31.png new file mode 100644 index 000000000..9b3bbb1fc Binary files /dev/null and b/libddd.html/inherit_graph_31.png differ diff --git a/libddd.html/inherit_graph_32.map b/libddd.html/inherit_graph_32.map new file mode 100644 index 000000000..72fa6e850 --- /dev/null +++ b/libddd.html/inherit_graph_32.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_32.md5 b/libddd.html/inherit_graph_32.md5 new file mode 100644 index 000000000..af0ca52fb --- /dev/null +++ b/libddd.html/inherit_graph_32.md5 @@ -0,0 +1 @@ +5e66a1a2dcc70fe63edb5a0e6425480c \ No newline at end of file diff --git a/libddd.html/inherit_graph_32.png b/libddd.html/inherit_graph_32.png new file mode 100644 index 000000000..88df9e04d Binary files /dev/null and b/libddd.html/inherit_graph_32.png differ diff --git a/libddd.html/inherit_graph_33.map b/libddd.html/inherit_graph_33.map new file mode 100644 index 000000000..6ccb61e44 --- /dev/null +++ b/libddd.html/inherit_graph_33.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_33.md5 b/libddd.html/inherit_graph_33.md5 new file mode 100644 index 000000000..7bed0126c --- /dev/null +++ b/libddd.html/inherit_graph_33.md5 @@ -0,0 +1 @@ +7f6f0f1532c02b0e591bd2c892bb142a \ No newline at end of file diff --git a/libddd.html/inherit_graph_33.png b/libddd.html/inherit_graph_33.png new file mode 100644 index 000000000..58a134270 Binary files /dev/null and b/libddd.html/inherit_graph_33.png differ diff --git a/libddd.html/inherit_graph_34.map b/libddd.html/inherit_graph_34.map new file mode 100644 index 000000000..406cab918 --- /dev/null +++ b/libddd.html/inherit_graph_34.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_34.md5 b/libddd.html/inherit_graph_34.md5 new file mode 100644 index 000000000..fadab341a --- /dev/null +++ b/libddd.html/inherit_graph_34.md5 @@ -0,0 +1 @@ +3faf94fa6afea2867b5204183fd146d2 \ No newline at end of file diff --git a/libddd.html/inherit_graph_34.png b/libddd.html/inherit_graph_34.png new file mode 100644 index 000000000..79b6a1ea8 Binary files /dev/null and b/libddd.html/inherit_graph_34.png differ diff --git a/libddd.html/inherit_graph_35.map b/libddd.html/inherit_graph_35.map new file mode 100644 index 000000000..a0b5935e6 --- /dev/null +++ b/libddd.html/inherit_graph_35.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_35.md5 b/libddd.html/inherit_graph_35.md5 new file mode 100644 index 000000000..0fe4633b7 --- /dev/null +++ b/libddd.html/inherit_graph_35.md5 @@ -0,0 +1 @@ +ac5af991953fb1aae9b0ec8a373a8fc3 \ No newline at end of file diff --git a/libddd.html/inherit_graph_35.png b/libddd.html/inherit_graph_35.png new file mode 100644 index 000000000..11e05666f Binary files /dev/null and b/libddd.html/inherit_graph_35.png differ diff --git a/libddd.html/inherit_graph_36.map b/libddd.html/inherit_graph_36.map new file mode 100644 index 000000000..c594c8bf7 --- /dev/null +++ b/libddd.html/inherit_graph_36.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_36.md5 b/libddd.html/inherit_graph_36.md5 new file mode 100644 index 000000000..3381433d2 --- /dev/null +++ b/libddd.html/inherit_graph_36.md5 @@ -0,0 +1 @@ +7e0d905f40cc96a5eb05b8dd6bb9ce47 \ No newline at end of file diff --git a/libddd.html/inherit_graph_36.png b/libddd.html/inherit_graph_36.png new file mode 100644 index 000000000..d5d51ec07 Binary files /dev/null and b/libddd.html/inherit_graph_36.png differ diff --git a/libddd.html/inherit_graph_37.map b/libddd.html/inherit_graph_37.map new file mode 100644 index 000000000..1365d78f1 --- /dev/null +++ b/libddd.html/inherit_graph_37.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_37.md5 b/libddd.html/inherit_graph_37.md5 new file mode 100644 index 000000000..efa4842a0 --- /dev/null +++ b/libddd.html/inherit_graph_37.md5 @@ -0,0 +1 @@ +5382e3dfb3facb50c635b4f5bbe796f1 \ No newline at end of file diff --git a/libddd.html/inherit_graph_37.png b/libddd.html/inherit_graph_37.png new file mode 100644 index 000000000..1796413bc Binary files /dev/null and b/libddd.html/inherit_graph_37.png differ diff --git a/libddd.html/inherit_graph_38.map b/libddd.html/inherit_graph_38.map new file mode 100644 index 000000000..5de2b2c12 --- /dev/null +++ b/libddd.html/inherit_graph_38.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_38.md5 b/libddd.html/inherit_graph_38.md5 new file mode 100644 index 000000000..f9351fd65 --- /dev/null +++ b/libddd.html/inherit_graph_38.md5 @@ -0,0 +1 @@ +58f1ffed2a58be935bfe6f0a456962fb \ No newline at end of file diff --git a/libddd.html/inherit_graph_38.png b/libddd.html/inherit_graph_38.png new file mode 100644 index 000000000..bc38188df Binary files /dev/null and b/libddd.html/inherit_graph_38.png differ diff --git a/libddd.html/inherit_graph_39.map b/libddd.html/inherit_graph_39.map new file mode 100644 index 000000000..b2895450d --- /dev/null +++ b/libddd.html/inherit_graph_39.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_39.md5 b/libddd.html/inherit_graph_39.md5 new file mode 100644 index 000000000..c3faba50b --- /dev/null +++ b/libddd.html/inherit_graph_39.md5 @@ -0,0 +1 @@ +027c2b9a26facbeb91fcd518ec57e16e \ No newline at end of file diff --git a/libddd.html/inherit_graph_39.png b/libddd.html/inherit_graph_39.png new file mode 100644 index 000000000..874f556a3 Binary files /dev/null and b/libddd.html/inherit_graph_39.png differ diff --git a/libddd.html/inherit_graph_4.map b/libddd.html/inherit_graph_4.map new file mode 100644 index 000000000..fd64cd4e9 --- /dev/null +++ b/libddd.html/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_4.md5 b/libddd.html/inherit_graph_4.md5 new file mode 100644 index 000000000..21de5da11 --- /dev/null +++ b/libddd.html/inherit_graph_4.md5 @@ -0,0 +1 @@ +c276585bdbb2ebab8ea8639bb3b7340f \ No newline at end of file diff --git a/libddd.html/inherit_graph_4.png b/libddd.html/inherit_graph_4.png new file mode 100644 index 000000000..1d01c8db2 Binary files /dev/null and b/libddd.html/inherit_graph_4.png differ diff --git a/libddd.html/inherit_graph_40.map b/libddd.html/inherit_graph_40.map new file mode 100644 index 000000000..02097e5e6 --- /dev/null +++ b/libddd.html/inherit_graph_40.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_40.md5 b/libddd.html/inherit_graph_40.md5 new file mode 100644 index 000000000..5566fdb81 --- /dev/null +++ b/libddd.html/inherit_graph_40.md5 @@ -0,0 +1 @@ +d457d76efedecbb14be007f4b64bb89f \ No newline at end of file diff --git a/libddd.html/inherit_graph_40.png b/libddd.html/inherit_graph_40.png new file mode 100644 index 000000000..da2f96f56 Binary files /dev/null and b/libddd.html/inherit_graph_40.png differ diff --git a/libddd.html/inherit_graph_41.map b/libddd.html/inherit_graph_41.map new file mode 100644 index 000000000..1ec8e5e56 --- /dev/null +++ b/libddd.html/inherit_graph_41.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_41.md5 b/libddd.html/inherit_graph_41.md5 new file mode 100644 index 000000000..bac450171 --- /dev/null +++ b/libddd.html/inherit_graph_41.md5 @@ -0,0 +1 @@ +28e410090e2a3785ec7002c4eae52be4 \ No newline at end of file diff --git a/libddd.html/inherit_graph_41.png b/libddd.html/inherit_graph_41.png new file mode 100644 index 000000000..f331caa74 Binary files /dev/null and b/libddd.html/inherit_graph_41.png differ diff --git a/libddd.html/inherit_graph_42.map b/libddd.html/inherit_graph_42.map new file mode 100644 index 000000000..3e05d7945 --- /dev/null +++ b/libddd.html/inherit_graph_42.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/libddd.html/inherit_graph_42.md5 b/libddd.html/inherit_graph_42.md5 new file mode 100644 index 000000000..81ef37d72 --- /dev/null +++ b/libddd.html/inherit_graph_42.md5 @@ -0,0 +1 @@ +ae8f9f25ea7ca8753d5ccce3bd21a423 \ No newline at end of file diff --git a/libddd.html/inherit_graph_42.png b/libddd.html/inherit_graph_42.png new file mode 100644 index 000000000..fc67302e1 Binary files /dev/null and b/libddd.html/inherit_graph_42.png differ diff --git a/libddd.html/inherit_graph_43.map b/libddd.html/inherit_graph_43.map new file mode 100644 index 000000000..b9d1fa901 --- /dev/null +++ b/libddd.html/inherit_graph_43.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/inherit_graph_43.md5 b/libddd.html/inherit_graph_43.md5 new file mode 100644 index 000000000..295b07933 --- /dev/null +++ b/libddd.html/inherit_graph_43.md5 @@ -0,0 +1 @@ +15e29bf7ba879088d86850ba6d83307e \ No newline at end of file diff --git a/libddd.html/inherit_graph_43.png b/libddd.html/inherit_graph_43.png new file mode 100644 index 000000000..31c0deafc Binary files /dev/null and b/libddd.html/inherit_graph_43.png differ diff --git a/libddd.html/inherit_graph_44.map b/libddd.html/inherit_graph_44.map new file mode 100644 index 000000000..833cbe893 --- /dev/null +++ b/libddd.html/inherit_graph_44.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_44.md5 b/libddd.html/inherit_graph_44.md5 new file mode 100644 index 000000000..0eb75c0ec --- /dev/null +++ b/libddd.html/inherit_graph_44.md5 @@ -0,0 +1 @@ +bf53526f864f8bfa432882b18ef2a6ab \ No newline at end of file diff --git a/libddd.html/inherit_graph_44.png b/libddd.html/inherit_graph_44.png new file mode 100644 index 000000000..24eaec2bd Binary files /dev/null and b/libddd.html/inherit_graph_44.png differ diff --git a/libddd.html/inherit_graph_45.map b/libddd.html/inherit_graph_45.map new file mode 100644 index 000000000..beece77b9 --- /dev/null +++ b/libddd.html/inherit_graph_45.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_45.md5 b/libddd.html/inherit_graph_45.md5 new file mode 100644 index 000000000..d0d96956b --- /dev/null +++ b/libddd.html/inherit_graph_45.md5 @@ -0,0 +1 @@ +76a00ccaa5dd60c9fe5197cc17689e01 \ No newline at end of file diff --git a/libddd.html/inherit_graph_45.png b/libddd.html/inherit_graph_45.png new file mode 100644 index 000000000..82a1c76f0 Binary files /dev/null and b/libddd.html/inherit_graph_45.png differ diff --git a/libddd.html/inherit_graph_46.map b/libddd.html/inherit_graph_46.map new file mode 100644 index 000000000..3e62df70e --- /dev/null +++ b/libddd.html/inherit_graph_46.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_46.md5 b/libddd.html/inherit_graph_46.md5 new file mode 100644 index 000000000..8fe4dc62a --- /dev/null +++ b/libddd.html/inherit_graph_46.md5 @@ -0,0 +1 @@ +17ec11a8cb27ccb2ad3e6ca768067283 \ No newline at end of file diff --git a/libddd.html/inherit_graph_46.png b/libddd.html/inherit_graph_46.png new file mode 100644 index 000000000..d5f3d6b92 Binary files /dev/null and b/libddd.html/inherit_graph_46.png differ diff --git a/libddd.html/inherit_graph_47.map b/libddd.html/inherit_graph_47.map new file mode 100644 index 000000000..1b7228ecf --- /dev/null +++ b/libddd.html/inherit_graph_47.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_47.md5 b/libddd.html/inherit_graph_47.md5 new file mode 100644 index 000000000..fec33b629 --- /dev/null +++ b/libddd.html/inherit_graph_47.md5 @@ -0,0 +1 @@ +de017a0e58978259a4a08283f3d35561 \ No newline at end of file diff --git a/libddd.html/inherit_graph_47.png b/libddd.html/inherit_graph_47.png new file mode 100644 index 000000000..29503d678 Binary files /dev/null and b/libddd.html/inherit_graph_47.png differ diff --git a/libddd.html/inherit_graph_48.map b/libddd.html/inherit_graph_48.map new file mode 100644 index 000000000..7d48d576a --- /dev/null +++ b/libddd.html/inherit_graph_48.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_48.md5 b/libddd.html/inherit_graph_48.md5 new file mode 100644 index 000000000..5c0748a9e --- /dev/null +++ b/libddd.html/inherit_graph_48.md5 @@ -0,0 +1 @@ +41847ac31d0597b75ce721d96b29b175 \ No newline at end of file diff --git a/libddd.html/inherit_graph_48.png b/libddd.html/inherit_graph_48.png new file mode 100644 index 000000000..061170e31 Binary files /dev/null and b/libddd.html/inherit_graph_48.png differ diff --git a/libddd.html/inherit_graph_49.map b/libddd.html/inherit_graph_49.map new file mode 100644 index 000000000..af9a3a620 --- /dev/null +++ b/libddd.html/inherit_graph_49.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_49.md5 b/libddd.html/inherit_graph_49.md5 new file mode 100644 index 000000000..c6e7c02b8 --- /dev/null +++ b/libddd.html/inherit_graph_49.md5 @@ -0,0 +1 @@ +1b48e3bb07e0356dc97c32acaccde23f \ No newline at end of file diff --git a/libddd.html/inherit_graph_49.png b/libddd.html/inherit_graph_49.png new file mode 100644 index 000000000..ddaae4613 Binary files /dev/null and b/libddd.html/inherit_graph_49.png differ diff --git a/libddd.html/inherit_graph_5.map b/libddd.html/inherit_graph_5.map new file mode 100644 index 000000000..0ea19d1db --- /dev/null +++ b/libddd.html/inherit_graph_5.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/inherit_graph_5.md5 b/libddd.html/inherit_graph_5.md5 new file mode 100644 index 000000000..552e07dbc --- /dev/null +++ b/libddd.html/inherit_graph_5.md5 @@ -0,0 +1 @@ +ba69103da37f24a97f8787cc36137190 \ No newline at end of file diff --git a/libddd.html/inherit_graph_5.png b/libddd.html/inherit_graph_5.png new file mode 100644 index 000000000..d03f4fa06 Binary files /dev/null and b/libddd.html/inherit_graph_5.png differ diff --git a/libddd.html/inherit_graph_50.map b/libddd.html/inherit_graph_50.map new file mode 100644 index 000000000..94c84edee --- /dev/null +++ b/libddd.html/inherit_graph_50.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/inherit_graph_50.md5 b/libddd.html/inherit_graph_50.md5 new file mode 100644 index 000000000..f51846eda --- /dev/null +++ b/libddd.html/inherit_graph_50.md5 @@ -0,0 +1 @@ +28633fd2237dc08cd752b1aec89738d6 \ No newline at end of file diff --git a/libddd.html/inherit_graph_50.png b/libddd.html/inherit_graph_50.png new file mode 100644 index 000000000..ccdd7b5f4 Binary files /dev/null and b/libddd.html/inherit_graph_50.png differ diff --git a/libddd.html/inherit_graph_51.map b/libddd.html/inherit_graph_51.map new file mode 100644 index 000000000..dcd1b595e --- /dev/null +++ b/libddd.html/inherit_graph_51.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_51.md5 b/libddd.html/inherit_graph_51.md5 new file mode 100644 index 000000000..609894621 --- /dev/null +++ b/libddd.html/inherit_graph_51.md5 @@ -0,0 +1 @@ +0663ade5c16df4ab9dad9a3c30b1481b \ No newline at end of file diff --git a/libddd.html/inherit_graph_51.png b/libddd.html/inherit_graph_51.png new file mode 100644 index 000000000..e38d1b2e9 Binary files /dev/null and b/libddd.html/inherit_graph_51.png differ diff --git a/libddd.html/inherit_graph_52.map b/libddd.html/inherit_graph_52.map new file mode 100644 index 000000000..323398245 --- /dev/null +++ b/libddd.html/inherit_graph_52.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/inherit_graph_52.md5 b/libddd.html/inherit_graph_52.md5 new file mode 100644 index 000000000..d487c6821 --- /dev/null +++ b/libddd.html/inherit_graph_52.md5 @@ -0,0 +1 @@ +7b7ae3beb2709afa1f4155c037a011c0 \ No newline at end of file diff --git a/libddd.html/inherit_graph_52.png b/libddd.html/inherit_graph_52.png new file mode 100644 index 000000000..fcc4e305d Binary files /dev/null and b/libddd.html/inherit_graph_52.png differ diff --git a/libddd.html/inherit_graph_53.map b/libddd.html/inherit_graph_53.map new file mode 100644 index 000000000..794796340 --- /dev/null +++ b/libddd.html/inherit_graph_53.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/inherit_graph_53.md5 b/libddd.html/inherit_graph_53.md5 new file mode 100644 index 000000000..0b727412a --- /dev/null +++ b/libddd.html/inherit_graph_53.md5 @@ -0,0 +1 @@ +a2781a47ed85320d1543592d310d3a95 \ No newline at end of file diff --git a/libddd.html/inherit_graph_53.png b/libddd.html/inherit_graph_53.png new file mode 100644 index 000000000..e757d6e33 Binary files /dev/null and b/libddd.html/inherit_graph_53.png differ diff --git a/libddd.html/inherit_graph_54.map b/libddd.html/inherit_graph_54.map new file mode 100644 index 000000000..8a61db53d --- /dev/null +++ b/libddd.html/inherit_graph_54.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_54.md5 b/libddd.html/inherit_graph_54.md5 new file mode 100644 index 000000000..1fda5a810 --- /dev/null +++ b/libddd.html/inherit_graph_54.md5 @@ -0,0 +1 @@ +a46a67aaaf7e5083b633d3cff840fe30 \ No newline at end of file diff --git a/libddd.html/inherit_graph_54.png b/libddd.html/inherit_graph_54.png new file mode 100644 index 000000000..3030ef8f3 Binary files /dev/null and b/libddd.html/inherit_graph_54.png differ diff --git a/libddd.html/inherit_graph_55.map b/libddd.html/inherit_graph_55.map new file mode 100644 index 000000000..dde21c9b1 --- /dev/null +++ b/libddd.html/inherit_graph_55.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_55.md5 b/libddd.html/inherit_graph_55.md5 new file mode 100644 index 000000000..5d5f22835 --- /dev/null +++ b/libddd.html/inherit_graph_55.md5 @@ -0,0 +1 @@ +5996c5f25a70833e095a1ff47c91d033 \ No newline at end of file diff --git a/libddd.html/inherit_graph_55.png b/libddd.html/inherit_graph_55.png new file mode 100644 index 000000000..5f2dbdd10 Binary files /dev/null and b/libddd.html/inherit_graph_55.png differ diff --git a/libddd.html/inherit_graph_56.map b/libddd.html/inherit_graph_56.map new file mode 100644 index 000000000..6a7f34287 --- /dev/null +++ b/libddd.html/inherit_graph_56.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_56.md5 b/libddd.html/inherit_graph_56.md5 new file mode 100644 index 000000000..fdcdaa48b --- /dev/null +++ b/libddd.html/inherit_graph_56.md5 @@ -0,0 +1 @@ +b6afa9247f19daa1f621424d5f92d75d \ No newline at end of file diff --git a/libddd.html/inherit_graph_56.png b/libddd.html/inherit_graph_56.png new file mode 100644 index 000000000..ae6fe0b1d Binary files /dev/null and b/libddd.html/inherit_graph_56.png differ diff --git a/libddd.html/inherit_graph_57.map b/libddd.html/inherit_graph_57.map new file mode 100644 index 000000000..ec8732a4c --- /dev/null +++ b/libddd.html/inherit_graph_57.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_57.md5 b/libddd.html/inherit_graph_57.md5 new file mode 100644 index 000000000..a986803b0 --- /dev/null +++ b/libddd.html/inherit_graph_57.md5 @@ -0,0 +1 @@ +9a8504bae88e79dd60eb9ad94424cfbf \ No newline at end of file diff --git a/libddd.html/inherit_graph_57.png b/libddd.html/inherit_graph_57.png new file mode 100644 index 000000000..595a41e0a Binary files /dev/null and b/libddd.html/inherit_graph_57.png differ diff --git a/libddd.html/inherit_graph_58.map b/libddd.html/inherit_graph_58.map new file mode 100644 index 000000000..044ca67b5 --- /dev/null +++ b/libddd.html/inherit_graph_58.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_58.md5 b/libddd.html/inherit_graph_58.md5 new file mode 100644 index 000000000..5865a0c78 --- /dev/null +++ b/libddd.html/inherit_graph_58.md5 @@ -0,0 +1 @@ +4447269634e96ea4e47f3197438a7810 \ No newline at end of file diff --git a/libddd.html/inherit_graph_58.png b/libddd.html/inherit_graph_58.png new file mode 100644 index 000000000..c2ad60b6c Binary files /dev/null and b/libddd.html/inherit_graph_58.png differ diff --git a/libddd.html/inherit_graph_59.map b/libddd.html/inherit_graph_59.map new file mode 100644 index 000000000..06fc50d33 --- /dev/null +++ b/libddd.html/inherit_graph_59.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_59.md5 b/libddd.html/inherit_graph_59.md5 new file mode 100644 index 000000000..1c6badfc5 --- /dev/null +++ b/libddd.html/inherit_graph_59.md5 @@ -0,0 +1 @@ +ba166030c840f3cd1a18c4c8f5f76cbd \ No newline at end of file diff --git a/libddd.html/inherit_graph_59.png b/libddd.html/inherit_graph_59.png new file mode 100644 index 000000000..7ab365802 Binary files /dev/null and b/libddd.html/inherit_graph_59.png differ diff --git a/libddd.html/inherit_graph_6.map b/libddd.html/inherit_graph_6.map new file mode 100644 index 000000000..6954b7a60 --- /dev/null +++ b/libddd.html/inherit_graph_6.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/inherit_graph_6.md5 b/libddd.html/inherit_graph_6.md5 new file mode 100644 index 000000000..1136ed2c4 --- /dev/null +++ b/libddd.html/inherit_graph_6.md5 @@ -0,0 +1 @@ +835d2e0d9d558d5258812c0f42354a09 \ No newline at end of file diff --git a/libddd.html/inherit_graph_6.png b/libddd.html/inherit_graph_6.png new file mode 100644 index 000000000..3fbce913d Binary files /dev/null and b/libddd.html/inherit_graph_6.png differ diff --git a/libddd.html/inherit_graph_60.map b/libddd.html/inherit_graph_60.map new file mode 100644 index 000000000..5c99d093a --- /dev/null +++ b/libddd.html/inherit_graph_60.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_60.md5 b/libddd.html/inherit_graph_60.md5 new file mode 100644 index 000000000..bbd6fd405 --- /dev/null +++ b/libddd.html/inherit_graph_60.md5 @@ -0,0 +1 @@ +491ea2aa71eb587adcd929a6dcd1e2eb \ No newline at end of file diff --git a/libddd.html/inherit_graph_60.png b/libddd.html/inherit_graph_60.png new file mode 100644 index 000000000..b7c9fa138 Binary files /dev/null and b/libddd.html/inherit_graph_60.png differ diff --git a/libddd.html/inherit_graph_61.map b/libddd.html/inherit_graph_61.map new file mode 100644 index 000000000..9475ab095 --- /dev/null +++ b/libddd.html/inherit_graph_61.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_61.md5 b/libddd.html/inherit_graph_61.md5 new file mode 100644 index 000000000..8cfd9a56b --- /dev/null +++ b/libddd.html/inherit_graph_61.md5 @@ -0,0 +1 @@ +577fbe55dfb36c3e17c58551145b59de \ No newline at end of file diff --git a/libddd.html/inherit_graph_61.png b/libddd.html/inherit_graph_61.png new file mode 100644 index 000000000..759ed7a9a Binary files /dev/null and b/libddd.html/inherit_graph_61.png differ diff --git a/libddd.html/inherit_graph_62.map b/libddd.html/inherit_graph_62.map new file mode 100644 index 000000000..e35d75214 --- /dev/null +++ b/libddd.html/inherit_graph_62.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_62.md5 b/libddd.html/inherit_graph_62.md5 new file mode 100644 index 000000000..e5b088cf3 --- /dev/null +++ b/libddd.html/inherit_graph_62.md5 @@ -0,0 +1 @@ +7961e6cfb4486edce92bf9f93282d19e \ No newline at end of file diff --git a/libddd.html/inherit_graph_62.png b/libddd.html/inherit_graph_62.png new file mode 100644 index 000000000..f1c396f3e Binary files /dev/null and b/libddd.html/inherit_graph_62.png differ diff --git a/libddd.html/inherit_graph_63.map b/libddd.html/inherit_graph_63.map new file mode 100644 index 000000000..eea0151db --- /dev/null +++ b/libddd.html/inherit_graph_63.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_63.md5 b/libddd.html/inherit_graph_63.md5 new file mode 100644 index 000000000..c6c93b50f --- /dev/null +++ b/libddd.html/inherit_graph_63.md5 @@ -0,0 +1 @@ +1d5d387df473b56baa306470fad1ead7 \ No newline at end of file diff --git a/libddd.html/inherit_graph_63.png b/libddd.html/inherit_graph_63.png new file mode 100644 index 000000000..7ea6151d0 Binary files /dev/null and b/libddd.html/inherit_graph_63.png differ diff --git a/libddd.html/inherit_graph_64.map b/libddd.html/inherit_graph_64.map new file mode 100644 index 000000000..ed938d549 --- /dev/null +++ b/libddd.html/inherit_graph_64.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_64.md5 b/libddd.html/inherit_graph_64.md5 new file mode 100644 index 000000000..20a5eef0c --- /dev/null +++ b/libddd.html/inherit_graph_64.md5 @@ -0,0 +1 @@ +153532a44259de84400e2c9193277046 \ No newline at end of file diff --git a/libddd.html/inherit_graph_64.png b/libddd.html/inherit_graph_64.png new file mode 100644 index 000000000..094b925ad Binary files /dev/null and b/libddd.html/inherit_graph_64.png differ diff --git a/libddd.html/inherit_graph_65.map b/libddd.html/inherit_graph_65.map new file mode 100644 index 000000000..e766bf48f --- /dev/null +++ b/libddd.html/inherit_graph_65.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_65.md5 b/libddd.html/inherit_graph_65.md5 new file mode 100644 index 000000000..4d14a4fcd --- /dev/null +++ b/libddd.html/inherit_graph_65.md5 @@ -0,0 +1 @@ +cd6ae1fedb203b73f7a2aa5fe27569a9 \ No newline at end of file diff --git a/libddd.html/inherit_graph_65.png b/libddd.html/inherit_graph_65.png new file mode 100644 index 000000000..76ceaf269 Binary files /dev/null and b/libddd.html/inherit_graph_65.png differ diff --git a/libddd.html/inherit_graph_66.map b/libddd.html/inherit_graph_66.map new file mode 100644 index 000000000..e25e6a5d1 --- /dev/null +++ b/libddd.html/inherit_graph_66.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_66.md5 b/libddd.html/inherit_graph_66.md5 new file mode 100644 index 000000000..391007442 --- /dev/null +++ b/libddd.html/inherit_graph_66.md5 @@ -0,0 +1 @@ +f2af6cb8e7b923398e81f1138198312c \ No newline at end of file diff --git a/libddd.html/inherit_graph_66.png b/libddd.html/inherit_graph_66.png new file mode 100644 index 000000000..e277e646c Binary files /dev/null and b/libddd.html/inherit_graph_66.png differ diff --git a/libddd.html/inherit_graph_67.map b/libddd.html/inherit_graph_67.map new file mode 100644 index 000000000..cd3de5294 --- /dev/null +++ b/libddd.html/inherit_graph_67.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_67.md5 b/libddd.html/inherit_graph_67.md5 new file mode 100644 index 000000000..e050464d2 --- /dev/null +++ b/libddd.html/inherit_graph_67.md5 @@ -0,0 +1 @@ +3ad035d18bf49e7e1b4a1041e89d738b \ No newline at end of file diff --git a/libddd.html/inherit_graph_67.png b/libddd.html/inherit_graph_67.png new file mode 100644 index 000000000..78574bbc2 Binary files /dev/null and b/libddd.html/inherit_graph_67.png differ diff --git a/libddd.html/inherit_graph_68.map b/libddd.html/inherit_graph_68.map new file mode 100644 index 000000000..b2fc016cc --- /dev/null +++ b/libddd.html/inherit_graph_68.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_68.md5 b/libddd.html/inherit_graph_68.md5 new file mode 100644 index 000000000..c1d6ec543 --- /dev/null +++ b/libddd.html/inherit_graph_68.md5 @@ -0,0 +1 @@ +508952b5a990b4820e8188bec2834f66 \ No newline at end of file diff --git a/libddd.html/inherit_graph_68.png b/libddd.html/inherit_graph_68.png new file mode 100644 index 000000000..e151dfe7d Binary files /dev/null and b/libddd.html/inherit_graph_68.png differ diff --git a/libddd.html/inherit_graph_69.map b/libddd.html/inherit_graph_69.map new file mode 100644 index 000000000..7126d9993 --- /dev/null +++ b/libddd.html/inherit_graph_69.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_69.md5 b/libddd.html/inherit_graph_69.md5 new file mode 100644 index 000000000..c3513d808 --- /dev/null +++ b/libddd.html/inherit_graph_69.md5 @@ -0,0 +1 @@ +6f56f35ea8825495f14be6125e1ca688 \ No newline at end of file diff --git a/libddd.html/inherit_graph_69.png b/libddd.html/inherit_graph_69.png new file mode 100644 index 000000000..558ad74ed Binary files /dev/null and b/libddd.html/inherit_graph_69.png differ diff --git a/libddd.html/inherit_graph_7.map b/libddd.html/inherit_graph_7.map new file mode 100644 index 000000000..bf0ddce94 --- /dev/null +++ b/libddd.html/inherit_graph_7.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/inherit_graph_7.md5 b/libddd.html/inherit_graph_7.md5 new file mode 100644 index 000000000..8fa62f810 --- /dev/null +++ b/libddd.html/inherit_graph_7.md5 @@ -0,0 +1 @@ +b4ef0965cd4d1379f80a52ed8d5aa229 \ No newline at end of file diff --git a/libddd.html/inherit_graph_7.png b/libddd.html/inherit_graph_7.png new file mode 100644 index 000000000..25a470441 Binary files /dev/null and b/libddd.html/inherit_graph_7.png differ diff --git a/libddd.html/inherit_graph_70.map b/libddd.html/inherit_graph_70.map new file mode 100644 index 000000000..01e9b0623 --- /dev/null +++ b/libddd.html/inherit_graph_70.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_70.md5 b/libddd.html/inherit_graph_70.md5 new file mode 100644 index 000000000..f1c927e23 --- /dev/null +++ b/libddd.html/inherit_graph_70.md5 @@ -0,0 +1 @@ +8893b477120aedec4aaf01c79226c6cc \ No newline at end of file diff --git a/libddd.html/inherit_graph_70.png b/libddd.html/inherit_graph_70.png new file mode 100644 index 000000000..0f1741b11 Binary files /dev/null and b/libddd.html/inherit_graph_70.png differ diff --git a/libddd.html/inherit_graph_71.map b/libddd.html/inherit_graph_71.map new file mode 100644 index 000000000..ab7ce687f --- /dev/null +++ b/libddd.html/inherit_graph_71.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_71.md5 b/libddd.html/inherit_graph_71.md5 new file mode 100644 index 000000000..b9e1a9c0a --- /dev/null +++ b/libddd.html/inherit_graph_71.md5 @@ -0,0 +1 @@ +30bc41a96028d9c198c00ca4f821f2da \ No newline at end of file diff --git a/libddd.html/inherit_graph_71.png b/libddd.html/inherit_graph_71.png new file mode 100644 index 000000000..f0edcada6 Binary files /dev/null and b/libddd.html/inherit_graph_71.png differ diff --git a/libddd.html/inherit_graph_72.map b/libddd.html/inherit_graph_72.map new file mode 100644 index 000000000..c14e0c825 --- /dev/null +++ b/libddd.html/inherit_graph_72.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_72.md5 b/libddd.html/inherit_graph_72.md5 new file mode 100644 index 000000000..705696325 --- /dev/null +++ b/libddd.html/inherit_graph_72.md5 @@ -0,0 +1 @@ +a93db812c4979653716ee4254fcfc791 \ No newline at end of file diff --git a/libddd.html/inherit_graph_72.png b/libddd.html/inherit_graph_72.png new file mode 100644 index 000000000..1d19b82de Binary files /dev/null and b/libddd.html/inherit_graph_72.png differ diff --git a/libddd.html/inherit_graph_73.map b/libddd.html/inherit_graph_73.map new file mode 100644 index 000000000..30328fd9e --- /dev/null +++ b/libddd.html/inherit_graph_73.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_73.md5 b/libddd.html/inherit_graph_73.md5 new file mode 100644 index 000000000..80ea1698e --- /dev/null +++ b/libddd.html/inherit_graph_73.md5 @@ -0,0 +1 @@ +b4005098d1d2916dbba9e520c5dc8f86 \ No newline at end of file diff --git a/libddd.html/inherit_graph_73.png b/libddd.html/inherit_graph_73.png new file mode 100644 index 000000000..7cb62dab0 Binary files /dev/null and b/libddd.html/inherit_graph_73.png differ diff --git a/libddd.html/inherit_graph_74.map b/libddd.html/inherit_graph_74.map new file mode 100644 index 000000000..908124e33 --- /dev/null +++ b/libddd.html/inherit_graph_74.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_74.md5 b/libddd.html/inherit_graph_74.md5 new file mode 100644 index 000000000..4ddac744b --- /dev/null +++ b/libddd.html/inherit_graph_74.md5 @@ -0,0 +1 @@ +4899150f6eda80d2808c1b55d0cc52d0 \ No newline at end of file diff --git a/libddd.html/inherit_graph_74.png b/libddd.html/inherit_graph_74.png new file mode 100644 index 000000000..e2c5915e1 Binary files /dev/null and b/libddd.html/inherit_graph_74.png differ diff --git a/libddd.html/inherit_graph_75.map b/libddd.html/inherit_graph_75.map new file mode 100644 index 000000000..eceff0b88 --- /dev/null +++ b/libddd.html/inherit_graph_75.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_75.md5 b/libddd.html/inherit_graph_75.md5 new file mode 100644 index 000000000..d7a109758 --- /dev/null +++ b/libddd.html/inherit_graph_75.md5 @@ -0,0 +1 @@ +7f9a2e65025e38a2713ef2e6ebacf0d2 \ No newline at end of file diff --git a/libddd.html/inherit_graph_75.png b/libddd.html/inherit_graph_75.png new file mode 100644 index 000000000..32557cba5 Binary files /dev/null and b/libddd.html/inherit_graph_75.png differ diff --git a/libddd.html/inherit_graph_8.map b/libddd.html/inherit_graph_8.map new file mode 100644 index 000000000..f00410406 --- /dev/null +++ b/libddd.html/inherit_graph_8.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/libddd.html/inherit_graph_8.md5 b/libddd.html/inherit_graph_8.md5 new file mode 100644 index 000000000..5dfea0388 --- /dev/null +++ b/libddd.html/inherit_graph_8.md5 @@ -0,0 +1 @@ +bc1004f53054975bdd71ef18f41db99b \ No newline at end of file diff --git a/libddd.html/inherit_graph_8.png b/libddd.html/inherit_graph_8.png new file mode 100644 index 000000000..6d4959dc8 Binary files /dev/null and b/libddd.html/inherit_graph_8.png differ diff --git a/libddd.html/inherit_graph_9.map b/libddd.html/inherit_graph_9.map new file mode 100644 index 000000000..4b16ddb3f --- /dev/null +++ b/libddd.html/inherit_graph_9.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/inherit_graph_9.md5 b/libddd.html/inherit_graph_9.md5 new file mode 100644 index 000000000..b6186623d --- /dev/null +++ b/libddd.html/inherit_graph_9.md5 @@ -0,0 +1 @@ +da00bb3cded7a7d63f64b30462d7ddc7 \ No newline at end of file diff --git a/libddd.html/inherit_graph_9.png b/libddd.html/inherit_graph_9.png new file mode 100644 index 000000000..6e0b60991 Binary files /dev/null and b/libddd.html/inherit_graph_9.png differ diff --git a/libddd.html/inherits.html b/libddd.html/inherits.html new file mode 100644 index 000000000..d2c2cf787 --- /dev/null +++ b/libddd.html/inherits.html @@ -0,0 +1,510 @@ + + + + + + + +DDD: Class Hierarchy + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + + + + + +
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + + +
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/init_8hh.html b/libddd.html/init_8hh.html new file mode 100644 index 000000000..c63beafb6 --- /dev/null +++ b/libddd.html/init_8hh.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: init.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+ +
+
init.hh File Reference
+
+
+ +

Go to the source code of this file.

+ + + + +

+Classes

class  d3::init
 
+ + + +

+Namespaces

 d3
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/init_8hh_source.html b/libddd.html/init_8hh_source.html new file mode 100644 index 000000000..719d45d9f --- /dev/null +++ b/libddd.html/init_8hh_source.html @@ -0,0 +1,92 @@ + + + + + + + +DDD: init.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
init.hh
+
+
+Go to the documentation of this file.
1 #ifndef _D3_MANAGER_HH_
+
2 #define _D3_MANAGER_HH_
+
3 
+
4 #ifdef PARALLEL_DD
+
5 #include "tbb/task_scheduler_init.h"
+
6 #endif
+
7 
+
8 namespace d3 {
+
9 
+
10 class init
+
11 {
+
12 private:
+
13 
+
14 #ifdef PARALLEL_DD
+
15  tbb::task_scheduler_init tbb_init_;
+
16 #endif
+
17 
+
18 public:
+
19 
+
20  init()
+
21 #ifdef PARALLEL_DD
+
22  :
+
23  tbb_init_()
+
24 #endif
+
25  {
+
26  }
+
27 
+ +
29  {
+
30  }
+
31 };
+
32 
+
33 } // namespace d3
+
34 
+
35 #endif /* _D3_MANAGER_HH_ */
+
Definition: init.hh:11
+
~init()
Definition: init.hh:28
+
init()
Definition: init.hh:20
+
Definition: Hom.cpp:41
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/jquery.js b/libddd.html/jquery.js new file mode 100644 index 000000000..103c32d79 --- /dev/null +++ b/libddd.html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/libddd.html/mainpage_8dox.html b/libddd.html/mainpage_8dox.html new file mode 100644 index 000000000..64aa99a70 --- /dev/null +++ b/libddd.html/mainpage_8dox.html @@ -0,0 +1,53 @@ + + + + + + + +DDD: mainpage.dox File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + +
+
+
+
mainpage.dox File Reference
+
+
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/map_8hh.html b/libddd.html/map_8hh.html new file mode 100644 index 000000000..07e6310e4 --- /dev/null +++ b/libddd.html/map_8hh.html @@ -0,0 +1,100 @@ + + + + + + + +DDD: util/map.hh File Reference + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+ +
+
map.hh File Reference
+
+
+
#include <map>
+#include <utility>
+#include "ddd/util/configuration.hh"
+
+Include dependency graph for map.hh:
+
+
+ + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  d3::util::map< Key, Data, Compare, Allocator >
 
+ + + + + +

+Namespaces

 d3
 
 d3::util
 
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/map_8hh__incl.map b/libddd.html/map_8hh__incl.map new file mode 100644 index 000000000..22709562d --- /dev/null +++ b/libddd.html/map_8hh__incl.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/libddd.html/map_8hh__incl.md5 b/libddd.html/map_8hh__incl.md5 new file mode 100644 index 000000000..589f8a6ef --- /dev/null +++ b/libddd.html/map_8hh__incl.md5 @@ -0,0 +1 @@ +1a103993fdfc498998f23fe73829334c \ No newline at end of file diff --git a/libddd.html/map_8hh__incl.png b/libddd.html/map_8hh__incl.png new file mode 100644 index 000000000..0132a2d9f Binary files /dev/null and b/libddd.html/map_8hh__incl.png differ diff --git a/libddd.html/map_8hh_source.html b/libddd.html/map_8hh_source.html new file mode 100644 index 000000000..3ed51f49e --- /dev/null +++ b/libddd.html/map_8hh_source.html @@ -0,0 +1,88 @@ + + + + + + + +DDD: util/map.hh Source File + + + + + + +
+
+ + + + + + +
+
DDD +  1.9.0.20230925141806 +
+
+
+ + + + + + + +
+
+
+
map.hh
+
+
+Go to the documentation of this file.
1 #ifndef _MAP_HH_
+
2 #define _MAP_HH_
+
3 
+
4 #include <map>
+
5 #include <utility>
+
6 
+ +
8 
+
9 namespace d3 { namespace util
+
10 {
+
11 
+
12 template
+
13  <
+
14  typename Key
+
15  , typename Data
+
16  , typename Compare = std::less<Key>
+
17  , typename Allocator = typename conf::allocator< std::pair<const Key, Data> >::type
+
18  >
+
19 struct map
+
20 {
+
21  typedef typename std::map<Key,Data,Compare,Allocator> type;
+
22 };
+
23 
+
24 }} // namespace d3::util
+
25 
+
26 #endif /* _MAP_HH_ */
+ +
Definition: Hom.cpp:41
+
Definition: configuration.hh:38
+
Definition: map.hh:20
+
std::map< Key, Data, Compare, Allocator > type
Definition: map.hh:21
+
+
+Please comment this page and report errors about it on +the RefDocComments page. +
+Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
+ + diff --git a/libddd.html/menu.js b/libddd.html/menu.js new file mode 100644 index 000000000..2fe2214f2 --- /dev/null +++ b/libddd.html/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/libddd.html/menudata.js b/libddd.html/menudata.js new file mode 100644 index 000000000..28bee3f42 --- /dev/null +++ b/libddd.html/menudata.js @@ -0,0 +1,190 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"a",url:"namespacemembers.html#index_a"}, +{text:"c",url:"namespacemembers.html#index_c"}, +{text:"f",url:"namespacemembers.html#index_f"}, +{text:"g",url:"namespacemembers.html#index_g"}, +{text:"h",url:"namespacemembers.html#index_h"}, +{text:"i",url:"namespacemembers.html#index_i"}, +{text:"k",url:"namespacemembers.html#index_k"}, +{text:"m",url:"namespacemembers.html#index_m"}, +{text:"o",url:"namespacemembers.html#index_o"}, +{text:"p",url:"namespacemembers.html#index_p"}, +{text:"r",url:"namespacemembers.html#index_r"}, +{text:"s",url:"namespacemembers.html#index_s"}, +{text:"t",url:"namespacemembers.html#index_t"}, +{text:"w",url:"namespacemembers.html#index_w"}]}, +{text:"Functions",url:"namespacemembers_func.html"}, +{text:"Variables",url:"namespacemembers_vars.html"}, +{text:"Typedefs",url:"namespacemembers_type.html"}]}]}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"_",url:"functions.html#index__5F"}, +{text:"a",url:"functions_a.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"_",url:"functions_func.html#index__5F"}, +{text:"a",url:"functions_func_a.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"_",url:"functions_vars.html#index__5F"}, +{text:"a",url:"functions_vars_a.html#index_a"}, +{text:"c",url:"functions_vars_c.html#index_c"}, +{text:"d",url:"functions_vars_d.html#index_d"}, +{text:"e",url:"functions_vars_e.html#index_e"}, +{text:"f",url:"functions_vars_f.html#index_f"}, +{text:"g",url:"functions_vars_g.html#index_g"}, +{text:"h",url:"functions_vars_h.html#index_h"}, +{text:"i",url:"functions_vars_i.html#index_i"}, +{text:"l",url:"functions_vars_l.html#index_l"}, +{text:"m",url:"functions_vars_m.html#index_m"}, +{text:"n",url:"functions_vars_n.html#index_n"}, +{text:"o",url:"functions_vars_o.html#index_o"}, +{text:"p",url:"functions_vars_p.html#index_p"}, +{text:"r",url:"functions_vars_r.html#index_r"}, +{text:"s",url:"functions_vars_s.html#index_s"}, +{text:"t",url:"functions_vars_t.html#index_t"}, +{text:"u",url:"functions_vars_u.html#index_u"}, +{text:"v",url:"functions_vars_v.html#index_v"}]}, +{text:"Typedefs",url:"functions_type.html",children:[ +{text:"c",url:"functions_type.html#index_c"}, +{text:"e",url:"functions_type.html#index_e"}, +{text:"g",url:"functions_type.html#index_g"}, +{text:"h",url:"functions_type.html#index_h"}, +{text:"i",url:"functions_type.html#index_i"}, +{text:"m",url:"functions_type.html#index_m"}, +{text:"n",url:"functions_type.html#index_n"}, +{text:"p",url:"functions_type.html#index_p"}, +{text:"r",url:"functions_type.html#index_r"}, +{text:"s",url:"functions_type.html#index_s"}, +{text:"t",url:"functions_type.html#index_t"}, +{text:"v",url:"functions_type.html#index_v"}]}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html"}, +{text:"Related Functions",url:"functions_rela.html",children:[ +{text:"_",url:"functions_rela.html#index__5F"}, +{text:"a",url:"functions_rela.html#index_a"}, +{text:"c",url:"functions_rela.html#index_c"}, +{text:"d",url:"functions_rela.html#index_d"}, +{text:"e",url:"functions_rela.html#index_e"}, +{text:"f",url:"functions_rela.html#index_f"}, +{text:"g",url:"functions_rela.html#index_g"}, +{text:"h",url:"functions_rela.html#index_h"}, +{text:"l",url:"functions_rela.html#index_l"}, +{text:"m",url:"functions_rela.html#index_m"}, +{text:"o",url:"functions_rela.html#index_o"}, +{text:"s",url:"functions_rela.html#index_s"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"b",url:"globals.html#index_b"}, +{text:"c",url:"globals.html#index_c"}, +{text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, +{text:"f",url:"globals.html#index_f"}, +{text:"g",url:"globals.html#index_g"}, +{text:"h",url:"globals.html#index_h"}, +{text:"i",url:"globals.html#index_i"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"o",url:"globals.html#index_o"}, +{text:"p",url:"globals.html#index_p"}, +{text:"r",url:"globals.html#index_r"}, +{text:"s",url:"globals.html#index_s"}, +{text:"t",url:"globals.html#index_t"}, +{text:"u",url:"globals.html#index_u"}, +{text:"v",url:"globals.html#index_v"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"a",url:"globals_func.html#index_a"}, +{text:"b",url:"globals_func.html#index_b"}, +{text:"c",url:"globals_func.html#index_c"}, +{text:"e",url:"globals_func.html#index_e"}, +{text:"f",url:"globals_func.html#index_f"}, +{text:"i",url:"globals_func.html#index_i"}, +{text:"l",url:"globals_func.html#index_l"}, +{text:"m",url:"globals_func.html#index_m"}, +{text:"n",url:"globals_func.html#index_n"}, +{text:"o",url:"globals_func.html#index_o"}, +{text:"p",url:"globals_func.html#index_p"}, +{text:"r",url:"globals_func.html#index_r"}, +{text:"s",url:"globals_func.html#index_s"}, +{text:"t",url:"globals_func.html#index_t"}, +{text:"v",url:"globals_func.html#index_v"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/libddd.html/modules.html b/libddd.html/modules.html new file mode 100644 index 000000000..f25ebf23e --- /dev/null +++ b/libddd.html/modules.html @@ -0,0 +1,58 @@ + + + + + + + +DDD: Modules + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    Modules
    +
    +
    +
    Here is a list of all modules:
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceDED.html b/libddd.html/namespaceDED.html new file mode 100644 index 000000000..612ae0d4c --- /dev/null +++ b/libddd.html/namespaceDED.html @@ -0,0 +1,197 @@ + + + + + + + +DDD: DED Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    DED Namespace Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Functions

    size_t peak ()
     
    void garbage ()
     
    GDDD add (const std::set< GDDD > &s)
     
    GDDD add (const d3::set< GDDD >::type &)
     
    unsigned int statistics ()
     
    void pstats (bool reinit=true)
     
    +

    Function Documentation

    + +

    ◆ add() [1/2]

    + +
    +
    + + + + + + + + +
    GDDD DED::add (const d3::set< GDDD >::type & )
    +
    + +
    +
    + +

    ◆ add() [2/2]

    + + + +

    ◆ garbage()

    + +
    +
    + + + + + + + +
    void DED::garbage ()
    +
    +
    + +

    ◆ peak()

    + +
    +
    + + + + + + + +
    size_t DED::peak ()
    +
    + +

    References DEDpeak, UniqueTable< T >::table, and uniqueDED.

    + +

    Referenced by Statistic::load().

    + +
    +
    + +

    ◆ pstats()

    + +
    +
    + + + + + + + + +
    void DED::pstats (bool reinit = true)
    +
    + +

    References cache, Hits, Misses, UniqueTable< T >::size(), and uniqueDED.

    + +

    Referenced by MemoryManager::pstats().

    + +
    +
    + +

    ◆ statistics()

    + +
    +
    + + + + + + + +
    unsigned int DED::statistics ()
    +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceSDDutil.html b/libddd.html/namespaceSDDutil.html new file mode 100644 index 000000000..1ffac3a27 --- /dev/null +++ b/libddd.html/namespaceSDDutil.html @@ -0,0 +1,119 @@ + + + + + + + +DDD: SDDutil Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    SDDutil Namespace Reference
    +
    +
    + +

    Namespace declared to hide these functions. +More...

    + + + + + + + + +

    +Functions

    UniqueTable< _GSDD > * getTable ()
     accessor to UniqueTable instance declared in cpp file, (hem, please don't touch it). More...
     
    void foreachTable (void(*foo)(const GSDD &g))
     Iterator over the entries of the table, applies foo to each entry in the table. More...
     
    +

    Detailed Description

    +

    Namespace declared to hide these functions.

    +

    It is not very nice to access unicity table directly, these functions were exposed to allow graphical dot export of the unicity table contents.

    +

    Function Documentation

    + +

    ◆ foreachTable()

    + +
    +
    + + + + + + + + +
    void SDDutil::foreachTable (void(*)(const GSDD &g) foo)
    +
    + +

    Iterator over the entries of the table, applies foo to each entry in the table.

    +

    This was declared for dot export, I do not think it is very useful in general.

    + +

    References canonical.

    + +

    Referenced by exportUniqueTable().

    + +
    +
    + +

    ◆ getTable()

    + +
    +
    + + + + + + + +
    UniqueTable< _GSDD > * SDDutil::getTable ()
    +
    + +

    accessor to UniqueTable instance declared in cpp file, (hem, please don't touch it).

    +
    Todo:
    implement nice generic dot export and eliminate this.
    + +

    References canonical.

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceSDED.html b/libddd.html/namespaceSDED.html new file mode 100644 index 000000000..41a23ae03 --- /dev/null +++ b/libddd.html/namespaceSDED.html @@ -0,0 +1,177 @@ + + + + + + + +DDD: SDED Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    SDED Namespace Reference
    +
    +
    + + + + + + + + + + + + +

    +Functions

    GSDD add (const d3::set< GSDD >::type &)
     
    unsigned int statistics ()
     
    void pstats (bool reinit=true)
     
    size_t peak ()
     
    void garbage ()
     
    +

    Function Documentation

    + +

    ◆ add()

    + + + +

    ◆ garbage()

    + +
    +
    + + + + + + + +
    void SDED::garbage ()
    +
    +
    + +

    ◆ peak()

    + +
    +
    + + + + + + + +
    size_t SDED::peak ()
    +
    +
    + +

    ◆ pstats()

    + +
    +
    + + + + + + + + +
    void SDED::pstats (bool reinit = true)
    +
    +
    + +

    ◆ statistics()

    + +
    +
    + + + + + + + +
    unsigned int SDED::statistics ()
    +
    + +

    References UniqueTable< T >::size(), and uniqueSDED.

    + +

    Referenced by Statistic::load(), and MemoryManager::nbSDED().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceconf.html b/libddd.html/namespaceconf.html new file mode 100644 index 000000000..5d806a649 --- /dev/null +++ b/libddd.html/namespaceconf.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: conf Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    conf Namespace Reference
    +
    +
    + + + + +

    +Classes

    struct  allocator
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaced3.html b/libddd.html/namespaced3.html new file mode 100644 index 000000000..e6e977f94 --- /dev/null +++ b/libddd.html/namespaced3.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: d3 Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    d3 Namespace Reference
    +
    +
    + + + + +

    +Namespaces

     util
     
    + + + + + + + + + +

    +Classes

    class  init
     
    struct  hash_set
     
    struct  set
     
    struct  multiset
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaced3_1_1util.html b/libddd.html/namespaced3_1_1util.html new file mode 100644 index 000000000..9f732385a --- /dev/null +++ b/libddd.html/namespaced3_1_1util.html @@ -0,0 +1,107 @@ + + + + + + + +DDD: d3::util Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  equal< _GHom * >
     
    struct  equal< _MLHom * >
     
    struct  equal< _MLShom * >
     
    struct  equal< _GShom * >
     
    struct  hash
     
    struct  equal
     
    struct  hash< T * >
     
    struct  equal< T * >
     
    struct  hash< int >
     
    struct  hash< std::pair< T1, T2 > >
     
    struct  hash< std::set< T1 > >
     
    struct  hash< const std::vector< int > >
     
    struct  hash< std::vector< int > >
     
    struct  hash< const std::vector< short > >
     
    struct  hash< std::vector< short > >
     
    struct  hash< std::vector< int > * >
     
    struct  hash< const std::vector< int > * >
     
    struct  equal< std::pair< T1, T2 > >
     
    struct  hash< std::string >
     
    struct  equal< std::string >
     
    struct  map
     
    struct  vector
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceddd.html b/libddd.html/namespaceddd.html new file mode 100644 index 000000000..168172f79 --- /dev/null +++ b/libddd.html/namespaceddd.html @@ -0,0 +1,68 @@ + + + + + + + +DDD: ddd Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    ddd Namespace Reference
    +
    +
    + + + + + + + + + + + +

    +Functions

    size_t wang32_hash (size_t key)
     Thomas Wang's 32 bit hash function. More...
     
    uint32_t int32_hash (uint32_t a)
     Another of Wang's fast hash with a magic number. More...
     
    size_t knuth32_hash (size_t key)
     Knuth's Multiplicative hash function. More...
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacefobs.html b/libddd.html/namespacefobs.html new file mode 100644 index 000000000..f0585b769 --- /dev/null +++ b/libddd.html/namespacefobs.html @@ -0,0 +1,144 @@ + + + + + + + +DDD: fobs Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    fobs Namespace Reference
    +
    +
    + + + + + + +

    +Classes

    class  DefaultObserver
     
    class  FixObserver
     
    + + + + + +

    +Functions

    void set_fixobserver (FixObserver *o)
     
    FixObserverget_fixobserver ()
     
    + + + +

    +Variables

    static FixObserverobs = NULL
     
    +

    Function Documentation

    + +

    ◆ get_fixobserver()

    + +
    +
    + + + + + + + +
    FixObserver * fobs::get_fixobserver ()
    +
    +
    + +

    ◆ set_fixobserver()

    + +
    +
    + + + + + + + + +
    void fobs::set_fixobserver (FixObservero)
    +
    + +

    References obs.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ obs

    + +
    +
    + + + + + +
    + + + + +
    FixObserver* fobs::obs = NULL
    +
    +static
    +
    + +

    Referenced by get_fixobserver(), and set_fixobserver().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacemembers.html b/libddd.html/namespacemembers.html new file mode 100644 index 000000000..56c43b418 --- /dev/null +++ b/libddd.html/namespacemembers.html @@ -0,0 +1,194 @@ + + + + + + + +DDD: Namespace Members + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - a -

    + + +

    - c -

      +
    • cache +: sns +
    • +
    • canonical +: sns +
    • +
    + + +

    - f -

    + + +

    - g -

    + + +

    - h -

    + + +

    - i -

      +
    • imgcache +: sns +
    • +
    • int32_hash() +: ddd +
    • +
    + + +

    - k -

      +
    • knuth32_hash() +: ddd +
    • +
    + + +

    - m -

    + + +

    - o -

    + + +

    - p -

    + + +

    - r -

      +
    • recFireSat() +: sns +
    • +
    + + +

    - s -

      +
    • set_fixobserver() +: fobs +
    • +
    • statistics() +: DED +, SDED +
    • +
    + + +

    - t -

      +
    • testShouldInterrupt() +: sns +
    • +
    • testWasInterrupt() +: sns +
    • +
    + + +

    - w -

      +
    • wang32_hash() +: ddd +
    • +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacemembers_func.html b/libddd.html/namespacemembers_func.html new file mode 100644 index 000000000..1838e4522 --- /dev/null +++ b/libddd.html/namespacemembers_func.html @@ -0,0 +1,113 @@ + + + + + + + +DDD: Namespace Members + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
      +
    • add() +: DED +, SDED +
    • +
    • foreachTable() +: SDDutil +
    • +
    • garbage() +: DED +, SDED +
    • +
    • get_fixobserver() +: fobs +
    • +
    • getIdentity() +: sns +
    • +
    • getResidentMemory() +: process +
    • +
    • getTable() +: SDDutil +
    • +
    • getTotalTime() +: process +
    • +
    • int32_hash() +: ddd +
    • +
    • knuth32_hash() +: ddd +
    • +
    • MemoryUsed() +: process +
    • +
    • peak() +: DED +, SDED +
    • +
    • pstats() +: DED +, SDED +
    • +
    • recFireSat() +: sns +
    • +
    • set_fixobserver() +: fobs +
    • +
    • statistics() +: DED +, SDED +
    • +
    • testShouldInterrupt() +: sns +
    • +
    • testWasInterrupt() +: sns +
    • +
    • wang32_hash() +: ddd +
    • +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacemembers_type.html b/libddd.html/namespacemembers_type.html new file mode 100644 index 000000000..b38eab03e --- /dev/null +++ b/libddd.html/namespacemembers_type.html @@ -0,0 +1,54 @@ + + + + + + + +DDD: Namespace Members + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacemembers_vars.html b/libddd.html/namespacemembers_vars.html new file mode 100644 index 000000000..d66463c8f --- /dev/null +++ b/libddd.html/namespacemembers_vars.html @@ -0,0 +1,75 @@ + + + + + + + +DDD: Namespace Members + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacenamespace__SDED.html b/libddd.html/namespacenamespace__SDED.html new file mode 100644 index 000000000..569caef1d --- /dev/null +++ b/libddd.html/namespacenamespace__SDED.html @@ -0,0 +1,138 @@ + + + + + + + +DDD: namespace_SDED Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    namespace_SDED Namespace Reference
    +
    +
    + + + + + + + + +

    +Variables

    static int Hits =0
     
    static int Misses =0
     
    static size_t Max_SDED =0
     
    +

    Variable Documentation

    + +

    ◆ Hits

    + +
    +
    + + + + + +
    + + + + +
    int namespace_SDED::Hits =0
    +
    +static
    +
    + +

    Referenced by SDED::pstats().

    + +
    +
    + +

    ◆ Max_SDED

    + +
    +
    + + + + + +
    + + + + +
    size_t namespace_SDED::Max_SDED =0
    +
    +static
    +
    + +

    Referenced by SDED::garbage(), SDED::peak(), and SDED::pstats().

    + +
    +
    + +

    ◆ Misses

    + +
    +
    + + + + + +
    + + + + +
    int namespace_SDED::Misses =0
    +
    +static
    +
    + +

    Referenced by SDED::pstats().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacensMLHom.html b/libddd.html/namespacensMLHom.html new file mode 100644 index 000000000..42214a81a --- /dev/null +++ b/libddd.html/namespacensMLHom.html @@ -0,0 +1,121 @@ + + + + + + + +DDD: nsMLHom Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    nsMLHom Namespace Reference
    +
    +
    + + + + + + + + + + + + +

    +Classes

    class  Identity
     
    class  Add
     
    class  GHomAdapter
     
    class  ConstantUp
     
    class  LeftConcat
     
    + + + +

    +Typedefs

    typedef MLCache< MLHom, GDDD, HomNodeMapMLHomCache
     
    + + + +

    +Variables

    static MLHomCache mlcache
     
    +

    Typedef Documentation

    + +

    ◆ MLHomCache

    + +
    +
    + + + + +
    typedef MLCache< MLHom, GDDD, HomNodeMap > nsMLHom::MLHomCache
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ mlcache

    + +
    +
    + + + + + +
    + + + + +
    MLHomCache nsMLHom::mlcache
    +
    +static
    +
    + +

    Referenced by MLHom::garbage(), and MLHom::operator()().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacensMLShom.html b/libddd.html/namespacensMLShom.html new file mode 100644 index 000000000..febb028c0 --- /dev/null +++ b/libddd.html/namespacensMLShom.html @@ -0,0 +1,69 @@ + + + + + + + +DDD: nsMLShom Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    nsMLShom Namespace Reference
    +
    +
    + + + + + + + + + + + + +

    +Classes

    class  Identity
     
    class  Add
     
    class  GShomAdapter
     
    class  ConstantUp
     
    class  LeftConcat
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceprocess.html b/libddd.html/namespaceprocess.html new file mode 100644 index 000000000..3e5380556 --- /dev/null +++ b/libddd.html/namespaceprocess.html @@ -0,0 +1,129 @@ + + + + + + + +DDD: process Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    process Namespace Reference
    +
    +
    + + + + + + + + + +

    +Functions

    double getTotalTime ()
     
    unsigned long MemoryUsed (void)
     
    size_t getResidentMemory ()
     in Bytes More...
     
    +

    Function Documentation

    + +

    ◆ getResidentMemory()

    + +
    +
    + + + + + + + +
    size_t process::getResidentMemory ()
    +
    + +

    in Bytes

    + +

    References MemoryUsed().

    + +

    Referenced by Statistic::load(), and MemoryManager::should_garbage().

    + +
    +
    + +

    ◆ getTotalTime()

    + +
    +
    + + + + + + + +
    double process::getTotalTime ()
    +
    + +

    Referenced by Statistic::load().

    + +
    +
    + +

    ◆ MemoryUsed()

    + +
    +
    + + + + + + + + +
    unsigned long process::MemoryUsed (void )
    +
    + +

    Referenced by getResidentMemory().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaces.html b/libddd.html/namespaces.html new file mode 100644 index 000000000..02241d011 --- /dev/null +++ b/libddd.html/namespaces.html @@ -0,0 +1,137 @@ + + + + + + + +DDD: Namespace List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all namespaces with brief descriptions:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Nconf
     Callocator
     Nd3
     Nutil
     Cequal< _GHom * >
     Cequal< _MLHom * >
     Cequal< _MLShom * >
     Cequal< _GShom * >
     Chash
     Cequal
     Chash< T * >
     Cequal< T * >
     Chash< int >
     Chash< std::pair< T1, T2 > >
     Chash< std::set< T1 > >
     Chash< const std::vector< int > >
     Chash< std::vector< int > >
     Chash< const std::vector< short > >
     Chash< std::vector< short > >
     Chash< std::vector< int > * >
     Chash< const std::vector< int > * >
     Cequal< std::pair< T1, T2 > >
     Chash< std::string >
     Cequal< std::string >
     Cmap
     Cvector
     Cinit
     Chash_set
     Cset
     Cmultiset
     Nddd
     NDED
     Nfobs
     CDefaultObserver
     CFixObserver
     Nnamespace_SDED
     NnsMLHom
     CIdentity
     CAdd
     CGHomAdapter
     CConstantUp
     CLeftConcat
     NnsMLShom
     CIdentity
     CAdd
     CGShomAdapter
     CConstantUp
     CLeftConcat
     Nprocess
     NSDDutilNamespace declared to hide these functions
     NSDED
     Nsns
     CIdentity
     CConstant
     CSApply2k
     CMult
     CInter
     CSDomExtractExtractor of variable domains for invert computations
     CLocalApply
     CSLocalApply
     CSNotCond
     CAndA commutative composition of n homomorphisms
     CAdd
     Cpartition
     CRecFireSat
     CCompose
     CLeftConcat
     CRightConcat
     CMinus
     CHomMinus
     CFixpoint
     CMLShomAdapter
     Nstd
     Cless< GDDD >Compares two DDD in hash tables
     Cless< GHom >Compares two GHom in hash tables
     Cless< GSDD >Compares two SDD in hash tables
     Cless< GShom >Compares two GShom in hash tables
     Nunique
     Cclone
     Cclone< std::vector< int > >
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacesns.html b/libddd.html/namespacesns.html new file mode 100644 index 000000000..ad3d6a012 --- /dev/null +++ b/libddd.html/namespacesns.html @@ -0,0 +1,314 @@ + + + + + + + +DDD: sns Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    sns Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    class  Identity
     
    class  Constant
     
    class  SApply2k
     
    class  Mult
     
    class  Inter
     
    class  SDomExtract
     Extractor of variable domains for invert computations. More...
     
    class  LocalApply
     
    class  SLocalApply
     
    class  SNotCond
     
    class  And
     A commutative composition of n homomorphisms. More...
     
    class  Add
     
    class  RecFireSat
     
    class  Compose
     
    class  LeftConcat
     
    class  RightConcat
     
    class  Minus
     
    class  HomMinus
     
    class  Fixpoint
     
    class  MLShomAdapter
     
    + + + + + + + + + +

    +Functions

    const _GShomgetIdentity ()
     
    bool testWasInterrupt (bool can_garbage, const GSDD &d1, const GSDD &d2)
     
    bool testShouldInterrupt (bool can_garbage, const GSDD &d1, const GSDD &d2)
     
    GShom recFireSat (const GShom &sat, const GShom &lf)
     
    + + + + + + + +

    +Variables

    UniqueTable< _GShomcanonical
     
    static ShomCache cache
     
    static ImgShomCache imgcache
     
    +

    Function Documentation

    + +

    ◆ getIdentity()

    + +
    +
    + + + + + + + +
    const _GShom * sns::getIdentity ()
    +
    + +

    References canonical.

    + +
    +
    + +

    ◆ recFireSat()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    GShom sns::recFireSat (const GShomsat,
    const GShomlf 
    )
    +
    + +

    References _GShom::get_concret().

    + +

    Referenced by sns::RecFireSat::eval(), and sns::Fixpoint::eval().

    + +
    +
    + +

    ◆ testShouldInterrupt()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    bool sns::testShouldInterrupt (bool can_garbage,
    const GSDDd1,
    const GSDDd2 
    )
    +
    +
    + +

    ◆ testWasInterrupt()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    bool sns::testWasInterrupt (bool can_garbage,
    const GSDDd1,
    const GSDDd2 
    )
    +
    + +

    References fobs::get_fixobserver().

    + +

    Referenced by sns::Fixpoint::eval().

    + +
    +
    +

    Variable Documentation

    + +

    ◆ cache

    + +
    +
    + + + + + +
    + + + + +
    ShomCache sns::cache
    +
    +static
    +
    +
    + +

    ◆ canonical

    + +
    +
    + + + + +
    UniqueTable< _GShom > sns::canonical
    +
    + +

    Referenced by getIdentity().

    + +
    +
    + +

    ◆ imgcache

    + +
    +
    + + + + + +
    + + + + +
    ImgShomCache sns::imgcache
    +
    +static
    +
    + +

    Referenced by GShom::garbage(), and GShom::has_image().

    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespacestd.html b/libddd.html/namespacestd.html new file mode 100644 index 000000000..6edfbd18a --- /dev/null +++ b/libddd.html/namespacestd.html @@ -0,0 +1,71 @@ + + + + + + + +DDD: std Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    std Namespace Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Classes

    struct  less< GDDD >
     Compares two DDD in hash tables. More...
     
    struct  less< GHom >
     Compares two GHom in hash tables. More...
     
    struct  less< GSDD >
     Compares two SDD in hash tables. More...
     
    struct  less< GShom >
     Compares two GShom in hash tables. More...
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/namespaceunique.html b/libddd.html/namespaceunique.html new file mode 100644 index 000000000..d8a43e3b0 --- /dev/null +++ b/libddd.html/namespaceunique.html @@ -0,0 +1,63 @@ + + + + + + + +DDD: unique Namespace Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    unique Namespace Reference
    +
    +
    + + + + + + +

    +Classes

    struct  clone
     
    struct  clone< std::vector< int > >
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/nav_f.png b/libddd.html/nav_f.png new file mode 100644 index 000000000..72a58a529 Binary files /dev/null and b/libddd.html/nav_f.png differ diff --git a/libddd.html/nav_g.png b/libddd.html/nav_g.png new file mode 100644 index 000000000..2093a237a Binary files /dev/null and b/libddd.html/nav_g.png differ diff --git a/libddd.html/nav_h.png b/libddd.html/nav_h.png new file mode 100644 index 000000000..33389b101 Binary files /dev/null and b/libddd.html/nav_h.png differ diff --git a/libddd.html/open.png b/libddd.html/open.png new file mode 100644 index 000000000..30f75c7ef Binary files /dev/null and b/libddd.html/open.png differ diff --git a/libddd.html/pages.html b/libddd.html/pages.html new file mode 100644 index 000000000..52962c55f --- /dev/null +++ b/libddd.html/pages.html @@ -0,0 +1,58 @@ + + + + + + + +DDD: Related Pages + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     Todo List
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/process_8cpp.html b/libddd.html/process_8cpp.html new file mode 100644 index 000000000..7a066686f --- /dev/null +++ b/libddd.html/process_8cpp.html @@ -0,0 +1,118 @@ + + + + + + + +DDD: process.cpp File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    process.cpp File Reference
    +
    +
    +
    #include "process.hpp"
    +#include <time.h>
    +#include <string>
    +#include <cstdio>
    +#include <cstdlib>
    +#include <iostream>
    +#include <mach/mach_init.h>
    +#include <mach/task.h>
    +
    +Include dependency graph for process.cpp:
    +
    +
    + + + + + + + + + + + + +
    +
    + + + +

    +Namespaces

     process
     
    + + + +

    +Macros

    #define OS_APPLE   1
     
    + + + + + + + + +

    +Functions

    double process::getTotalTime ()
     
    unsigned long process::MemoryUsed (void)
     
    size_t process::getResidentMemory ()
     in Bytes More...
     
    +

    Macro Definition Documentation

    + +

    ◆ OS_APPLE

    + +
    +
    + + + + +
    #define OS_APPLE   1
    +
    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/process_8cpp__incl.map b/libddd.html/process_8cpp__incl.map new file mode 100644 index 000000000..eb33853bc --- /dev/null +++ b/libddd.html/process_8cpp__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/libddd.html/process_8cpp__incl.md5 b/libddd.html/process_8cpp__incl.md5 new file mode 100644 index 000000000..f548b8659 --- /dev/null +++ b/libddd.html/process_8cpp__incl.md5 @@ -0,0 +1 @@ +fc13bb8071cabbee14f1b2e8922b2201 \ No newline at end of file diff --git a/libddd.html/process_8cpp__incl.png b/libddd.html/process_8cpp__incl.png new file mode 100644 index 000000000..c2d08f098 Binary files /dev/null and b/libddd.html/process_8cpp__incl.png differ diff --git a/libddd.html/process_8hpp.html b/libddd.html/process_8hpp.html new file mode 100644 index 000000000..55d0533b1 --- /dev/null +++ b/libddd.html/process_8hpp.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: process.hpp File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    process.hpp File Reference
    +
    +
    +
    #include <stddef.h>
    +
    +Include dependency graph for process.hpp:
    +
    +
    + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Namespaces

     process
     
    + + + + + + +

    +Functions

    double process::getTotalTime ()
     
    size_t process::getResidentMemory ()
     in Bytes More...
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/process_8hpp__dep__incl.map b/libddd.html/process_8hpp__dep__incl.map new file mode 100644 index 000000000..e6dffcde9 --- /dev/null +++ b/libddd.html/process_8hpp__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/libddd.html/process_8hpp__dep__incl.md5 b/libddd.html/process_8hpp__dep__incl.md5 new file mode 100644 index 000000000..db3a38654 --- /dev/null +++ b/libddd.html/process_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +32abe7bc297106a3b7382daf54541afc \ No newline at end of file diff --git a/libddd.html/process_8hpp__dep__incl.png b/libddd.html/process_8hpp__dep__incl.png new file mode 100644 index 000000000..68aef0553 Binary files /dev/null and b/libddd.html/process_8hpp__dep__incl.png differ diff --git a/libddd.html/process_8hpp__incl.map b/libddd.html/process_8hpp__incl.map new file mode 100644 index 000000000..14c2efb7a --- /dev/null +++ b/libddd.html/process_8hpp__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/process_8hpp__incl.md5 b/libddd.html/process_8hpp__incl.md5 new file mode 100644 index 000000000..da3178571 --- /dev/null +++ b/libddd.html/process_8hpp__incl.md5 @@ -0,0 +1 @@ +7db571220ca4c92d83f402a76a10f703 \ No newline at end of file diff --git a/libddd.html/process_8hpp__incl.png b/libddd.html/process_8hpp__incl.png new file mode 100644 index 000000000..643588900 Binary files /dev/null and b/libddd.html/process_8hpp__incl.png differ diff --git a/libddd.html/process_8hpp_source.html b/libddd.html/process_8hpp_source.html new file mode 100644 index 000000000..c1372926f --- /dev/null +++ b/libddd.html/process_8hpp_source.html @@ -0,0 +1,73 @@ + + + + + + + +DDD: process.hpp Source File + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    process.hpp
    +
    +
    +Go to the documentation of this file.
    1 #ifndef __PROCESS_H__
    +
    2 #define __PROCESS_H__
    +
    3 
    +
    4 // for size_t
    +
    5 #include <stddef.h>
    +
    6 
    +
    7 
    +
    8 namespace process {
    +
    9 
    +
    10  // rely on "times"
    +
    11  double getTotalTime ();
    +
    12 
    +
    13  size_t getResidentMemory () ;
    +
    14 
    +
    15 }
    +
    16 
    +
    17 #endif
    +
    Definition: process.cpp:37
    +
    size_t getResidentMemory()
    in Bytes
    Definition: process.cpp:120
    +
    double getTotalTime()
    Definition: process.cpp:52
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/set_8hh.html b/libddd.html/set_8hh.html new file mode 100644 index 000000000..a88aa5282 --- /dev/null +++ b/libddd.html/set_8hh.html @@ -0,0 +1,124 @@ + + + + + + + +DDD: util/set.hh File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    set.hh File Reference
    +
    +
    +
    #include <set>
    +#include "ddd/util/configuration.hh"
    +
    +Include dependency graph for set.hh:
    +
    +
    + + + + + + + + + + + + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + + + +

    +Classes

    struct  d3::set< Key, Compare, Allocator >
     
    struct  d3::multiset< Key, Compare, Allocator >
     
    + + + +

    +Namespaces

     d3
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/set_8hh__dep__incl.map b/libddd.html/set_8hh__dep__incl.map new file mode 100644 index 000000000..0c190248a --- /dev/null +++ b/libddd.html/set_8hh__dep__incl.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/set_8hh__dep__incl.md5 b/libddd.html/set_8hh__dep__incl.md5 new file mode 100644 index 000000000..c62687bb0 --- /dev/null +++ b/libddd.html/set_8hh__dep__incl.md5 @@ -0,0 +1 @@ +98d1703d124a1181a58811f28d455abc \ No newline at end of file diff --git a/libddd.html/set_8hh__dep__incl.png b/libddd.html/set_8hh__dep__incl.png new file mode 100644 index 000000000..dbb7ae1a3 Binary files /dev/null and b/libddd.html/set_8hh__dep__incl.png differ diff --git a/libddd.html/set_8hh__incl.map b/libddd.html/set_8hh__incl.map new file mode 100644 index 000000000..8001536a0 --- /dev/null +++ b/libddd.html/set_8hh__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/libddd.html/set_8hh__incl.md5 b/libddd.html/set_8hh__incl.md5 new file mode 100644 index 000000000..121f8219a --- /dev/null +++ b/libddd.html/set_8hh__incl.md5 @@ -0,0 +1 @@ +20b7930f5a26906d62a9177673236e34 \ No newline at end of file diff --git a/libddd.html/set_8hh__incl.png b/libddd.html/set_8hh__incl.png new file mode 100644 index 000000000..28aa9b071 Binary files /dev/null and b/libddd.html/set_8hh__incl.png differ diff --git a/libddd.html/set_8hh_source.html b/libddd.html/set_8hh_source.html new file mode 100644 index 000000000..0987c90a8 --- /dev/null +++ b/libddd.html/set_8hh_source.html @@ -0,0 +1,102 @@ + + + + + + + +DDD: util/set.hh Source File + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    set.hh
    +
    +
    +Go to the documentation of this file.
    1 #ifndef _SET_HH_
    +
    2 #define _SET_HH_
    +
    3 
    +
    4 #include <set>
    +
    5 
    + +
    7 
    +
    8 namespace d3 {
    +
    9 
    +
    10 template
    +
    11  <
    +
    12  typename Key
    +
    13  , typename Compare = std::less<Key>
    +
    14  , typename Allocator = typename conf::allocator<Key>::type
    +
    15  >
    +
    16 struct set
    +
    17 {
    +
    18  typedef typename std::set<Key,Compare,Allocator> type;
    +
    19 };
    +
    20 
    +
    21 
    +
    22 template
    +
    23  <
    +
    24  typename Key
    +
    25  , typename Compare = std::less<Key>
    +
    26  , typename Allocator = typename conf::allocator<Key>::type
    +
    27  >
    +
    28 struct multiset
    +
    29 {
    +
    30  typedef typename std::multiset<Key,Compare,Allocator> type;
    +
    31 };
    +
    32 
    +
    33 
    +
    34 
    +
    35 
    +
    36 } // namespace d3
    +
    37 
    +
    38 #endif /* _SET_HH_ */
    + +
    Definition: Hom.cpp:41
    +
    std::allocator< T > type
    Definition: configuration.hh:39
    +
    Definition: set.hh:29
    +
    std::multiset< Key, Compare, Allocator > type
    Definition: set.hh:30
    +
    Definition: set.hh:17
    +
    std::set< Key, Compare, Allocator > type
    Definition: set.hh:18
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/splitbar.png b/libddd.html/splitbar.png new file mode 100644 index 000000000..fe895f2c5 Binary files /dev/null and b/libddd.html/splitbar.png differ diff --git a/libddd.html/statistic_8cpp.html b/libddd.html/statistic_8cpp.html new file mode 100644 index 000000000..deb5f4dfe --- /dev/null +++ b/libddd.html/statistic_8cpp.html @@ -0,0 +1,186 @@ + + + + + + + +DDD: statistic.cpp File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    statistic.cpp File Reference
    +
    +
    +
    #include "ddd/statistic.hpp"
    +#include "ddd/process.hpp"
    +#include "ddd/MemoryManager.h"
    +
    +Include dependency graph for statistic.cpp:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + +

    +Functions

    std::string remove_bad_latex (const std::string &s)
     
    + + + + + +

    +Variables

    static const char *const value_sep [] = {","," & "}
     
    static const char *const line_sep [] = {"\n","\\\\ \n \\hline \n"}
     
    +

    Function Documentation

    + +

    ◆ remove_bad_latex()

    + +
    +
    + + + + + + + + +
    std::string remove_bad_latex (const std::string & s)
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ line_sep

    + +
    +
    + + + + + +
    + + + + +
    const char* const line_sep[] = {"\n","\\\\ \n \\hline \n"}
    +
    +static
    +
    +
    + +

    ◆ value_sep

    + +
    +
    + + + + + +
    + + + + +
    const char* const value_sep[] = {","," & "}
    +
    +static
    +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/statistic_8cpp__incl.map b/libddd.html/statistic_8cpp__incl.map new file mode 100644 index 000000000..fdd3b2d10 --- /dev/null +++ b/libddd.html/statistic_8cpp__incl.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/statistic_8cpp__incl.md5 b/libddd.html/statistic_8cpp__incl.md5 new file mode 100644 index 000000000..1c7bfa541 --- /dev/null +++ b/libddd.html/statistic_8cpp__incl.md5 @@ -0,0 +1 @@ +bcec7c06fd4764a31af409357f43d185 \ No newline at end of file diff --git a/libddd.html/statistic_8cpp__incl.png b/libddd.html/statistic_8cpp__incl.png new file mode 100644 index 000000000..1cc89d89f Binary files /dev/null and b/libddd.html/statistic_8cpp__incl.png differ diff --git a/libddd.html/statistic_8hpp.html b/libddd.html/statistic_8hpp.html new file mode 100644 index 000000000..669396734 --- /dev/null +++ b/libddd.html/statistic_8hpp.html @@ -0,0 +1,133 @@ + + + + + + + +DDD: statistic.hpp File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    statistic.hpp File Reference
    +
    +
    +
    #include <iostream>
    +#include <string>
    +#include "ddd/SDD.h"
    +#include "ddd/DDD.h"
    +
    +Include dependency graph for statistic.hpp:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  Statistic
     
    + + + +

    +Enumerations

    enum  OutputType { CSV +, LATEX + }
     
    +

    Enumeration Type Documentation

    + +

    ◆ OutputType

    + +
    +
    + + + + +
    enum OutputType
    +
    + + + +
    Enumerator
    CSV 
    LATEX 
    + +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/statistic_8hpp__dep__incl.map b/libddd.html/statistic_8hpp__dep__incl.map new file mode 100644 index 000000000..1fa96ee18 --- /dev/null +++ b/libddd.html/statistic_8hpp__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/statistic_8hpp__dep__incl.md5 b/libddd.html/statistic_8hpp__dep__incl.md5 new file mode 100644 index 000000000..6292e82f0 --- /dev/null +++ b/libddd.html/statistic_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +0cb9bb0d40cbee35cabe8ff98deb4c15 \ No newline at end of file diff --git a/libddd.html/statistic_8hpp__dep__incl.png b/libddd.html/statistic_8hpp__dep__incl.png new file mode 100644 index 000000000..a77dacf82 Binary files /dev/null and b/libddd.html/statistic_8hpp__dep__incl.png differ diff --git a/libddd.html/statistic_8hpp__incl.map b/libddd.html/statistic_8hpp__incl.map new file mode 100644 index 000000000..3304921cc --- /dev/null +++ b/libddd.html/statistic_8hpp__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/statistic_8hpp__incl.md5 b/libddd.html/statistic_8hpp__incl.md5 new file mode 100644 index 000000000..ab9135e9d --- /dev/null +++ b/libddd.html/statistic_8hpp__incl.md5 @@ -0,0 +1 @@ +bb672e90d2fb56dee0f2f41ffb0861ba \ No newline at end of file diff --git a/libddd.html/statistic_8hpp__incl.png b/libddd.html/statistic_8hpp__incl.png new file mode 100644 index 000000000..276279a3e Binary files /dev/null and b/libddd.html/statistic_8hpp__incl.png differ diff --git a/libddd.html/statistic_8hpp_source.html b/libddd.html/statistic_8hpp_source.html new file mode 100644 index 000000000..7d90e4fce --- /dev/null +++ b/libddd.html/statistic_8hpp_source.html @@ -0,0 +1,161 @@ + + + + + + + +DDD: statistic.hpp Source File + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    statistic.hpp
    +
    +
    +Go to the documentation of this file.
    1 /****************************************************************************/
    +
    2 /* */
    +
    3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
    +
    4 /* */
    +
    5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
    +
    6 /* and Denis Poitrenaud */
    +
    7 /* */
    +
    8 /* This program is free software; you can redistribute it and/or modify */
    +
    9 /* it under the terms of the GNU Lesser General Public License as */
    +
    10 /* published by the Free Software Foundation; either version 3 of the */
    +
    11 /* License, or (at your option) any later version. */
    +
    12 /* This program is distributed in the hope that it will be useful, */
    +
    13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
    +
    14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
    +
    15 /* GNU LEsserGeneral Public License for more details. */
    +
    16 /* */
    +
    17 /* You should have received a copy of the GNU Lesser General Public License */
    +
    18 /* along with this program; if not, write to the Free Software */
    +
    19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
    +
    20 /* */
    +
    21 /****************************************************************************/
    +
    22 
    +
    23 #include <iostream>
    +
    24 #include <string>
    +
    25 #include "ddd/SDD.h"
    +
    26 #include "ddd/DDD.h"
    +
    27 
    +
    28 
    +
    29 
    +
    30 typedef enum {CSV, LATEX} OutputType;
    +
    31 
    +
    32 class Statistic {
    +
    34  long double nb_Stat;
    +
    36  long double DDD_size;
    +
    38  long double SDD_size;
    +
    40  long double DDD_peak_size;
    +
    42  long double SDD_peak_size;
    +
    44  double total_time;
    +
    46  size_t memory;
    +
    48  double nbHom;
    +
    50  double nbShom;
    +
    52  double ddd_cache;
    +
    54  double sdd_cache;
    +
    56  bool isPureDDD;
    + +
    60  std::string stat_name;
    +
    61 
    +
    63  size_t shom_cache;
    +
    64 
    +
    66  bool show_peak;
    +
    68  void load (const SDD & s);
    +
    70  void load (const DDD & s);
    +
    71 public:
    +
    72 
    +
    79  Statistic (const SDD & s, const std::string & name, OutputType style=LATEX, bool show_peak = true);
    +
    86  Statistic (const DDD & s, const std::string & name, OutputType style=LATEX, bool show_peak = true);
    +
    87 
    +
    90  void print_header (std::ostream & os);
    +
    91 
    +
    94  void print_trailer (std::ostream & os, bool withLegend=true);
    +
    95 
    +
    98  void print_line (std::ostream &os);
    +
    99 
    +
    103  void print_table (std::ostream & os);
    +
    104 
    +
    107  void print_legend (std::ostream & os);
    +
    108 
    + +
    111 
    +
    113  double getTime() const { return total_time; }
    +
    114  long double getNbStates () const { return nb_Stat; }
    +
    115 
    +
    116 };
    +
    117 
    + + +
    This class is the public interface for manipulating Data Decision Diagrams.
    Definition: DDD.h:255
    +
    This class is the public interface for manipulating Data Decision Diagrams.
    Definition: SDD.h:279
    +
    Definition: statistic.hpp:32
    +
    bool show_peak
    show peak
    Definition: statistic.hpp:66
    +
    long double SDD_size
    number of final SDD nodes
    Definition: statistic.hpp:38
    +
    long double getNbStates() const
    Definition: statistic.hpp:114
    +
    long double DDD_size
    number of final DDD nodes
    Definition: statistic.hpp:36
    +
    bool isPureDDD
    Mode : include SDD or not.
    Definition: statistic.hpp:56
    +
    Statistic(const SDD &s, const std::string &name, OutputType style=LATEX, bool show_peak=true)
    Create a statistic for the current SDD s, style LATEX by default.
    Definition: statistic.cpp:40
    +
    double nbShom
    SHom final.
    Definition: statistic.hpp:50
    +
    void print_table(std::ostream &os)
    Convenience print a table.
    Definition: statistic.cpp:139
    +
    OutputType style
    Mode : outputType.
    Definition: statistic.hpp:58
    +
    size_t shom_cache
    Size of SHom cache.
    Definition: statistic.hpp:63
    +
    double getTime() const
    Accessors.
    Definition: statistic.hpp:113
    +
    double nbHom
    Hom final.
    Definition: statistic.hpp:48
    +
    void print_line(std::ostream &os)
    Print a line for current statistic.
    Definition: statistic.cpp:113
    +
    long double nb_Stat
    number of final states
    Definition: statistic.hpp:34
    +
    double ddd_cache
    DDD cache.
    Definition: statistic.hpp:52
    +
    void print_header(std::ostream &os)
    Print column headers, using current style.
    Definition: statistic.cpp:83
    +
    double sdd_cache
    SDD cache peak.
    Definition: statistic.hpp:54
    +
    void setStyle(OutputType style)
    Setter for style.
    +
    void load(const SDD &s)
    load from a SDD
    Definition: statistic.cpp:48
    +
    long double SDD_peak_size
    peak DDD unicity table size
    Definition: statistic.hpp:42
    +
    void print_legend(std::ostream &os)
    Print a legend to the table.
    Definition: statistic.cpp:147
    +
    double total_time
    total time
    Definition: statistic.hpp:44
    +
    std::string stat_name
    Name of this statistic.
    Definition: statistic.hpp:60
    +
    long double DDD_peak_size
    peak DDD unicity table size
    Definition: statistic.hpp:40
    +
    size_t memory
    resident mem (kb)
    Definition: statistic.hpp:46
    +
    void print_trailer(std::ostream &os, bool withLegend=true)
    Print trailer.
    Definition: statistic.cpp:132
    +
    OutputType
    Definition: statistic.hpp:30
    +
    @ CSV
    Definition: statistic.hpp:30
    +
    @ LATEX
    Definition: statistic.hpp:30
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structUniqueTableId_1_1id__compare-members.html b/libddd.html/structUniqueTableId_1_1id__compare-members.html new file mode 100644 index 000000000..0725cdd36 --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__compare-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    UniqueTableId< T, ID >::id_compare Member List
    +
    +
    + +

    This is the complete list of members for UniqueTableId< T, ID >::id_compare, including all inherited members.

    + + +
    operator()(const id_t &id1, const id_t &id2) constUniqueTableId< T, ID >::id_compareinline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structUniqueTableId_1_1id__compare.html b/libddd.html/structUniqueTableId_1_1id__compare.html new file mode 100644 index 000000000..8d950f420 --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__compare.html @@ -0,0 +1,118 @@ + + + + + + + +DDD: UniqueTableId< T, ID >::id_compare Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    UniqueTableId< T, ID >::id_compare Struct Reference
    +
    +
    +
    +Collaboration diagram for UniqueTableId< T, ID >::id_compare:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const id_t &id1, const id_t &id2) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T , typename ID >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool UniqueTableId< T, ID >::id_compare::operator() (const id_tid1,
    const id_tid2 
    ) const
    +
    +inline
    +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.map b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.map new file mode 100644 index 000000000..39fa1ebba --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.md5 b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.md5 new file mode 100644 index 000000000..a5865345f --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.md5 @@ -0,0 +1 @@ +7cca8bfe8c9f0a1a63d354be49622b83 \ No newline at end of file diff --git a/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.png b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.png new file mode 100644 index 000000000..2b189b08b Binary files /dev/null and b/libddd.html/structUniqueTableId_1_1id__compare__coll__graph.png differ diff --git a/libddd.html/structUniqueTableId_1_1id__hash-members.html b/libddd.html/structUniqueTableId_1_1id__hash-members.html new file mode 100644 index 000000000..a0ee418af --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__hash-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    UniqueTableId< T, ID >::id_hash Member List
    +
    +
    + +

    This is the complete list of members for UniqueTableId< T, ID >::id_hash, including all inherited members.

    + + +
    operator()(const id_t &id) constUniqueTableId< T, ID >::id_hashinline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structUniqueTableId_1_1id__hash.html b/libddd.html/structUniqueTableId_1_1id__hash.html new file mode 100644 index 000000000..3d7e5e0a7 --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__hash.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: UniqueTableId< T, ID >::id_hash Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    UniqueTableId< T, ID >::id_hash Struct Reference
    +
    +
    +
    +Collaboration diagram for UniqueTableId< T, ID >::id_hash:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const id_t &id) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T , typename ID >
    + + + + + +
    + + + + + + + + +
    size_t UniqueTableId< T, ID >::id_hash::operator() (const id_tid) const
    +
    +inline
    +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.map b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.map new file mode 100644 index 000000000..44b2417c6 --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.md5 b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.md5 new file mode 100644 index 000000000..a31361132 --- /dev/null +++ b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.md5 @@ -0,0 +1 @@ +c0bfce0b5cfb750434498d13c4761b9f \ No newline at end of file diff --git a/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.png b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.png new file mode 100644 index 000000000..b793fa89a Binary files /dev/null and b/libddd.html/structUniqueTableId_1_1id__hash__coll__graph.png differ diff --git a/libddd.html/struct__GDDD_1_1custom__new__t.html b/libddd.html/struct__GDDD_1_1custom__new__t.html new file mode 100644 index 000000000..d0c18ed8a --- /dev/null +++ b/libddd.html/struct__GDDD_1_1custom__new__t.html @@ -0,0 +1,74 @@ + + + + + + + +DDD: _GDDD::custom_new_t Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    _GDDD::custom_new_t Struct Reference
    +
    +
    + +

    an empty struct tag type used to disambiguate between different variants of the operator new for _GDDD. + More...

    +
    +Collaboration diagram for _GDDD::custom_new_t:
    +
    +
    Collaboration graph
    + + + +
    +

    Detailed Description

    +

    an empty struct tag type used to disambiguate between different variants of the operator new for _GDDD.

    +

    The overload that do not use 'custom_new_t' is the classical placement new.

    +

    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.map b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.map new file mode 100644 index 000000000..bf5e0da57 --- /dev/null +++ b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.md5 b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.md5 new file mode 100644 index 000000000..500733bb7 --- /dev/null +++ b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.md5 @@ -0,0 +1 @@ +3e130902e2987cac7911fb2cfef41a2b \ No newline at end of file diff --git a/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.png b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.png new file mode 100644 index 000000000..630704a70 Binary files /dev/null and b/libddd.html/struct__GDDD_1_1custom__new__t__coll__graph.png differ diff --git a/libddd.html/structconf_1_1allocator-members.html b/libddd.html/structconf_1_1allocator-members.html new file mode 100644 index 000000000..d34142c75 --- /dev/null +++ b/libddd.html/structconf_1_1allocator-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    conf::allocator< T > Member List
    +
    +
    + +

    This is the complete list of members for conf::allocator< T >, including all inherited members.

    + + +
    type typedefconf::allocator< T >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structconf_1_1allocator.html b/libddd.html/structconf_1_1allocator.html new file mode 100644 index 000000000..34484f556 --- /dev/null +++ b/libddd.html/structconf_1_1allocator.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: conf::allocator< T > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    conf::allocator< T > Struct Template Reference
    +
    +
    + +

    #include <util/configuration.hh>

    +
    +Collaboration diagram for conf::allocator< T >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef std::allocator< T > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    typedef std::allocator<T> conf::allocator< T >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structconf_1_1allocator__coll__graph.map b/libddd.html/structconf_1_1allocator__coll__graph.map new file mode 100644 index 000000000..2fd27e149 --- /dev/null +++ b/libddd.html/structconf_1_1allocator__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structconf_1_1allocator__coll__graph.md5 b/libddd.html/structconf_1_1allocator__coll__graph.md5 new file mode 100644 index 000000000..5fa11b22b --- /dev/null +++ b/libddd.html/structconf_1_1allocator__coll__graph.md5 @@ -0,0 +1 @@ +8245ffb83281393bd8e884b9466f7f84 \ No newline at end of file diff --git a/libddd.html/structconf_1_1allocator__coll__graph.png b/libddd.html/structconf_1_1allocator__coll__graph.png new file mode 100644 index 000000000..b3e8e5cc5 Binary files /dev/null and b/libddd.html/structconf_1_1allocator__coll__graph.png differ diff --git a/libddd.html/structd3_1_1hash__set-members.html b/libddd.html/structd3_1_1hash__set-members.html new file mode 100644 index 000000000..6ea4eb640 --- /dev/null +++ b/libddd.html/structd3_1_1hash__set-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::hash_set< Key, Hash, Compare, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for d3::hash_set< Key, Hash, Compare, Allocator >, including all inherited members.

    + + +
    type typedefd3::hash_set< Key, Hash, Compare, Allocator >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1hash__set.html b/libddd.html/structd3_1_1hash__set.html new file mode 100644 index 000000000..4ba06df4f --- /dev/null +++ b/libddd.html/structd3_1_1hash__set.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::hash_set< Key, Hash, Compare, Allocator > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::hash_set< Key, Hash, Compare, Allocator > Struct Template Reference
    +
    +
    + +

    #include <util/hash_set.hh>

    +
    +Inheritance diagram for d3::hash_set< Key, Hash, Compare, Allocator >:
    +
    +
    Inheritance graph
    + + + + + +
    +
    +Collaboration diagram for d3::hash_set< Key, Hash, Compare, Allocator >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef google::sparse_hash_set< Key, Hash, Compare, Allocator > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Key , typename Hash = d3::util::hash<Key>, typename Compare = d3::util::equal<Key>, typename Allocator = typename conf::allocator<Key>::type>
    + + + + +
    typedef google::sparse_hash_set<Key,Hash,Compare,Allocator> d3::hash_set< Key, Hash, Compare, Allocator >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1hash__set__coll__graph.map b/libddd.html/structd3_1_1hash__set__coll__graph.map new file mode 100644 index 000000000..68d52babe --- /dev/null +++ b/libddd.html/structd3_1_1hash__set__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1hash__set__coll__graph.md5 b/libddd.html/structd3_1_1hash__set__coll__graph.md5 new file mode 100644 index 000000000..5be49a023 --- /dev/null +++ b/libddd.html/structd3_1_1hash__set__coll__graph.md5 @@ -0,0 +1 @@ +e53a6632c5e583f809d02499bd7dcb4a \ No newline at end of file diff --git a/libddd.html/structd3_1_1hash__set__coll__graph.png b/libddd.html/structd3_1_1hash__set__coll__graph.png new file mode 100644 index 000000000..e398c0e5c Binary files /dev/null and b/libddd.html/structd3_1_1hash__set__coll__graph.png differ diff --git a/libddd.html/structd3_1_1hash__set__inherit__graph.map b/libddd.html/structd3_1_1hash__set__inherit__graph.map new file mode 100644 index 000000000..30e178a9f --- /dev/null +++ b/libddd.html/structd3_1_1hash__set__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/structd3_1_1hash__set__inherit__graph.md5 b/libddd.html/structd3_1_1hash__set__inherit__graph.md5 new file mode 100644 index 000000000..1d41107c0 --- /dev/null +++ b/libddd.html/structd3_1_1hash__set__inherit__graph.md5 @@ -0,0 +1 @@ +6fd37a4921476a632a58de683ccf5c4a \ No newline at end of file diff --git a/libddd.html/structd3_1_1hash__set__inherit__graph.png b/libddd.html/structd3_1_1hash__set__inherit__graph.png new file mode 100644 index 000000000..458a92974 Binary files /dev/null and b/libddd.html/structd3_1_1hash__set__inherit__graph.png differ diff --git a/libddd.html/structd3_1_1multiset-members.html b/libddd.html/structd3_1_1multiset-members.html new file mode 100644 index 000000000..e101f732e --- /dev/null +++ b/libddd.html/structd3_1_1multiset-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::multiset< Key, Compare, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for d3::multiset< Key, Compare, Allocator >, including all inherited members.

    + + +
    type typedefd3::multiset< Key, Compare, Allocator >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1multiset.html b/libddd.html/structd3_1_1multiset.html new file mode 100644 index 000000000..1a7fe2df1 --- /dev/null +++ b/libddd.html/structd3_1_1multiset.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: d3::multiset< Key, Compare, Allocator > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::multiset< Key, Compare, Allocator > Struct Template Reference
    +
    +
    + +

    #include <util/set.hh>

    +
    +Collaboration diagram for d3::multiset< Key, Compare, Allocator >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef std::multiset< Key, Compare, Allocator > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Key , typename Compare = std::less<Key>, typename Allocator = typename conf::allocator<Key>::type>
    + + + + +
    typedef std::multiset<Key,Compare,Allocator> d3::multiset< Key, Compare, Allocator >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1multiset__coll__graph.map b/libddd.html/structd3_1_1multiset__coll__graph.map new file mode 100644 index 000000000..628f4592e --- /dev/null +++ b/libddd.html/structd3_1_1multiset__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1multiset__coll__graph.md5 b/libddd.html/structd3_1_1multiset__coll__graph.md5 new file mode 100644 index 000000000..95d1c9fcf --- /dev/null +++ b/libddd.html/structd3_1_1multiset__coll__graph.md5 @@ -0,0 +1 @@ +de7ffbbdaf4bddc73e406c0886388725 \ No newline at end of file diff --git a/libddd.html/structd3_1_1multiset__coll__graph.png b/libddd.html/structd3_1_1multiset__coll__graph.png new file mode 100644 index 000000000..d135df979 Binary files /dev/null and b/libddd.html/structd3_1_1multiset__coll__graph.png differ diff --git a/libddd.html/structd3_1_1set-members.html b/libddd.html/structd3_1_1set-members.html new file mode 100644 index 000000000..fe4e94e20 --- /dev/null +++ b/libddd.html/structd3_1_1set-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::set< Key, Compare, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for d3::set< Key, Compare, Allocator >, including all inherited members.

    + + +
    type typedefd3::set< Key, Compare, Allocator >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1set.html b/libddd.html/structd3_1_1set.html new file mode 100644 index 000000000..458e738b6 --- /dev/null +++ b/libddd.html/structd3_1_1set.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::set< Key, Compare, Allocator > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::set< Key, Compare, Allocator > Struct Template Reference
    +
    +
    + +

    #include <util/set.hh>

    +
    +Inheritance diagram for d3::set< Key, Compare, Allocator >:
    +
    +
    Inheritance graph
    + + + + + +
    +
    +Collaboration diagram for d3::set< Key, Compare, Allocator >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef std::set< Key, Compare, Allocator > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Key , typename Compare = std::less<Key>, typename Allocator = typename conf::allocator<Key>::type>
    + + + + +
    typedef std::set<Key,Compare,Allocator> d3::set< Key, Compare, Allocator >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1set__coll__graph.map b/libddd.html/structd3_1_1set__coll__graph.map new file mode 100644 index 000000000..859387568 --- /dev/null +++ b/libddd.html/structd3_1_1set__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1set__coll__graph.md5 b/libddd.html/structd3_1_1set__coll__graph.md5 new file mode 100644 index 000000000..5f4d2c1ca --- /dev/null +++ b/libddd.html/structd3_1_1set__coll__graph.md5 @@ -0,0 +1 @@ +69d935df87d467246e576b2edbdcf29b \ No newline at end of file diff --git a/libddd.html/structd3_1_1set__coll__graph.png b/libddd.html/structd3_1_1set__coll__graph.png new file mode 100644 index 000000000..1c0de751e Binary files /dev/null and b/libddd.html/structd3_1_1set__coll__graph.png differ diff --git a/libddd.html/structd3_1_1set__inherit__graph.map b/libddd.html/structd3_1_1set__inherit__graph.map new file mode 100644 index 000000000..9f41a7945 --- /dev/null +++ b/libddd.html/structd3_1_1set__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/structd3_1_1set__inherit__graph.md5 b/libddd.html/structd3_1_1set__inherit__graph.md5 new file mode 100644 index 000000000..1edc3be7a --- /dev/null +++ b/libddd.html/structd3_1_1set__inherit__graph.md5 @@ -0,0 +1 @@ +2ffddc5b2ab5bb5735ce0ad25bc59d13 \ No newline at end of file diff --git a/libddd.html/structd3_1_1set__inherit__graph.png b/libddd.html/structd3_1_1set__inherit__graph.png new file mode 100644 index 000000000..6d0a5722a Binary files /dev/null and b/libddd.html/structd3_1_1set__inherit__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal-members.html b/libddd.html/structd3_1_1util_1_1equal-members.html new file mode 100644 index 000000000..d857fbff2 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< T > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< T >, including all inherited members.

    + + +
    operator()(const T &e1, const T &e2) constd3::util::equal< T >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal.html b/libddd.html/structd3_1_1util_1_1equal.html new file mode 100644 index 000000000..494d3a924 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal.html @@ -0,0 +1,118 @@ + + + + + + + +DDD: d3::util::equal< T > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< T > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::equal< T >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const T &e1, const T &e2) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< T >::operator() (const T & e1,
    const T & e2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4-members.html new file mode 100644 index 000000000..2828f69e6 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< T * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< T * >, including all inherited members.

    + + +
    operator()(const T *e1, const T *e2) constd3::util::equal< T * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4.html new file mode 100644 index 000000000..62da49da0 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4.html @@ -0,0 +1,118 @@ + + + + + + + +DDD: d3::util::equal< T * > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< T * > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::equal< T * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const T *e1, const T *e2) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< T * >::operator() (const T * e1,
    const T * e2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..7166d9f85 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..fb7e40b9e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +c73b4202e02f90c88cc5785978d8b73c \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..a2320ee36 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01T_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4-members.html new file mode 100644 index 000000000..b931e31c4 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< _GHom * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< _GHom * >, including all inherited members.

    + + +
    operator()(_GHom *_h1, _GHom *_h2)d3::util::equal< _GHom * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4.html new file mode 100644 index 000000000..5598dbd2b --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4.html @@ -0,0 +1,114 @@ + + + + + + + +DDD: d3::util::equal< _GHom * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< _GHom * > Struct Reference
    +
    +
    +
    +Collaboration diagram for d3::util::equal< _GHom * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (_GHom *_h1, _GHom *_h2)
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< _GHom * >::operator() (_GHom_h1,
    _GHom_h2 
    )
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..77b7737b7 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..8d04a0bd5 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +d8df98a336f5e2ab01980d5578056f70 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..043fc9598 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01__GHom_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4-members.html new file mode 100644 index 000000000..533fe2ded --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< _GShom * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< _GShom * >, including all inherited members.

    + + +
    operator()(_GShom *_h1, _GShom *_h2)d3::util::equal< _GShom * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4.html new file mode 100644 index 000000000..552f28fa6 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4.html @@ -0,0 +1,114 @@ + + + + + + + +DDD: d3::util::equal< _GShom * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< _GShom * > Struct Reference
    +
    +
    +
    +Collaboration diagram for d3::util::equal< _GShom * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (_GShom *_h1, _GShom *_h2)
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< _GShom * >::operator() (_GShom_h1,
    _GShom_h2 
    )
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..7d974950d --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..98328109c --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +867118167a2b40d1ca24ff4c3839ff3e \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..ab1313cf9 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01__GShom_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4-members.html new file mode 100644 index 000000000..7127a1fde --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< _MLHom * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< _MLHom * >, including all inherited members.

    + + +
    operator()(_MLHom *_h1, _MLHom *_h2)d3::util::equal< _MLHom * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4.html new file mode 100644 index 000000000..3f1f224e9 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4.html @@ -0,0 +1,114 @@ + + + + + + + +DDD: d3::util::equal< _MLHom * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< _MLHom * > Struct Reference
    +
    +
    +
    +Collaboration diagram for d3::util::equal< _MLHom * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (_MLHom *_h1, _MLHom *_h2)
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< _MLHom * >::operator() (_MLHom_h1,
    _MLHom_h2 
    )
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..ebfee5e9e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..67f9934f7 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +588c30597b9f9e9678bb061a5b20c743 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..198a8e043 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01__MLHom_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4-members.html new file mode 100644 index 000000000..7e9bfe49f --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< _MLShom * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< _MLShom * >, including all inherited members.

    + + +
    operator()(_MLShom *_h1, _MLShom *_h2)d3::util::equal< _MLShom * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4.html new file mode 100644 index 000000000..44c5619c9 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4.html @@ -0,0 +1,114 @@ + + + + + + + +DDD: d3::util::equal< _MLShom * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< _MLShom * > Struct Reference
    +
    +
    +
    +Collaboration diagram for d3::util::equal< _MLShom * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (_MLShom *_h1, _MLShom *_h2)
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< _MLShom * >::operator() (_MLShom_h1,
    _MLShom_h2 
    )
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..5768a4173 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..5a113f0cb --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +e56421aed633bc187284ed45aa6c6e92 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..eeafd6099 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01__MLShom_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html new file mode 100644 index 000000000..7b97e0e3e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< std::pair< T1, T2 > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< std::pair< T1, T2 > >, including all inherited members.

    + + +
    operator()(const std::pair< T1, T2 > &e1, const std::pair< T1, T2 > &e2) constd3::util::equal< std::pair< T1, T2 > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html new file mode 100644 index 000000000..7a4ef46fc --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html @@ -0,0 +1,118 @@ + + + + + + + +DDD: d3::util::equal< std::pair< T1, T2 > > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< std::pair< T1, T2 > > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::equal< std::pair< T1, T2 > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const std::pair< T1, T2 > &e1, const std::pair< T1, T2 > &e2) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< std::pair< T1, T2 > >::operator() (const std::pair< T1, T2 > & e1,
    const std::pair< T1, T2 > & e2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..4a424e0ac --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..cca0768f2 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +2d5a8d7c75f2f65df8d5c38f696a2ade \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..21868d2bd Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4-members.html b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4-members.html new file mode 100644 index 000000000..1f98b0b89 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::equal< std::string > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::equal< std::string >, including all inherited members.

    + + +
    operator()(const std::string &g1, const std::string &g2) constd3::util::equal< std::string >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4.html b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4.html new file mode 100644 index 000000000..93bea2a81 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4.html @@ -0,0 +1,116 @@ + + + + + + + +DDD: d3::util::equal< std::string > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::equal< std::string > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::equal< std::string >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const std::string &g1, const std::string &g2) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool d3::util::equal< std::string >::operator() (const std::string & g1,
    const std::string & g2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.map new file mode 100644 index 000000000..b3a3fb055 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.md5 new file mode 100644 index 000000000..579fad05a --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.md5 @@ -0,0 +1 @@ +b2327283e87a2ebbd1d902496fb4c912 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.png new file mode 100644 index 000000000..60241cf93 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal_3_01std_1_1string_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1equal__coll__graph.map b/libddd.html/structd3_1_1util_1_1equal__coll__graph.map new file mode 100644 index 000000000..fa8252c78 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1equal__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1equal__coll__graph.md5 new file mode 100644 index 000000000..1f0b7a2f6 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1equal__coll__graph.md5 @@ -0,0 +1 @@ +2ed13d78208c25c972e921c429048ea2 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1equal__coll__graph.png b/libddd.html/structd3_1_1util_1_1equal__coll__graph.png new file mode 100644 index 000000000..d1baceaf7 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1equal__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash-members.html b/libddd.html/structd3_1_1util_1_1hash-members.html new file mode 100644 index 000000000..d77de93f7 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< T > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< T >, including all inherited members.

    + + +
    operator()(const T &e) constd3::util::hash< T >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash.html b/libddd.html/structd3_1_1util_1_1hash.html new file mode 100644 index 000000000..ac414fb79 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< T > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< T > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< T >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const T &e) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< T >::operator() (const T & e) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4-members.html new file mode 100644 index 000000000..5e8ce5a07 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< T * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< T * >, including all inherited members.

    + + +
    operator()(const T *e) constd3::util::hash< T * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4.html new file mode 100644 index 000000000..7b19a38cd --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< T * > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< T * > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< T * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const T *e) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< T * >::operator() (const T * e) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..1ada8d3d2 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..b294bfaca --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +c37a9d0c71f76004c63089f7cd364ab1 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..069267337 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01T_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4-members.html new file mode 100644 index 000000000..9c8089f7c --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< const std::vector< int > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< const std::vector< int > >, including all inherited members.

    + + +
    operator()(const std::vector< int > &p) constd3::util::hash< const std::vector< int > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4.html new file mode 100644 index 000000000..33d9775bb --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< const std::vector< int > > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< const std::vector< int > > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< const std::vector< int > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< int > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< const std::vector< int > >::operator() (const std::vector< int > & p) const
    +
    +inline
    +
    + +

    References ddd::wang32_hash().

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..85bee7868 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..c7f06751b --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +663ef7771120fc38e573b880daf52b4b \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..037e1d7f1 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html new file mode 100644 index 000000000..4fcfa870e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< const std::vector< int > * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< const std::vector< int > * >, including all inherited members.

    + + +
    operator()(const std::vector< int > *p) constd3::util::hash< const std::vector< int > * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4.html new file mode 100644 index 000000000..9ed0c2355 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::util::hash< const std::vector< int > * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< const std::vector< int > * > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< const std::vector< int > * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< int > *p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< const std::vector< int > * >::operator() (const std::vector< int > * p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..d6224cfbb --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..203f5b496 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +fe5bf72654d3b7a15647d36d1be82d2d \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..17c7e5a1d Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4-members.html new file mode 100644 index 000000000..79c307b55 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< const std::vector< short > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< const std::vector< short > >, including all inherited members.

    + + +
    operator()(const std::vector< short > &p) constd3::util::hash< const std::vector< short > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4.html new file mode 100644 index 000000000..92fa5df9e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< const std::vector< short > > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< const std::vector< short > > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< const std::vector< short > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< short > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< const std::vector< short > >::operator() (const std::vector< short > & p) const
    +
    +inline
    +
    + +

    References ddd::wang32_hash().

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..c367245a8 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..6419ba353 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +a640a6bbc5c7d3aa7a2206dc634fb29b \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..d7d1d45ce Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01const_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4-members.html new file mode 100644 index 000000000..dbdfe0d4e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< int > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< int >, including all inherited members.

    + + +
    operator()(int i) constd3::util::hash< int >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4.html new file mode 100644 index 000000000..f4f364cf3 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< int > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< int > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< int >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (int i) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< int >::operator() (int i) const
    +
    +inline
    +
    + +

    References ddd::wang32_hash().

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.map new file mode 100644 index 000000000..24db546cf --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.md5 new file mode 100644 index 000000000..d70f42877 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.md5 @@ -0,0 +1 @@ +af2ea35d5b7ffd8da0df4d2f971d4d1f \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.png new file mode 100644 index 000000000..7e663c75f Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01int_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html new file mode 100644 index 000000000..b9796932a --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::pair< T1, T2 > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::pair< T1, T2 > >, including all inherited members.

    + + +
    operator()(const std::pair< T1, T2 > &p) constd3::util::hash< std::pair< T1, T2 > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html new file mode 100644 index 000000000..9ea52173b --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< std::pair< T1, T2 > > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::pair< T1, T2 > > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::pair< T1, T2 > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::pair< T1, T2 > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::pair< T1, T2 > >::operator() (const std::pair< T1, T2 > & p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..db98791f5 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..558be8ca4 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +5042bcd95144f5c0612aa9a32bc9ec02 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..43ad1d928 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1pair_3_01T1_00_01T2_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4-members.html new file mode 100644 index 000000000..60b377606 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::set< T1 > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::set< T1 > >, including all inherited members.

    + + +
    operator()(const std::set< T1 > &p) constd3::util::hash< std::set< T1 > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4.html new file mode 100644 index 000000000..0b4574c58 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: d3::util::hash< std::set< T1 > > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::set< T1 > > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::set< T1 > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::set< T1 > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T1 >
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::set< T1 > >::operator() (const std::set< T1 > & p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..f37d20358 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..ddeed8b0c --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +ddb5c4913b973099975b6b94e8369e10 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..d3bc1475b Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1set_3_01T1_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4-members.html new file mode 100644 index 000000000..dfbfa22e3 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::string > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::string >, including all inherited members.

    + + +
    operator()(const std::string &string) constd3::util::hash< std::string >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4.html new file mode 100644 index 000000000..95029b4be --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::util::hash< std::string > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::string > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::string >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::string &string) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::string >::operator() (const std::string & string) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.map new file mode 100644 index 000000000..9360a5ff5 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.md5 new file mode 100644 index 000000000..cbf2a3f79 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.md5 @@ -0,0 +1 @@ +de2ad58663ea96edf0f4646cbe361714 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.png new file mode 100644 index 000000000..33b53779e Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1string_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4-members.html new file mode 100644 index 000000000..8418d3bb2 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::vector< int > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::vector< int > >, including all inherited members.

    + + +
    operator()(const std::vector< int > &p) constd3::util::hash< std::vector< int > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4.html new file mode 100644 index 000000000..2c7edf4e5 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::util::hash< std::vector< int > > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::vector< int > > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::vector< int > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< int > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::vector< int > >::operator() (const std::vector< int > & p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..39977eb8d --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..4dd13aa47 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +315f07d95adf58c2de8d97327c9eb4ab \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..fdf1456aa Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html new file mode 100644 index 000000000..8f932d8e8 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::vector< int > * > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::vector< int > * >, including all inherited members.

    + + +
    operator()(const std::vector< int > *p) constd3::util::hash< std::vector< int > * >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4.html new file mode 100644 index 000000000..466941bba --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::util::hash< std::vector< int > * > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::vector< int > * > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::vector< int > * >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< int > *p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::vector< int > * >::operator() (const std::vector< int > * p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map new file mode 100644 index 000000000..a513d11fc --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 new file mode 100644 index 000000000..a94b8d3e4 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.md5 @@ -0,0 +1 @@ +89dc93bbf3a28cb3b5d1e81bf53cfea4 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png new file mode 100644 index 000000000..f5b88cd3c Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01int_01_4_01_5_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4-members.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4-members.html new file mode 100644 index 000000000..892e6d660 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::hash< std::vector< short > > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::hash< std::vector< short > >, including all inherited members.

    + + +
    operator()(const std::vector< short > &p) constd3::util::hash< std::vector< short > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4.html b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4.html new file mode 100644 index 000000000..7e0f00ac4 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: d3::util::hash< std::vector< short > > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::hash< std::vector< short > > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for d3::util::hash< std::vector< short > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    size_t operator() (const std::vector< short > &p) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    size_t d3::util::hash< std::vector< short > >::operator() (const std::vector< short > & p) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..dbe1e2d9e --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..4e0bb8280 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +32ff27b11e21bf0dde2b34398ad09438 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..4715561e1 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash_3_01std_1_1vector_3_01short_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1hash__coll__graph.map b/libddd.html/structd3_1_1util_1_1hash__coll__graph.map new file mode 100644 index 000000000..ed6ec9174 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1hash__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1hash__coll__graph.md5 new file mode 100644 index 000000000..3de784425 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1hash__coll__graph.md5 @@ -0,0 +1 @@ +bb1e57966da8ffc0b0ad275f365c6491 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1hash__coll__graph.png b/libddd.html/structd3_1_1util_1_1hash__coll__graph.png new file mode 100644 index 000000000..b80e7c22c Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1hash__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1map-members.html b/libddd.html/structd3_1_1util_1_1map-members.html new file mode 100644 index 000000000..86608f455 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1map-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::map< Key, Data, Compare, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::map< Key, Data, Compare, Allocator >, including all inherited members.

    + + +
    type typedefd3::util::map< Key, Data, Compare, Allocator >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1map.html b/libddd.html/structd3_1_1util_1_1map.html new file mode 100644 index 000000000..5aec70d2d --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1map.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: d3::util::map< Key, Data, Compare, Allocator > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::map< Key, Data, Compare, Allocator > Struct Template Reference
    +
    +
    + +

    #include <util/map.hh>

    +
    +Collaboration diagram for d3::util::map< Key, Data, Compare, Allocator >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef std::map< Key, Data, Compare, Allocator > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Key , typename Data , typename Compare = std::less<Key>, typename Allocator = typename conf::allocator< std::pair<const Key, Data> >::type>
    + + + + +
    typedef std::map<Key,Data,Compare,Allocator> d3::util::map< Key, Data, Compare, Allocator >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1map__coll__graph.map b/libddd.html/structd3_1_1util_1_1map__coll__graph.map new file mode 100644 index 000000000..e83ff7929 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1map__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1map__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1map__coll__graph.md5 new file mode 100644 index 000000000..a0fd04399 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1map__coll__graph.md5 @@ -0,0 +1 @@ +90007746ebd5feae4baacc8e8977d3a6 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1map__coll__graph.png b/libddd.html/structd3_1_1util_1_1map__coll__graph.png new file mode 100644 index 000000000..5f41a9050 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1map__coll__graph.png differ diff --git a/libddd.html/structd3_1_1util_1_1vector-members.html b/libddd.html/structd3_1_1util_1_1vector-members.html new file mode 100644 index 000000000..d2001ffd4 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1vector-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    d3::util::vector< T, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for d3::util::vector< T, Allocator >, including all inherited members.

    + + +
    type typedefd3::util::vector< T, Allocator >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1vector.html b/libddd.html/structd3_1_1util_1_1vector.html new file mode 100644 index 000000000..af7863092 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1vector.html @@ -0,0 +1,96 @@ + + + + + + + +DDD: d3::util::vector< T, Allocator > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    d3::util::vector< T, Allocator > Struct Template Reference
    +
    +
    + +

    #include <util/vector.hh>

    +
    +Collaboration diagram for d3::util::vector< T, Allocator >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef std::vector< T, Allocator > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Allocator = typename conf::allocator<T>::type>
    + + + + +
    typedef std::vector<T,Allocator> d3::util::vector< T, Allocator >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structd3_1_1util_1_1vector__coll__graph.map b/libddd.html/structd3_1_1util_1_1vector__coll__graph.map new file mode 100644 index 000000000..13441ab89 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1vector__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structd3_1_1util_1_1vector__coll__graph.md5 b/libddd.html/structd3_1_1util_1_1vector__coll__graph.md5 new file mode 100644 index 000000000..65a0c9947 --- /dev/null +++ b/libddd.html/structd3_1_1util_1_1vector__coll__graph.md5 @@ -0,0 +1 @@ +6e10592cb195bc10088a6e2df7b15da2 \ No newline at end of file diff --git a/libddd.html/structd3_1_1util_1_1vector__coll__graph.png b/libddd.html/structd3_1_1util_1_1vector__coll__graph.png new file mode 100644 index 000000000..c55c040a9 Binary files /dev/null and b/libddd.html/structd3_1_1util_1_1vector__coll__graph.png differ diff --git a/libddd.html/structhash__map-members.html b/libddd.html/structhash__map-members.html new file mode 100644 index 000000000..dd8bc4d0a --- /dev/null +++ b/libddd.html/structhash__map-members.html @@ -0,0 +1,57 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    hash_map< Key, Data, HashKey, EqualKey > Member List
    +
    +
    + +

    This is the complete list of members for hash_map< Key, Data, HashKey, EqualKey >, including all inherited members.

    + + +
    type typedefhash_map< Key, Data, HashKey, EqualKey >
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structhash__map.html b/libddd.html/structhash__map.html new file mode 100644 index 000000000..c9892994d --- /dev/null +++ b/libddd.html/structhash__map.html @@ -0,0 +1,101 @@ + + + + + + + +DDD: hash_map< Key, Data, HashKey, EqualKey > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    + +
    +
    hash_map< Key, Data, HashKey, EqualKey > Struct Template Reference
    +
    +
    + +

    #include <util/configuration.hh>

    +
    +Inheritance diagram for hash_map< Key, Data, HashKey, EqualKey >:
    +
    +
    Inheritance graph
    + + + + +
    +
    +Collaboration diagram for hash_map< Key, Data, HashKey, EqualKey >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Types

    typedef ext_hash_map< Key, Data, HashKey, EqualKey > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Key , typename Data , typename HashKey = d3::util::hash<Key>, typename EqualKey = d3::util::equal<Key>>
    + + + + +
    typedef ext_hash_map<Key,Data,HashKey,EqualKey> hash_map< Key, Data, HashKey, EqualKey >::type
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structhash__map__coll__graph.map b/libddd.html/structhash__map__coll__graph.map new file mode 100644 index 000000000..1a51b5cf0 --- /dev/null +++ b/libddd.html/structhash__map__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structhash__map__coll__graph.md5 b/libddd.html/structhash__map__coll__graph.md5 new file mode 100644 index 000000000..c61a3caf6 --- /dev/null +++ b/libddd.html/structhash__map__coll__graph.md5 @@ -0,0 +1 @@ +6ad5f3f64440703d7fc198349e0cc106 \ No newline at end of file diff --git a/libddd.html/structhash__map__coll__graph.png b/libddd.html/structhash__map__coll__graph.png new file mode 100644 index 000000000..b58c977e1 Binary files /dev/null and b/libddd.html/structhash__map__coll__graph.png differ diff --git a/libddd.html/structhash__map__inherit__graph.map b/libddd.html/structhash__map__inherit__graph.map new file mode 100644 index 000000000..a444783eb --- /dev/null +++ b/libddd.html/structhash__map__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/libddd.html/structhash__map__inherit__graph.md5 b/libddd.html/structhash__map__inherit__graph.md5 new file mode 100644 index 000000000..3f6ab2c89 --- /dev/null +++ b/libddd.html/structhash__map__inherit__graph.md5 @@ -0,0 +1 @@ +6211ec584f012541fedc6b82d01796b7 \ No newline at end of file diff --git a/libddd.html/structhash__map__inherit__graph.png b/libddd.html/structhash__map__inherit__graph.png new file mode 100644 index 000000000..c3414b105 Binary files /dev/null and b/libddd.html/structhash__map__inherit__graph.png differ diff --git a/libddd.html/structsns_1_1Add_1_1partition-members.html b/libddd.html/structsns_1_1Add_1_1partition-members.html new file mode 100644 index 000000000..6520213ca --- /dev/null +++ b/libddd.html/structsns_1_1Add_1_1partition-members.html @@ -0,0 +1,64 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    sns::Add::partition Member List
    +
    +
    + +

    This is the complete list of members for sns::Add::partition, including all inherited members.

    + + + + + +
    Fsns::Add::partition
    Gsns::Add::partition
    has_localsns::Add::partition
    Lsns::Add::partition
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structsns_1_1Add_1_1partition.html b/libddd.html/structsns_1_1Add_1_1partition.html new file mode 100644 index 000000000..a848ba38b --- /dev/null +++ b/libddd.html/structsns_1_1Add_1_1partition.html @@ -0,0 +1,150 @@ + + + + + + + +DDD: sns::Add::partition Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    sns::Add::partition Struct Reference
    +
    +
    +
    +Collaboration diagram for sns::Add::partition:
    +
    +
    Collaboration graph
    + + + + + +
    + + + + + + + + + + +

    +Public Attributes

    GShom F
     
    Gset_t G
     
    const _GShomL
     
    bool has_local
     
    +

    Member Data Documentation

    + +

    ◆ F

    + +
    +
    + + + + +
    GShom sns::Add::partition::F
    +
    +
    + +

    ◆ G

    + +
    +
    + + + + +
    Gset_t sns::Add::partition::G
    +
    +
    + +

    ◆ has_local

    + +
    +
    + + + + +
    bool sns::Add::partition::has_local
    +
    +
    + +

    ◆ L

    + +
    +
    + + + + +
    const _GShom* sns::Add::partition::L
    +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structsns_1_1Add_1_1partition__coll__graph.map b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.map new file mode 100644 index 000000000..e151b80e6 --- /dev/null +++ b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libddd.html/structsns_1_1Add_1_1partition__coll__graph.md5 b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.md5 new file mode 100644 index 000000000..7273317a0 --- /dev/null +++ b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.md5 @@ -0,0 +1 @@ +d5ffe7618968ae46cf3b29bfddb19692 \ No newline at end of file diff --git a/libddd.html/structsns_1_1Add_1_1partition__coll__graph.png b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.png new file mode 100644 index 000000000..0aa0edff2 Binary files /dev/null and b/libddd.html/structsns_1_1Add_1_1partition__coll__graph.png differ diff --git a/libddd.html/structstd_1_1less_3_01GDDD_01_4-members.html b/libddd.html/structstd_1_1less_3_01GDDD_01_4-members.html new file mode 100644 index 000000000..8e1dfbd83 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GDDD_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    std::less< GDDD > Member List
    +
    +
    + +

    This is the complete list of members for std::less< GDDD >, including all inherited members.

    + + +
    operator()(const GDDD &g1, const GDDD &g2) conststd::less< GDDD >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GDDD_01_4.html b/libddd.html/structstd_1_1less_3_01GDDD_01_4.html new file mode 100644 index 000000000..189e9e15b --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GDDD_01_4.html @@ -0,0 +1,122 @@ + + + + + + + +DDD: std::less< GDDD > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    std::less< GDDD > Struct Reference
    +
    +
    + +

    Compares two DDD in hash tables. + More...

    + +

    #include <DDD.h>

    +
    +Collaboration diagram for std::less< GDDD >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const GDDD &g1, const GDDD &g2) const
     
    +

    Detailed Description

    +

    Compares two DDD in hash tables.

    +

    Value returned is based on unicity of concret in unicity table.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool std::less< GDDD >::operator() (const GDDDg1,
    const GDDDg2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.map b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.map new file mode 100644 index 000000000..63b1360ca --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.md5 b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.md5 new file mode 100644 index 000000000..afe7cd578 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.md5 @@ -0,0 +1 @@ +4a5328330f8fdc8f653318a527448e88 \ No newline at end of file diff --git a/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.png b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.png new file mode 100644 index 000000000..6e3af9240 Binary files /dev/null and b/libddd.html/structstd_1_1less_3_01GDDD_01_4__coll__graph.png differ diff --git a/libddd.html/structstd_1_1less_3_01GHom_01_4-members.html b/libddd.html/structstd_1_1less_3_01GHom_01_4-members.html new file mode 100644 index 000000000..7329fa6c1 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GHom_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    std::less< GHom > Member List
    +
    +
    + +

    This is the complete list of members for std::less< GHom >, including all inherited members.

    + + +
    operator()(const GHom &g1, const GHom &g2) conststd::less< GHom >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GHom_01_4.html b/libddd.html/structstd_1_1less_3_01GHom_01_4.html new file mode 100644 index 000000000..15662259c --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GHom_01_4.html @@ -0,0 +1,122 @@ + + + + + + + +DDD: std::less< GHom > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    std::less< GHom > Struct Reference
    +
    +
    + +

    Compares two GHom in hash tables. + More...

    + +

    #include <Hom.h>

    +
    +Collaboration diagram for std::less< GHom >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const GHom &g1, const GHom &g2) const
     
    +

    Detailed Description

    +

    Compares two GHom in hash tables.

    +

    Value returned is based on unicity of concret in unicity table.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool std::less< GHom >::operator() (const GHomg1,
    const GHomg2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.map b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.map new file mode 100644 index 000000000..44656cfc6 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.md5 b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.md5 new file mode 100644 index 000000000..e5e1d3716 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.md5 @@ -0,0 +1 @@ +8c045fe9b81c3267170e5281d689431f \ No newline at end of file diff --git a/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.png b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.png new file mode 100644 index 000000000..1d2f94778 Binary files /dev/null and b/libddd.html/structstd_1_1less_3_01GHom_01_4__coll__graph.png differ diff --git a/libddd.html/structstd_1_1less_3_01GSDD_01_4-members.html b/libddd.html/structstd_1_1less_3_01GSDD_01_4-members.html new file mode 100644 index 000000000..118f0070b --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GSDD_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    std::less< GSDD > Member List
    +
    +
    + +

    This is the complete list of members for std::less< GSDD >, including all inherited members.

    + + +
    operator()(const GSDD &g1, const GSDD &g2) conststd::less< GSDD >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GSDD_01_4.html b/libddd.html/structstd_1_1less_3_01GSDD_01_4.html new file mode 100644 index 000000000..c7de70db2 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GSDD_01_4.html @@ -0,0 +1,122 @@ + + + + + + + +DDD: std::less< GSDD > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    std::less< GSDD > Struct Reference
    +
    +
    + +

    Compares two SDD in hash tables. + More...

    + +

    #include <SDD.h>

    +
    +Collaboration diagram for std::less< GSDD >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const GSDD &g1, const GSDD &g2) const
     
    +

    Detailed Description

    +

    Compares two SDD in hash tables.

    +

    Value returned is based on unicity of concret in unicity table.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool std::less< GSDD >::operator() (const GSDDg1,
    const GSDDg2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.map b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.map new file mode 100644 index 000000000..f2a4d81fb --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.md5 b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.md5 new file mode 100644 index 000000000..712a09bc0 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.md5 @@ -0,0 +1 @@ +269340249c7bf81f6040851656e2e86c \ No newline at end of file diff --git a/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.png b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.png new file mode 100644 index 000000000..e9df695b2 Binary files /dev/null and b/libddd.html/structstd_1_1less_3_01GSDD_01_4__coll__graph.png differ diff --git a/libddd.html/structstd_1_1less_3_01GShom_01_4-members.html b/libddd.html/structstd_1_1less_3_01GShom_01_4-members.html new file mode 100644 index 000000000..9bf1ee1f6 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GShom_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    std::less< GShom > Member List
    +
    +
    + +

    This is the complete list of members for std::less< GShom >, including all inherited members.

    + + +
    operator()(const GShom &g1, const GShom &g2) conststd::less< GShom >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GShom_01_4.html b/libddd.html/structstd_1_1less_3_01GShom_01_4.html new file mode 100644 index 000000000..62dba4776 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GShom_01_4.html @@ -0,0 +1,122 @@ + + + + + + + +DDD: std::less< GShom > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    std::less< GShom > Struct Reference
    +
    +
    + +

    Compares two GShom in hash tables. + More...

    + +

    #include <SHom.h>

    +
    +Collaboration diagram for std::less< GShom >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    bool operator() (const GShom &g1, const GShom &g2) const
     
    +

    Detailed Description

    +

    Compares two GShom in hash tables.

    +

    Value returned is based on unicity of concret in unicity table.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool std::less< GShom >::operator() (const GShomg1,
    const GShomg2 
    ) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.map b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.map new file mode 100644 index 000000000..ffe260050 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.md5 b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.md5 new file mode 100644 index 000000000..aed993f18 --- /dev/null +++ b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.md5 @@ -0,0 +1 @@ +6a1aeda9abeb5f85b1364b055c670587 \ No newline at end of file diff --git a/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.png b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.png new file mode 100644 index 000000000..594e3fd4a Binary files /dev/null and b/libddd.html/structstd_1_1less_3_01GShom_01_4__coll__graph.png differ diff --git a/libddd.html/structunique_1_1clone-members.html b/libddd.html/structunique_1_1clone-members.html new file mode 100644 index 000000000..228f176e7 --- /dev/null +++ b/libddd.html/structunique_1_1clone-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    unique::clone< T > Member List
    +
    +
    + +

    This is the complete list of members for unique::clone< T >, including all inherited members.

    + + +
    operator()(const T &e1) constunique::clone< T >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structunique_1_1clone.html b/libddd.html/structunique_1_1clone.html new file mode 100644 index 000000000..51b72c810 --- /dev/null +++ b/libddd.html/structunique_1_1clone.html @@ -0,0 +1,108 @@ + + + + + + + +DDD: unique::clone< T > Struct Template Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    unique::clone< T > Struct Template Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for unique::clone< T >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    T * operator() (const T &e1) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    T* unique::clone< T >::operator() (const T & e1) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4-members.html b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4-members.html new file mode 100644 index 000000000..864170ffd --- /dev/null +++ b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4-members.html @@ -0,0 +1,61 @@ + + + + + + + +DDD: Member List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    unique::clone< std::vector< int > > Member List
    +
    +
    + +

    This is the complete list of members for unique::clone< std::vector< int > >, including all inherited members.

    + + +
    operator()(const std::vector< int > &e1) constunique::clone< std::vector< int > >inline
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4.html b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4.html new file mode 100644 index 000000000..5aa3bccf7 --- /dev/null +++ b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +DDD: unique::clone< std::vector< int > > Struct Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    unique::clone< std::vector< int > > Struct Reference
    +
    +
    + +

    #include <util/hash_support.hh>

    +
    +Collaboration diagram for unique::clone< std::vector< int > >:
    +
    +
    Collaboration graph
    + + + +
    + + + + +

    +Public Member Functions

    std::vector< int > * operator() (const std::vector< int > &e1) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::vector<int>* unique::clone< std::vector< int > >::operator() (const std::vector< int > & e1) const
    +
    +inline
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:22:00 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..c89e5e962 --- /dev/null +++ b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..fb968e340 --- /dev/null +++ b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +77b543b25ca547d95158f9497bb1e8f2 \ No newline at end of file diff --git a/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..1bb01c20b Binary files /dev/null and b/libddd.html/structunique_1_1clone_3_01std_1_1vector_3_01int_01_4_01_4__coll__graph.png differ diff --git a/libddd.html/structunique_1_1clone__coll__graph.map b/libddd.html/structunique_1_1clone__coll__graph.map new file mode 100644 index 000000000..08b95790b --- /dev/null +++ b/libddd.html/structunique_1_1clone__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/libddd.html/structunique_1_1clone__coll__graph.md5 b/libddd.html/structunique_1_1clone__coll__graph.md5 new file mode 100644 index 000000000..46f28339d --- /dev/null +++ b/libddd.html/structunique_1_1clone__coll__graph.md5 @@ -0,0 +1 @@ +738965a0707ad491bb35b0d43cd9b5ef \ No newline at end of file diff --git a/libddd.html/structunique_1_1clone__coll__graph.png b/libddd.html/structunique_1_1clone__coll__graph.png new file mode 100644 index 000000000..4025dfbef Binary files /dev/null and b/libddd.html/structunique_1_1clone__coll__graph.png differ diff --git a/libddd.html/sync_off.png b/libddd.html/sync_off.png new file mode 100644 index 000000000..3b443fc62 Binary files /dev/null and b/libddd.html/sync_off.png differ diff --git a/libddd.html/sync_on.png b/libddd.html/sync_on.png new file mode 100644 index 000000000..e08320fb6 Binary files /dev/null and b/libddd.html/sync_on.png differ diff --git a/libddd.html/tab_a.png b/libddd.html/tab_a.png new file mode 100644 index 000000000..3b725c41c Binary files /dev/null and b/libddd.html/tab_a.png differ diff --git a/libddd.html/tab_b.png b/libddd.html/tab_b.png new file mode 100644 index 000000000..e2b4a8638 Binary files /dev/null and b/libddd.html/tab_b.png differ diff --git a/libddd.html/tab_h.png b/libddd.html/tab_h.png new file mode 100644 index 000000000..fd5cb7054 Binary files /dev/null and b/libddd.html/tab_h.png differ diff --git a/libddd.html/tab_s.png b/libddd.html/tab_s.png new file mode 100644 index 000000000..ab478c95b Binary files /dev/null and b/libddd.html/tab_s.png differ diff --git a/libddd.html/tabs.css b/libddd.html/tabs.css new file mode 100644 index 000000000..7d45d36c1 --- /dev/null +++ b/libddd.html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/libddd.html/tbb__hash__map_8hh.html b/libddd.html/tbb__hash__map_8hh.html new file mode 100644 index 000000000..b52c4a80f --- /dev/null +++ b/libddd.html/tbb__hash__map_8hh.html @@ -0,0 +1,100 @@ + + + + + + + +DDD: util/tbb_hash_map.hh File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    tbb_hash_map.hh File Reference
    +
    +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/tbb__hash__map_8hh__dep__incl.map b/libddd.html/tbb__hash__map_8hh__dep__incl.map new file mode 100644 index 000000000..8844368a2 --- /dev/null +++ b/libddd.html/tbb__hash__map_8hh__dep__incl.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libddd.html/tbb__hash__map_8hh__dep__incl.md5 b/libddd.html/tbb__hash__map_8hh__dep__incl.md5 new file mode 100644 index 000000000..00a646b19 --- /dev/null +++ b/libddd.html/tbb__hash__map_8hh__dep__incl.md5 @@ -0,0 +1 @@ +c9f26aca4100a01d477c44aa7724bf31 \ No newline at end of file diff --git a/libddd.html/tbb__hash__map_8hh__dep__incl.png b/libddd.html/tbb__hash__map_8hh__dep__incl.png new file mode 100644 index 000000000..59a74734c Binary files /dev/null and b/libddd.html/tbb__hash__map_8hh__dep__incl.png differ diff --git a/libddd.html/tbb__hash__map_8hh_source.html b/libddd.html/tbb__hash__map_8hh_source.html new file mode 100644 index 000000000..57011218b --- /dev/null +++ b/libddd.html/tbb__hash__map_8hh_source.html @@ -0,0 +1,195 @@ + + + + + + + +DDD: util/tbb_hash_map.hh Source File + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    tbb_hash_map.hh
    +
    +
    +Go to the documentation of this file.
    1 #ifndef _CONCURRENT_HASH_MAP_HH_
    +
    2 #define _CONCURRENT_HASH_MAP_HH_
    +
    3 
    +
    4 #ifdef REENTRANT
    +
    5 
    +
    6 #include <tbb/concurrent_hash_map.h>
    +
    7 #include <tbb/mutex.h>
    +
    8 
    + +
    10 
    +
    11 template
    +
    12 <
    +
    13  typename Key,
    +
    14  typename Data,
    +
    15  typename HashKey = d3::util::hash<Key>,
    +
    16  typename EqualKey = d3::util::equal<Key>
    +
    17 >
    +
    18 struct tbb_hash_map
    +
    19 {
    +
    20  struct hash_compare
    +
    21  {
    +
    22  bool
    +
    23  equal( const Key& k1, const Key& k2)
    +
    24  {
    +
    25  return EqualKey()(k1,k2);
    +
    26  }
    +
    27 
    +
    28  size_t
    +
    29  hash( const Key& k)
    +
    30  {
    +
    31  return HashKey()(k);
    +
    32  }
    +
    33 
    +
    34  };
    +
    35 
    +
    36  // Types
    +
    37  typedef tbb::mutex mutex;
    +
    38  typedef tbb::concurrent_hash_map<Key,Data,hash_compare> internal_hash_map;
    +
    39  typedef typename internal_hash_map::iterator iterator;
    +
    40  typedef typename internal_hash_map::const_iterator const_iterator;
    +
    41  typedef typename internal_hash_map::size_type size_type;
    +
    42  typedef typename internal_hash_map::accessor accessor;
    +
    43  typedef typename internal_hash_map::const_accessor const_accessor;
    +
    44 
    +
    45  // Attributes
    +
    46  internal_hash_map map_;
    +
    47  mutex map_mutex_;
    +
    48 
    +
    49  // Methods
    +
    50  tbb_hash_map()
    +
    51  :
    +
    52  map_(),
    +
    53  map_mutex_()
    +
    54  {
    +
    55  }
    +
    56 
    +
    57  iterator
    +
    58  begin()
    +
    59  {
    +
    60  return map_.begin();
    +
    61  }
    +
    62 
    +
    63  const_iterator
    +
    64  begin() const
    +
    65  {
    +
    66  return map_.begin();
    +
    67  }
    +
    68 
    +
    69  iterator
    +
    70  end()
    +
    71  {
    +
    72  return map_.end();
    +
    73  }
    +
    74 
    +
    75  const_iterator
    +
    76  end() const
    +
    77  {
    +
    78  return map_.end();
    +
    79  }
    +
    80 
    +
    81  size_type
    +
    82  size() const
    +
    83  {
    +
    84  return map_.size();
    +
    85  }
    +
    86 
    +
    87  bool
    +
    88  empty() const
    +
    89  {
    +
    90  return map_.empty();
    +
    91  }
    +
    92 
    +
    93  void
    +
    94  clear()
    +
    95  {
    +
    96  // non reentrant method, need to lock the hash_map
    +
    97  mutex::scoped_lock lock(map_mutex_);
    +
    98  map_.clear();
    +
    99  }
    +
    100 
    +
    101  bool
    +
    102  find( const_accessor& result, const Key& key) const
    +
    103  {
    +
    104  return map_.find(result,key);
    +
    105  }
    +
    106 
    +
    107  bool
    +
    108  find( accessor& result, const Key& key)
    +
    109  {
    +
    110  return map_.find(result,key);
    +
    111  }
    +
    112 
    +
    113  bool
    +
    114  insert( const_accessor& result, const Key& key)
    +
    115  {
    +
    116  return map_.insert(result,key);
    +
    117  }
    +
    118 
    +
    119  bool
    +
    120  insert( accessor& result, const Key& key)
    +
    121  {
    +
    122  return map_.insert(result,key);
    +
    123  }
    +
    124 
    +
    125  bool
    +
    126  erase( const Key& key)
    +
    127  {
    +
    128  return map_.erase(key);
    +
    129  }
    +
    130 
    +
    131 };
    +
    132 
    +
    133 #endif // REENTRANT
    +
    134 
    +
    135 #endif /* _CONCURRENT_HASH_MAP_HH_ */
    + +
    Definition: hash_support.hh:51
    +
    Definition: hash_support.hh:40
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/todo.html b/libddd.html/todo.html new file mode 100644 index 000000000..2f614b14c --- /dev/null +++ b/libddd.html/todo.html @@ -0,0 +1,104 @@ + + + + + + + +DDD: Todo List + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + +
    +
    +
    +
    Todo List
    +
    +
    +
    +
    Member _GShom::~_GShom ()
    +
    Remove this declaration ? compiler generated version sufficient.
    +
    Member _VarCompVar::compose (const GHom &other) const
    +
    other cases to be treated
    +
    Class DataSet
    +
    recent experiments with V. Beaudenon show maybe some behavior should be put here, for instance set_intersect is always empty if incompatible types are compared.
    +
    Member GDDD::garbage ()
    +
    describe garbage collection algorithm(s) + mark usage homogeneously in one place.
    +
    Member GDDD::GDDD (int variable, const Valuation &value)
    +
    why is this public ??? WARNING Valuation should be sorted according to arc values
    +
    Member GDDD::getvarName (int var)
    +
    This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
    +
    Member GDDD::pstats (bool reinit=true)
    +
    allow output in other place than cout. Clean up output.
    +
    Member GDDD::varName (int var, const std::string &name)
    +
    This function should be implemented in a name manager somewhere so that it is common to DDD and SDD variables.
    +
    Member GHom::add (const d3::set< GHom >::type &set)
    +
    std::set not very efficient for storage, replace by a sorted vector ?
    +
    Member GHom::ccompose (const d3::set< GHom >::type &set)
    +
    std::set not very efficient for storage, replace by a sorted vector ?
    +
    Member GHom::pstats (bool reinit=true)
    +
    allow output in other place than cout. Clean up output.
    +
    Member GSDD::garbage ()
    +
    describe garbage collection algorithm(s) + mark usage homogeneously in one place.
    +
    Member GSDD::pstats (bool reinit=true)
    +
    allow output in other place than cout. Clean up output.
    +
    Member GShom::add (const d3::set< GShom >::type &s)
    +
    : move this to friend status not static member for more homogeneity with other operators.
    +
    Member GShom::pstats (bool reinit=true)
    +
    Allow output not in std::cout.
    +
    Member MemoryManager::mark (const GDDD &g)
    +
    : track usage and check whether this is useful, SDD version undefined.
    +
    +
    Member MemoryManager::mark (const GHom &h)
    +
    : track usage and check whether this is useful, SDD version undefined.
    +
    +
    Class MyGHom
    +
    : What IS this for ? get rid of it.
    +
    Member SDDutil::getTable ()
    +
    implement nice generic dot export and eliminate this.
    +
    Member StrongHom::StrongHom ()
    +
    Is this declaration useful ?
    +
    Member StrongHom::~StrongHom ()
    +
    Is this declaration useful ?
    +
    Member StrongShom::StrongShom ()
    +
    Is this declaration useful ?
    +
    Member StrongShom::~StrongShom ()
    +
    Is this declaration useful ?
    +
    +
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/vector_8hh.html b/libddd.html/vector_8hh.html new file mode 100644 index 000000000..c30e3378e --- /dev/null +++ b/libddd.html/vector_8hh.html @@ -0,0 +1,98 @@ + + + + + + + +DDD: util/vector.hh File Reference + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    vector.hh File Reference
    +
    +
    +
    #include <vector>
    +#include "ddd/util/configuration.hh"
    +
    +Include dependency graph for vector.hh:
    +
    +
    + + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  d3::util::vector< T, Allocator >
     
    + + + + + +

    +Namespaces

     d3
     
     d3::util
     
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/libddd.html/vector_8hh__incl.map b/libddd.html/vector_8hh__incl.map new file mode 100644 index 000000000..c77afddf6 --- /dev/null +++ b/libddd.html/vector_8hh__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/libddd.html/vector_8hh__incl.md5 b/libddd.html/vector_8hh__incl.md5 new file mode 100644 index 000000000..ec230e2ed --- /dev/null +++ b/libddd.html/vector_8hh__incl.md5 @@ -0,0 +1 @@ +696e505ba68310864afcd00e35423105 \ No newline at end of file diff --git a/libddd.html/vector_8hh__incl.png b/libddd.html/vector_8hh__incl.png new file mode 100644 index 000000000..4cc0357a3 Binary files /dev/null and b/libddd.html/vector_8hh__incl.png differ diff --git a/libddd.html/vector_8hh_source.html b/libddd.html/vector_8hh_source.html new file mode 100644 index 000000000..f01fd0ace --- /dev/null +++ b/libddd.html/vector_8hh_source.html @@ -0,0 +1,86 @@ + + + + + + + +DDD: util/vector.hh Source File + + + + + + +
    +
    + + + + + + +
    +
    DDD +  1.9.0.20230925141806 +
    +
    +
    + + + + + + + +
    +
    +
    +
    vector.hh
    +
    +
    +Go to the documentation of this file.
    1 #ifndef _VECTOR_HH_
    +
    2 #define _VECTOR_HH_
    +
    3 
    +
    4 #include <vector>
    +
    5 
    + +
    7 
    +
    8 namespace d3 { namespace util
    +
    9 {
    +
    10 
    +
    11 template
    +
    12  <
    +
    13  typename T
    +
    14  , typename Allocator = typename conf::allocator<T>::type
    +
    15  >
    +
    16 struct vector
    +
    17 {
    +
    18  typedef typename std::vector<T,Allocator> type;
    +
    19 };
    +
    20 
    +
    21 }} // namespace d3::util
    +
    22 
    +
    23 
    +
    24 #endif /* _VECTOR_HH_ */
    + +
    Definition: Hom.cpp:41
    +
    std::allocator< T > type
    Definition: configuration.hh:39
    +
    Definition: vector.hh:17
    +
    std::vector< T, Allocator > type
    Definition: vector.hh:18
    +
    +
    +Please comment this page and report errors about it on +the RefDocComments page. +
    +Generated on Mon Sep 25 2023 14:21:59 for DDD by doxygen 1.9.1
    + + diff --git a/linux.tgz b/linux.tgz new file mode 100644 index 000000000..4d24e978e Binary files /dev/null and b/linux.tgz differ