|
| LatticeHashForest (RefList reflist={}) |
|
bool | is_empty (const Index &i) const |
|
Index | register_set_single (const PropertyElement &c) |
| Inserts a (or gets an existing) single-element set into property set storage.
|
|
Index | register_set_single (const PropertyElement &c, bool &cold) |
| Inserts a (or gets an existing) single-element set into the property set storage, and reports whether this set was already present or not.
|
|
void | prepare_vector_set (PropertySet &c) |
|
template<bool disable_integrity_check = false> |
Index | register_set (const PropertySet &c) |
| Inserts a (or gets an existing) set into property set storage.
|
|
template<bool disable_integrity_check = false> |
Index | register_set (const PropertySet &c, bool &cold) |
| Inserts a (or gets an existing) set into property set storage, and reports whether this set was already present or not.
|
|
template<bool disable_integrity_check = false> |
Index | register_set (PropertySet &&c) |
|
template<bool disable_integrity_check = false> |
Index | register_set (PropertySet &&c, bool &cold) |
|
const PropertySet & | get_value (const Index &index) const |
| Gets the actual property set specified by index.
|
|
std::size_t | property_set_count () const |
| Returns the total number of property sets currently in the LHF.
|
|
std::size_t | size_of (const Index &index) const |
| Returns the size of the set at index
|
|
Optional< PropertyElement > | find_key (const Index &index, const PropertyT &p) const |
| Finds a property element in the set based on the key provided.
|
|
bool | contains (const Index &index, const PropertyElement &prop) const |
| Determines whether the property set at index contains the element prop or not.
|
|
Index | set_union (const Index &_a, const Index &_b) |
| Calculates, or returns a cached result of the union of a and b
|
|
Index | set_insert_single (const Index &a, const PropertyElement &b) |
| Inserts a single element from a given set (and returns the index of the set). This is a wrapper over the union operation.
|
|
Index | set_difference (const Index &a, const Index &b) |
| Calculates, or returns a cached result of the difference of a from b
|
|
Index | set_remove_single (const Index &a, const PropertyElement &b) |
| Removes a single element from a given set (and returns the index of the set). This is a wrapper over the diffrerence operation.
|
|
Index | set_remove_single_key (const Index &a, const PropertyT &p) |
| Removes a single element from a given set if the "key" element matches.
|
|
Index | set_intersection (const Index &_a, const Index &_b) |
| Calculates, or returns a cached result of the intersection of a and b
|
|
Index | set_filter (Index s, std::function< bool(const PropertyT &)> filter_func, HashMap< IndexValue, IndexValue > &cache) |
| Filters a set based on a criterion function. This is supposed to be an abstract filtering mechanism that derived classes will use to implement caching on a filter operation rather than letting them implement their own.
|
|
String | property_set_to_string (const Index &idx) |
|
String | dump () const |
| Dumps the current state of the LHF to a string.
|
|
String | dump_perf () const |
| Dumps a performance information.
|
|
template<typename PropertyT, typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
class lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >
The main LatticeHashForest structure. This class can be used as-is with a type or derived for additional functionality as needed.
- Template Parameters
-
PropertyT | The type of the property. The property type must satisfy the following:
- It must be hashable with std::hash
- It must be less-than comparable
- It can be checked for equality
|
PropertyLess | Custom less-than comparator (if required) |
PropertyHash | Custom hasher (if required) |
PropertyEqual | Custom equality comaparator (if required) |
PropertyPrinter | PropertyT string representation generator |
Nesting | Nesting behaviour of the LHF |
Definition at line 842 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::PropertyElement = typename Nesting::template PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter> |
The canonical element of property sets. Changes based on the nesting behaviour supplied.
Definition at line 893 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
The storage structure for property elements. Currently implemented as sorted vectors.
Definition at line 904 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::PropertySetMap = std::unordered_map< const PropertySet *, IndexValue, SetHash< PropertySet, PropertyElement, typename PropertyElement::Hash>, SetEqual< PropertySet, PropertyElement, typename PropertyElement::FullEqual> > |
The structure responsible for mapping property sets to their respective unique indices. When a key-value pair is actually inserted into the map, the key is a pointer to a valid storage location held by a member of the property set storage vector.
- Note
- The reason the 'key type' of the map is a pointer to a property set is because of several reasons:
- Allows us to query arbitrary/user created property sets on the map.
- Makes it not necessary to actually directly store the property set as a key.
- Saves us from having to do some sort of complicated manuever to reserve an index value temporarily and rewrite the hash and equality comparators to retrieve the property sets from the indices instead.
Careful handling, especially in the case of reallocating structures like vectors is needed so that the address of the data does not change. It must remain static for the duration of the existence of the LHF instance.
Definition at line 929 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Determines whether the property set at index
contains the element prop
or not.
- Parameters
-
[in] | index | The index |
[in] | prop | The property |
- Returns
true
if prop
is in index
, false otherwise.
Definition at line 1338 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Dumps the current state of the LHF to a string.
- Returns
- The dumped value.
Definition at line 1809 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Dumps a performance information.
- Note
- Conditionally enabled if
LHF_ENABLE_PERFORMANCE_METRICS
is set.
- Returns
- String containing performance information as a human-readable string.
Definition at line 1859 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Equality comparator for operations. You MUST use this instead of directly using anything else like "<".
- Parameters
-
[in] | a | LHS Property |
[in] | b | RHS Property |
- Returns
- Result of doing a == b according to provided semantics.
Definition at line 1277 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::contains(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::find_key().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Finds a property element in the set based on the key provided.
- Parameters
-
[in] | index | Set Index |
[in] | p | Key |
- Returns
- An optional that contains a property element if the key was found.
Definition at line 1295 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Gets the actual property set specified by index.
- Parameters
-
- Returns
- The property set.
Definition at line 1221 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::contains(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::find_key(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::property_set_to_string(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_filter(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_remove_single_key(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::size_of().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::is_empty |
( |
const Index & |
i | ) |
const |
|
inline |
Definition at line 1010 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::contains(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::find_key(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_filter(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Returns whether we currently know whether a is a subset or a superset of b.
- Parameters
-
[in] | a | The first set |
[in] | b | The second set |
- Returns
- Enum value telling if it's a subset, superset or unknown
Definition at line 973 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Less than comparator for operations. You MUST use this instead of directly using anything else like "<".
- Parameters
-
[in] | a | LHS Property |
[in] | b | RHS Property |
- Returns
- Result of doing a < b according to provided semantics.
Definition at line 1260 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::contains(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Deduplicates and sorts a vector (to function equivalently to a set).
The deduplicate-sort function here is based on a stackoverflow answer (chosen for speed metrics): https://stackoverflow.com/a/24477023
Ideally, this shouldn't be used or require being used.
Definition at line 1084 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
std::size_t lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::property_set_count |
( |
| ) |
const |
|
inline |
Returns the total number of property sets currently in the LHF.
- Returns
- The count.
Definition at line 1232 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Converts the property set to a string.
- Parameters
-
- Returns
- The string representation of the set.
Definition at line 1789 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::property_set_to_string().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<bool disable_integrity_check = false>
Inserts a (or gets an existing) set into property set storage.
- Parameters
-
- Returns
- Index of the newly created set.
- Todo:
- Check whether the cache hit check can be removed.
Definition at line 1109 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<bool disable_integrity_check = false>
Inserts a (or gets an existing) set into property set storage, and reports whether this set was already present or not.
- Parameters
-
[in] | c | The property set. |
[out] | cold | Report if this was a cold miss. |
- Returns
- Index of the newly created/existing set.
- Todo:
- Check whether the cache hit check can be removed.
Definition at line 1144 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<bool disable_integrity_check = false>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<bool disable_integrity_check = false>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Inserts a (or gets an existing) single-element set into property set storage.
- Parameters
-
[in] | c | The single-element property set. |
- Returns
- Index of the newly created/existing set.
- Todo:
- Check whether the cache hit check can be removed.
Definition at line 1024 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_insert_single(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_remove_single().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Inserts a (or gets an existing) single-element set into the property set storage, and reports whether this set was already present or not.
- Parameters
-
[in] | c | The single-element property set. |
[out] | cold | Report if this was a cold miss. |
- Returns
- Index of the newly created set.
Definition at line 1054 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Calculates, or returns a cached result of the difference of a
from b
- Parameters
-
[in] | a | The first set (what to subtract from) |
[in] | b | The second set (what will be subtracted) |
- Returns
- Index of the new PropertySet.
Definition at line 1507 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_remove_single().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Filters a set based on a criterion function. This is supposed to be an abstract filtering mechanism that derived classes will use to implement caching on a filter operation rather than letting them implement their own.
- Parameters
-
[in] | s | The set to filter |
[in] | filter_func | The filter function (can be a lambda) |
| cache | The cache to use (possibly defined by the user) |
- Template Parameters
-
is_sort_bounded | Useful for telling the function that the filter criterion will have a lower and an upper bound in a sorted list. This can potentially result in a faster filtering. |
- Todo:
- Implement sort bound optimization
- Returns
- Index of the filtered set.
Definition at line 1743 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Inserts a single element from a given set (and returns the index of the set). This is a wrapper over the union operation.
- Parameters
-
[in] | a | The set to insert the element to |
[in] | b | The element to be inserted. |
- Returns
- Index of the new PropertySet.
Definition at line 1493 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Removes a single element from a given set (and returns the index of the set). This is a wrapper over the diffrerence operation.
- Parameters
-
[in] | a | The set to remove the element from |
[in] | b | The element to be removed |
- Returns
- Index of the new PropertySet.
Definition at line 1599 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_remove_single_key |
( |
const Index & |
a, |
|
|
const PropertyT & |
p |
|
) |
| |
|
inline |
Removes a single element from a given set if the "key" element matches.
- Parameters
-
[in] | a | The set to remove the element from |
[in] | p | The key of the element with that is to be removed |
- Returns
- Index of the new PropertySet.
Definition at line 1612 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Calculates, or returns a cached result of the union of a
and b
- Parameters
-
[in] | a | The first set |
[in] | b | The second set |
- Returns
- Index of the new property set.
Definition at line 1382 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_insert_single(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
std::size_t lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::size_of |
( |
const Index & |
index | ) |
const |
|
inline |
Returns the size of the set at index
- Parameters
-
- Returns
- size of the set.
Definition at line 1243 of file lhf.hpp.
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
void lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::store_subset |
( |
const Index & |
a, |
|
|
const Index & |
b |
|
) |
| |
|
inlineprotected |
Stores index a
as the subset of index b
if a < b, else stores index a
as the superset of index b
- Parameters
-
[in] | a | The index of the first set |
[in] | b | The index of the second set. |
Definition at line 991 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 961 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 960 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 957 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 954 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::get_value(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::property_set_count(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 946 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 949 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump_perf(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::register_set_single(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_difference(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_filter(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_intersection(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::store_subset().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 962 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::is_subset(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::store_subset().
template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>>
Definition at line 959 of file lhf.hpp.
Referenced by lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::dump(), and lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting >::set_union().