Loading...
Searching...
No Matches
DataHashTable< HashItem, Info > Class Template Reference Generic hash table for data objects. More...
Detailed Descriptiontemplate<class HashItem, class Info> class soplex::DataHashTable< HashItem, Info > Generic hash table for data objects. Class DataHashTable provides a generic hash table for Data Objects, i.e., a map that maps arguments called HashItems to values called Infos. HashItem and Info types are passed as template arguments. HashItems must provide a comparison operator==(). Furthermore, both the HashItem and Info must be data objects in the sense that the assignment operator is equivalent to a The construction of a DataHashTable requires a hash function that assigns an integer value to every HashItem. Provided this, pairs of a HashItem and a Info can be added to the DataHashTable. No more than one Info can be assigned to the same HashItem at a time. The Info to a HashItem can be accessed through the subscript operator[]() with the Info object as a subscript. The maximum number of elemens a DataHashTable can hold can be specified upon construction and may be reset with reMax() later on. Further, a value hash size value is required. This value must be less then the maximum number of elements and must not have a common dominator with the maximum number of elements. If not specified explicitely, it is set automatically to a reasonable value. The implementation relies on an array of DataHashTable::Elements, from now on referred to as elements. Upon construction, all elements are marked as Removing elements is simply done by marking it as Further, memory management with resizing of the element array is straight forward. Definition at line 88 of file datahashtable.h. Member Typedef Documentation◆ ElemDefinition at line 112 of file datahashtable.h. Constructor & Destructor Documentation◆ DataHashTable() [1/2]
template<class HashItem , class Info >
default constructor. Allocates a DataHashTable for
Definition at line 293 of file datahashtable.h. References DataHashTable< HashItem, Info >::autoHashSize(), DataHashTable< HashItem, Info >::clear(), DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::m_hashsize, DataHashTable< HashItem, Info >::m_memfactor, DataHashTable< HashItem, Info >::nprimes, and DataHashTable< HashItem, Info >::primes. ◆ DataHashTable() [2/2]
template<class HashItem , class Info >
copy constructor. Definition at line 372 of file datahashtable.h. References DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::m_memfactor, and DataHashTable< HashItem, Info >::primes. Member Function Documentation◆ add()
template<class HashItem , class Info >
adds a new entry to the hash table. Adds a new entry consisting of HashItem Definition at line 177 of file datahashtable.h. References DataHashTable< HashItem, Info >::has(), DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_hashfun, DataHashTable< HashItem, Info >::m_hashsize, DataHashTable< HashItem, Info >::m_memfactor, DataHashTable< HashItem, Info >::m_used, DataHashTable< HashItem, Info >::reMax(), SOPLEX_HASHTABLE_FILLFACTOR, and DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::USED. Referenced by DataHashTable< HashItem, Info >::reMax(). ◆ autoHashSize()
template<class HashItem , class Info >
determine a good m_hashsize. Determine next larger prime number for new m_hashsize
Definition at line 395 of file datahashtable.h. References DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::nprimes, and DataHashTable< HashItem, Info >::primes. Referenced by DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::reMax(). ◆ autoHashSizeold()
template<class HashItem , class Info >
automatically computes a good m_hashsize. Computes a good m_hashsize as the product of all prime numbers not divisors of the number of elements that are <= the maximum divisor of the number of elemens.
Definition at line 432 of file datahashtable.h. References DataHashTable< HashItem, Info >::m_elem. ◆ clear()
template<class HashItem , class Info >
remove all entries from DataHashTable. Definition at line 218 of file datahashtable.h. References DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::FREE, DataHashTable< HashItem, Info >::m_elem, and DataHashTable< HashItem, Info >::m_used. Referenced by DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::reMax(). ◆ get()
template<class HashItem , class Info >
returns const pointer to Info of HashItem Returns a pointer to Info component of hash element Definition at line 151 of file datahashtable.h. References DataHashTable< HashItem, Info >::index(), and DataHashTable< HashItem, Info >::m_elem. ◆ has()
template<class HashItem , class Info >
Is item Definition at line 141 of file datahashtable.h. References DataHashTable< HashItem, Info >::index(). Referenced by DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::operator[](), and DataHashTable< HashItem, Info >::remove(). ◆ index()
template<class HashItem , class Info >
returns hash index of HashItem Using the hash function m_hashfun, the hash value of
Definition at line 475 of file datahashtable.h. References DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::FREE, DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_hashsize, DataHashTable< HashItem, Info >::m_used, and DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::USED. Referenced by DataHashTable< HashItem, Info >::get(), DataHashTable< HashItem, Info >::has(), DataHashTable< HashItem, Info >::operator[](), and DataHashTable< HashItem, Info >::remove(). ◆ isConsistent()
template<class HashItem , class Info >
checks whether DataHashTable is consistent Definition at line 251 of file datahashtable.h. References DataHashTable< HashItem, Info >::has(), DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_used, SPX_MSG_INCONSISTENT, and DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::USED. Referenced by DataHashTable< HashItem, Info >::DataHashTable(), DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::operator=(). ◆ operator=()
template<class HashItem , class Info >
assignment operator. Definition at line 356 of file datahashtable.h. References DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_hashfun, DataHashTable< HashItem, Info >::m_hashsize, DataHashTable< HashItem, Info >::m_memfactor, DataHashTable< HashItem, Info >::m_used, DataHashTable< HashItem, Info >::nprimes, and DataHashTable< HashItem, Info >::primes. ◆ operator[]()
template<class HashItem , class Info >
references Info of HashItem Index operator for accessing the Info associated to HashItem Definition at line 164 of file datahashtable.h. References DataHashTable< HashItem, Info >::has(), DataHashTable< HashItem, Info >::index(), and DataHashTable< HashItem, Info >::m_elem. ◆ reMax()
template<class HashItem , class Info >
reset size of the DataHashTable. Reset the maximum number of elements of a DataHashTable to Definition at line 231 of file datahashtable.h. References DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::autoHashSize(), DataHashTable< HashItem, Info >::clear(), DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_hashsize, DataHashTable< HashItem, Info >::m_used, Array< T >::size(), and DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::USED. Referenced by DataHashTable< HashItem, Info >::add(). ◆ remove()
template<class HashItem , class Info >
remove HashItem Definition at line 205 of file datahashtable.h. References DataHashTable< HashItem, Info >::has(), DataHashTable< HashItem, Info >::index(), DataHashTable< HashItem, Info >::m_elem, DataHashTable< HashItem, Info >::m_used, and DataHashTable< HashItem, Info >::Element< ElemHashItem, ElemInfo >::RELEASED. Member Data Documentation◆ m_elemstores all elements of the hash table Definition at line 119 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::autoHashSize(), DataHashTable< HashItem, Info >::autoHashSizeold(), DataHashTable< HashItem, Info >::clear(), DataHashTable< HashItem, Info >::get(), DataHashTable< HashItem, Info >::index(), DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::operator=(), DataHashTable< HashItem, Info >::operator[](), DataHashTable< HashItem, Info >::reMax(), and DataHashTable< HashItem, Info >::remove(). ◆ m_hashfun
template<class HashItem , class Info >
pointer to hash function (mapping: HashItem -> int) Definition at line 125 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::add(), and DataHashTable< HashItem, Info >::operator=(). ◆ m_hashsize
template<class HashItem , class Info >
increment added to hash index, if allready used Definition at line 121 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::DataHashTable(), DataHashTable< HashItem, Info >::index(), DataHashTable< HashItem, Info >::operator=(), and DataHashTable< HashItem, Info >::reMax(). ◆ m_memfactor
template<class HashItem , class Info >
memory is reMax()ed by this factor if a new element does't fit Definition at line 127 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::DataHashTable(), DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::operator=(). ◆ m_used
template<class HashItem , class Info >
current number of entries in the hash table Definition at line 123 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::add(), DataHashTable< HashItem, Info >::clear(), DataHashTable< HashItem, Info >::index(), DataHashTable< HashItem, Info >::isConsistent(), DataHashTable< HashItem, Info >::operator=(), DataHashTable< HashItem, Info >::reMax(), and DataHashTable< HashItem, Info >::remove(). ◆ nprimes
template<class HashItem , class Info >
number of stored prime numbers Definition at line 131 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::autoHashSize(), DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::operator=(). ◆ primes
template<class HashItem , class Info >
some prime numbers for fast access Definition at line 129 of file datahashtable.h. Referenced by DataHashTable< HashItem, Info >::autoHashSize(), DataHashTable< HashItem, Info >::DataHashTable(), DataHashTable< HashItem, Info >::DataHashTable(), and DataHashTable< HashItem, Info >::operator=().
|