LatticeHashForest
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK > Class Template Reference

The main LatticeHashForest structure. This class can be used as-is with a type or derived for additional functionality as needed. More...

#include <lhf.hpp>

Collaboration diagram for lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >:
Collaboration graph
[legend]

Classes

struct  Index
 Index returned by an operation. Being defined inside the class ensures type safety and possible future extensions. More...
 
struct  PropertySetHolder
 
class  PropertySetStorage
 

Public Types

using PropertyElement = typename Nesting::template PropertyElement< PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter >
 
using PropertySet = std::vector< PropertyElement >
 
using PropertySetHash = SetHash< PropertySet, PropertyElement, typename PropertyElement::Hash >
 
using PropertySetFullEqual = SetEqual< PropertySet, PropertyElement, typename PropertyElement::FullEqual >
 
using PropertySetMap = MapAdapter< std::unordered_map< const PropertySet *, IndexValue, PropertySetHash, PropertySetFullEqual > >
 
using UnaryOperationMap = OperationMap< IndexValue >
 
using BinaryOperationMap = OperationMap< OperationNode >
 
using RefList = typename Nesting::LHFReferenceList
 

Public Member Functions

 LatticeHashForest (RefList reflist={})
 
bool is_empty (const Index &i) const
 
SubsetRelation is_subset (const Index &a, const Index &b) const
 Returns whether we currently know whether a is a subset or a superset of b.
 
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)
 
template<bool disable_integrity_check = false>
Index register_set (const PropertySet &c, bool &cold)
 
template<bool disable_integrity_check = false>
Index register_set (PropertySet &&c)
 
template<bool disable_integrity_check = false>
Index register_set (PropertySet &&c, bool &cold)
 
template<typename Iterator , bool disable_integrity_check = false>
Index register_set (Iterator begin, Iterator end)
 
template<typename Iterator , bool disable_integrity_check = false>
Index register_set (Iterator begin, Iterator end, bool &cold)
 
const PropertySetget_value (const Index &index) const
 Gets the actual property set specified by index.
 
Size property_set_count () const
 Returns the total number of property sets currently in the LHF.
 
Size size_of (const Index &index) const
 Returns the size of the set at index
 
OptionalRef< PropertyElementfind_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 PropertyElement &)> filter_func, UnaryOperationMap &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) const
 
String dump () const
 Dumps the current state of the LHF to a string.
 
String dump_perf () const
 Dumps performance information as a string.
 

Static Public Member Functions

static bool less (const PropertyElement &a, const PropertyElement &b)
 Less than comparator for operations. You MUST use this instead of directly using anything else like "<".
 
static bool less_key (const PropertyElement &a, const PropertyT &b)
 
static bool less_key (const PropertyElement &a, const PropertyElement &b)
 
static bool equal (const PropertyElement &a, const PropertyElement &b)
 Equality comparator for operations. You MUST use this instead of directly using anything else like "<".
 
static bool equal_key (const PropertyElement &a, const PropertyT &b)
 
static bool equal_key (const PropertyElement &a, const PropertyElement &b)
 
static String property_set_to_string (const PropertySet &set)
 Converts the property set to a string.
 

Protected Member Functions

void store_subset (const Index &a, const Index &b)
 Stores index a as the subset of index b if a < b, else stores index a as the superset of index b
 

Protected Attributes

RefList reflist
 
PerformanceStatistics stat
 
HashMap< String, OperationPerfperf
 
PropertySetStorage property_sets = {}
 
PropertySetMap property_set_map = {}
 
BinaryOperationMap unions = {}
 
BinaryOperationMap intersections = {}
 
BinaryOperationMap differences = {}
 
InternalMap< OperationNode, SubsetRelationsubsets = {}
 

Friends

std::ostream & operator<< (std::ostream &os, const LatticeHashForest &obj)
 

Detailed Description

template<typename PropertyT, typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
class lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >

The main LatticeHashForest structure. This class can be used as-is with a type or derived for additional functionality as needed.

Template Parameters
PropertyTThe 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
PropertyLessCustom less-than comparator (if required)
PropertyHashCustom hasher (if required)
PropertyEqualCustom equality comaparator (if required)
PropertyPrinterPropertyT string representation generator
NestingNesting behaviour of the LHF

Definition at line 1099 of file lhf.hpp.

Member Typedef Documentation

◆ BinaryOperationMap

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::BinaryOperationMap = OperationMap<OperationNode>

Definition at line 1215 of file lhf.hpp.

◆ PropertyElement

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::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 1150 of file lhf.hpp.

◆ PropertySet

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySet = std::vector<PropertyElement>

The storage structure for property elements. Currently implemented as sorted vectors.

Definition at line 1161 of file lhf.hpp.

◆ PropertySetFullEqual

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySetFullEqual = SetEqual< PropertySet, PropertyElement, typename PropertyElement::FullEqual>

Definition at line 1169 of file lhf.hpp.

◆ PropertySetHash

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySetHash = SetHash< PropertySet, PropertyElement, typename PropertyElement::Hash>

Definition at line 1163 of file lhf.hpp.

◆ PropertySetMap

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::PropertySetMap = MapAdapter<std::unordered_map< const PropertySet *, IndexValue, PropertySetHash, PropertySetFullEqual> >

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 1207 of file lhf.hpp.

◆ RefList

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::RefList = typename Nesting::LHFReferenceList

Definition at line 1216 of file lhf.hpp.

◆ UnaryOperationMap

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
using lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::UnaryOperationMap = OperationMap<IndexValue>

Definition at line 1214 of file lhf.hpp.

Constructor & Destructor Documentation

◆ LatticeHashForest()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::LatticeHashForest ( RefList  reflist = {})
inlineexplicit

Definition at line 1457 of file lhf.hpp.

Member Function Documentation

◆ contains()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::contains ( const Index index,
const PropertyElement prop 
) const
inline

Determines whether the property set at index contains the element prop or not.

Parameters
[in]indexThe index
[in]propThe property
Returns
true if prop is in index, false otherwise.

Definition at line 1916 of file lhf.hpp.

◆ dump()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
String lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::dump ( ) const
inline

Dumps the current state of the LHF to a string.

Definition at line 2412 of file lhf.hpp.

◆ dump_perf()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
String lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::dump_perf ( ) const
inline

Dumps performance information as a string.

Note
Conditionally enabled if LHF_ENABLE_PERFORMANCE_METRICS is set.
Returns
String containing performance information as a human-readable string.

Definition at line 2458 of file lhf.hpp.

◆ equal()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::equal ( const PropertyElement a,
const PropertyElement b 
)
inlinestatic

Equality comparator for operations. You MUST use this instead of directly using anything else like "<".

Parameters
[in]aLHS Property
[in]bRHS Property
Returns
Result of doing a == b according to provided semantics.

Definition at line 1851 of file lhf.hpp.

◆ equal_key() [1/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::equal_key ( const PropertyElement a,
const PropertyElement b 
)
inlinestatic

Definition at line 1859 of file lhf.hpp.

◆ equal_key() [2/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::equal_key ( const PropertyElement a,
const PropertyT &  b 
)
inlinestatic

Definition at line 1855 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
OptionalRef< PropertyElement > lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::find_key ( const Index index,
const PropertyT &  p 
) const
inline

Finds a property element in the set based on the key provided.

Parameters
[in]indexSet Index
[in]pKey
Returns
An optional that contains a property element if the key was found.

Definition at line 1873 of file lhf.hpp.

◆ get_value()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
const PropertySet & lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::get_value ( const Index index) const
inline

Gets the actual property set specified by index.

Parameters
[in]indexThe index
Returns
The property set.

Definition at line 1786 of file lhf.hpp.

◆ is_empty()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::is_empty ( const Index i) const
inline

Definition at line 1462 of file lhf.hpp.

◆ is_subset()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
SubsetRelation lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::is_subset ( const Index a,
const Index b 
) const
inline

Returns whether we currently know whether a is a subset or a superset of b.

Parameters
[in]aThe first set
[in]bThe second set
Returns
Enum value telling if it's a subset, superset or unknown

Definition at line 1475 of file lhf.hpp.

◆ less()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::less ( const PropertyElement a,
const PropertyElement b 
)
inlinestatic

Less than comparator for operations. You MUST use this instead of directly using anything else like "<".

Parameters
[in]aLHS Property
[in]bRHS Property
Returns
Result of doing a < b according to provided semantics.

Definition at line 1830 of file lhf.hpp.

◆ less_key() [1/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::less_key ( const PropertyElement a,
const PropertyElement b 
)
inlinestatic

Definition at line 1838 of file lhf.hpp.

◆ less_key() [2/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static bool lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::less_key ( const PropertyElement a,
const PropertyT &  b 
)
inlinestatic

Definition at line 1834 of file lhf.hpp.

◆ prepare_vector_set()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
void lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::prepare_vector_set ( PropertySet c)
inline

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 1567 of file lhf.hpp.

◆ property_set_count()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Size lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::property_set_count ( ) const
inline

Returns the total number of property sets currently in the LHF.

Returns
The count.

Definition at line 1802 of file lhf.hpp.

◆ property_set_to_string() [1/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
String lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::property_set_to_string ( const Index idx) const
inline

Definition at line 2405 of file lhf.hpp.

◆ property_set_to_string() [2/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
static String lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::property_set_to_string ( const PropertySet set)
inlinestatic

Converts the property set to a string.

Parameters
[in]setThe set
Returns
The string representation of the set.

Definition at line 2394 of file lhf.hpp.

◆ register_set() [1/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( const PropertySet c)
inline

Definition at line 1582 of file lhf.hpp.

◆ register_set() [2/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( const PropertySet c,
bool &  cold 
)
inline

Definition at line 1610 of file lhf.hpp.

◆ register_set() [3/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<typename Iterator , bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( Iterator  begin,
Iterator  end 
)
inline

Definition at line 1702 of file lhf.hpp.

◆ register_set() [4/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<typename Iterator , bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( Iterator  begin,
Iterator  end,
bool &  cold 
)
inline

Definition at line 1731 of file lhf.hpp.

◆ register_set() [5/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( PropertySet &&  c)
inline

Definition at line 1642 of file lhf.hpp.

◆ register_set() [6/6]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
template<bool disable_integrity_check = false>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set ( PropertySet &&  c,
bool &  cold 
)
inline

Definition at line 1670 of file lhf.hpp.

◆ register_set_single() [1/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set_single ( const PropertyElement c)
inline

Inserts a (or gets an existing) single-element set into property set storage.

Parameters
[in]cThe 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 1497 of file lhf.hpp.

◆ register_set_single() [2/2]

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::register_set_single ( const PropertyElement c,
bool &  cold 
)
inline

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]cThe single-element property set.
[out]coldReport if this was a cold miss.
Returns
Index of the newly created set.

Definition at line 1532 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_difference ( const Index a,
const Index b 
)
inline

Calculates, or returns a cached result of the difference of a from b

Parameters
[in]aThe first set (what to subtract from)
[in]bThe second set (what will be subtracted)
Returns
Index of the new PropertySet.

Definition at line 2091 of file lhf.hpp.

◆ set_filter()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_filter ( Index  s,
std::function< bool(const PropertyElement &)>  filter_func,
UnaryOperationMap cache 
)
inline

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]sThe set to filter
[in]filter_funcThe filter function (can be a lambda)
cacheThe cache to use (possibly defined by the user)
Template Parameters
is_sort_boundedUseful 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

Implement bounding as a separate function instead

Returns
Index of the filtered set.

Definition at line 2342 of file lhf.hpp.

◆ set_insert_single()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_insert_single ( const Index a,
const PropertyElement b 
)
inline

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]aThe set to insert the element to
[in]bThe element to be inserted.
Returns
Index of the new PropertySet.

Definition at line 2077 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_intersection ( const Index _a,
const Index _b 
)
inline

Calculates, or returns a cached result of the intersection of a and b

Parameters
[in]aThe first set
[in]bThe second set
Returns
Index of the new property set.

Definition at line 2228 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_remove_single ( const Index a,
const PropertyElement b 
)
inline

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]aThe set to remove the element from
[in]bThe element to be removed
Returns
Index of the new PropertySet.

Definition at line 2190 of file lhf.hpp.

◆ set_remove_single_key()

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::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]aThe set to remove the element from
[in]pThe key of the element with that is to be removed
Returns
Index of the new PropertySet.

Definition at line 2203 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Index lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::set_union ( const Index _a,
const Index _b 
)
inline

Calculates, or returns a cached result of the union of a and b

Parameters
[in]aThe first set
[in]bThe second set
Returns
Index of the new property set.

Definition at line 1959 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
Size lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::size_of ( const Index index) const
inline

Returns the size of the set at index

Parameters
[in]indexThe index
Returns
size of the set.

Definition at line 1813 of file lhf.hpp.

◆ 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>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
void lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::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]aThe index of the first set
[in]bThe index of the second set.

Definition at line 1443 of file lhf.hpp.

Friends And Related Symbol Documentation

◆ operator<<

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
std::ostream & operator<< ( std::ostream &  os,
const LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK > &  obj 
)
friend

Definition at line 2445 of file lhf.hpp.

Member Data Documentation

◆ differences

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
BinaryOperationMap lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::differences = {}
protected

Definition at line 1432 of file lhf.hpp.

◆ intersections

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
BinaryOperationMap lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::intersections = {}
protected

Definition at line 1431 of file lhf.hpp.

◆ perf

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
HashMap<String, OperationPerf> lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::perf
protected

Definition at line 1223 of file lhf.hpp.

◆ property_set_map

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
PropertySetMap lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::property_set_map = {}
protected

Definition at line 1428 of file lhf.hpp.

◆ property_sets

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
PropertySetStorage lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::property_sets = {}
protected

Definition at line 1425 of file lhf.hpp.

◆ reflist

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
RefList lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::reflist
protected

Definition at line 1219 of file lhf.hpp.

◆ stat

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
PerformanceStatistics lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::stat
protected

Definition at line 1222 of file lhf.hpp.

◆ subsets

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
InternalMap<OperationNode, SubsetRelation> lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::subsets = {}
protected

Definition at line 1434 of file lhf.hpp.

◆ unions

template<typename PropertyT , typename PropertyLess = DefaultLess<PropertyT>, typename PropertyHash = DefaultHash<PropertyT>, typename PropertyEqual = DefaultEqual<PropertyT>, typename PropertyPrinter = DefaultPrinter<PropertyT>, typename Nesting = NestingNone<PropertyT>, Size BLOCK_SIZE = LHF_DEFAULT_BLOCK_SIZE, Size BLOCK_MASK = LHF_DEFAULT_BLOCK_MASK>
BinaryOperationMap lhf::LatticeHashForest< PropertyT, PropertyLess, PropertyHash, PropertyEqual, PropertyPrinter, Nesting, BLOCK_SIZE, BLOCK_MASK >::unions = {}
protected

Definition at line 1430 of file lhf.hpp.


The documentation for this class was generated from the following file: