Neko
0.8.1
A portable framework for high-order spectral element flow simulations
|
Implements a hash table ADT. More...
Data Types | |
type | h_tuple_t |
Hash table entry, tuple (key, data) More... | |
type | htable_t |
Base type for a hash table. More... | |
interface | htable_hash |
type | htable_i4_t |
Integer based hash table. More... | |
type | htable_i8_t |
Integer*8 based hash table. More... | |
type | htable_r8_t |
Double precision based hash table. More... | |
type | htable_pt_t |
Point based hash table. More... | |
type | htable_i4t2_t |
Integer 2-tuple based hash table. More... | |
type | htable_i4t4_t |
Integer 4-tuple based hash table. More... | |
type | htable_cptr_t |
C pointer based hash table. More... | |
type | htable_iter_t |
Base type for a hash table iterator. More... | |
type | htable_iter_i4_t |
Iterator for an integer based hash table. More... | |
type | htable_iter_i8_t |
Iterator for an integer*8 based hash table. More... | |
type | htable_iter_r8_t |
Iterator for a double precision based hash table. More... | |
type | htable_iter_pt_t |
Iterator for a point based hash table. More... | |
type | htable_iter_i4t2_t |
Iterator for an integer based 2-tuple hash table. More... | |
type | htable_iter_i4t4_t |
Iterator for an integer based 4-tuple hash table. More... | |
type | htable_iter_cptr_t |
Iterator for a C pointer based hash table. More... | |
type | h_cptr_t |
Functions/Subroutines | |
subroutine | htable_init (this, size, key, data) |
Initialize a hash table of type data. More... | |
subroutine | htable_free (this) |
Destroy a hash table. More... | |
subroutine | htable_clear (this) |
Clear all entries in a hash table. More... | |
pure integer function | htable_num_entries (this) |
Return number of entries in the table. More... | |
pure integer function | htable_size (this) |
Return total size of htable. More... | |
recursive subroutine | htable_set (this, key, data) |
Insert tuple (key, value) into the hash table. More... | |
integer function | htable_get (this, key, data) |
Retrieve data associated with key into the hash table. More... | |
subroutine | htable_remove (this, key) |
Remove a key from the hash table. More... | |
subroutine | htable_set_data (this, idx, data) |
Set data at idx to value. More... | |
subroutine | htable_get_data (this, idx, data) |
Return data at idx in value. More... | |
pure logical function | htable_eq_key (this, idx, key) |
Compare key at idx to key. More... | |
subroutine | htable_set_key (this, idx, key) |
Set key at idx to key. More... | |
logical function | htable_iter_next (this) |
Advance the iterator to the next valid table entry. More... | |
subroutine | htable_iter_reset (this) |
Reset an iterator. More... | |
subroutine | htable_iter_data (this, data) |
Return the data at the current iterator position. More... | |
subroutine | htable_i4_init (this, size, data) |
Initialize an integer based hash table. More... | |
subroutine | htable_i4_set (this, key, data) |
Insert an integer into the hash table. More... | |
integer function | htable_i4_get (this, key, data) |
Retrive an integer with key key from the hash table. More... | |
pure integer function | htable_i4_hash (this, k, c) |
Hash function for an integer based hash table. More... | |
subroutine | htable_i4_remove (this, key) |
Remove an integer with key key from the hash table. More... | |
subroutine | htable_iter_i4_init (this, t) |
Initialize an integer based hash table iterator. More... | |
subroutine | htable_iter_i4_free (this) |
Destroy an integer based hash table iterator. More... | |
integer function, pointer | htable_iter_i4_value (this) |
Return the current value of the integer based hash table iterator. More... | |
integer function, pointer | htable_iter_i4_key (this) |
Return the current key of the integer based hash table iterator. More... | |
subroutine | htable_i8_init (this, size, data) |
Initialize an integer*8 based hash table. More... | |
subroutine | htable_i8_set (this, key, data) |
Insert an integer*8 into the hash table. More... | |
integer function | htable_i8_get (this, key, data) |
Retrive an integer*8 with key key from the hash table. More... | |
pure integer function | htable_i8_hash (this, k, c) |
Hash function for an integer*8 based hash table. More... | |
subroutine | htable_i8_remove (this, key) |
Remove an integer*8 with key key from the hash table. More... | |
subroutine | htable_iter_i8_init (this, t) |
Initialize an integer*8 based hash table iterator. More... | |
subroutine | htable_iter_i8_free (this) |
Destroy an integer*8 based hash table iterator. More... | |
integer(kind=i8) function, pointer | htable_iter_i8_value (this) |
Return the current value of the integer*8 based hash table iterator. More... | |
integer(kind=i8) function, pointer | htable_iter_i8_key (this) |
Return the current key of the integer*8 based hash table iterator. More... | |
subroutine | htable_r8_init (this, size, data) |
Initialize a double precision based hash table. More... | |
subroutine | htable_r8_set (this, key, data) |
Insert a double precision key (with data) into the hash table. More... | |
integer function | htable_r8_get (this, key, data) |
Retrive a double precision float with key key from the hash table. More... | |
pure integer function | htable_r8_hash (this, k, c) |
Hash function for a double precision based hash table. More... | |
subroutine | htable_r8_remove (this, key) |
Remove a double precision key key from the hash table. More... | |
subroutine | htable_iter_r8_init (this, t) |
Initialize a double precision based hash table iterator. More... | |
subroutine | htable_iter_r8_free (this) |
Destroy a double precision based hash table iterator. More... | |
real(kind=dp) function, pointer | htable_iter_r8_value (this) |
Return the current value of the double precision based hash table iterator. More... | |
real(kind=dp) function, pointer | htable_iter_r8_key (this) |
Return the current key of the double precision based hash table iterator. More... | |
subroutine | htable_pt_init (this, size, data) |
Initialize a point based hash table. More... | |
subroutine | htable_pt_set (this, key, data) |
Insert a point key (with data) into the hash table. More... | |
integer function | htable_pt_get (this, key, data) |
Retrive a point with key key from the hash table. More... | |
pure integer function | htable_pt_hash (this, k, c) |
Hash function for a point based hash table. More... | |
subroutine | htable_pt_remove (this, key) |
Remove a point with key key from the hash table. More... | |
subroutine | htable_iter_pt_init (this, t) |
Initialize a point based hash table iterator. More... | |
subroutine | htable_iter_pt_free (this) |
Destroy a point based hash table iterator. More... | |
type(point_t) function, pointer | htable_iter_pt_value (this) |
Return the current value of the point based hash table iterator. More... | |
type(point_t) function, pointer | htable_iter_pt_key (this) |
Return the current key of the point based hash table iterator. More... | |
subroutine | htable_i4t2_init (this, size, data) |
Initialize an integer 2-tuple hash table. More... | |
subroutine | htable_i4t2_set (this, key, data) |
Insert an integer 2-tuple into the hash table. More... | |
integer function | htable_i4t2_get (this, key, data) |
Retrive an integer 2-tuple with key key from the hash table. More... | |
pure integer function | htable_i4t2_hash (this, k, c) |
Hash function for an integer 2-tuple hash table. More... | |
subroutine | htable_i4t2_remove (this, key) |
Remove an integer 2-tuple with key key from the hash table. More... | |
subroutine | htable_iter_i4t2_init (this, t) |
Initialize an integer 2-tuple based hash table iterator. More... | |
subroutine | htable_iter_i4t2_free (this) |
Destroy an integer 2-tuple based hash table iterator. More... | |
type(tuple_i4_t) function, pointer | htable_iter_i4t2_value (this) |
Return the current value of integer based 2-tuple hash table iterator. More... | |
type(tuple_i4_t) function, pointer | htable_iter_i4t2_key (this) |
Return the current key of integer based 2-tuple hash table iterator. More... | |
subroutine | htable_i4t4_init (this, size, data) |
Initialize an integer 4-tuple hash table. More... | |
subroutine | htable_i4t4_set (this, key, data) |
Insert an integer 4-tuple into the hash table. More... | |
integer function | htable_i4t4_get (this, key, data) |
Retrive an integer 4-tuple with key key from the hash table. More... | |
pure integer function | htable_i4t4_hash (this, k, c) |
Hash function for an integer 4-tuple hash table. More... | |
subroutine | htable_i4t4_remove (this, key) |
Remove an integer 4-tuple with key key from the hash table. More... | |
subroutine | htable_iter_i4t4_init (this, t) |
Initialize an integer 4-tuple based hash table iterator. More... | |
subroutine | htable_iter_i4t4_free (this) |
Destroy an integer 4-tuple based hash table iterator. More... | |
type(tuple4_i4_t) function, pointer | htable_iter_i4t4_value (this) |
Return the current value of integer based 4-tuple hash table iterator. More... | |
type(tuple4_i4_t) function, pointer | htable_iter_i4t4_key (this) |
Return the current key of integer based 4-tuple hash table iterator. More... | |
subroutine | htable_cptr_init (this, size, data) |
Initialize a C pointer based hash table. More... | |
subroutine | htable_cptr_set (this, key, data) |
Insert a C pointer into the hash table. More... | |
integer function | htable_cptr_get (this, key, data) |
Retrive a C pointer with key key from the hash table. More... | |
pure integer function | htable_cptr_hash (this, k, c) |
Hash function for an integer 4-tuple hash table. More... | |
subroutine | htable_cptr_remove (this, key) |
Remove a C pointer with key key from the hash table. More... | |
subroutine | htable_iter_cptr_init (this, t) |
Initialize a C pointer based hash table iterator. More... | |
subroutine | htable_iter_cptr_free (this) |
Destroy a C pointer based hash table iterator. More... | |
type(h_cptr_t) function, pointer | htable_iter_cptr_value (this) |
Return the current value of C pointer based hash table iterator. More... | |
type(h_cptr_t) function, pointer | htable_iter_cptr_key (this) |
Return the current key of a C pointer based hash table iterator. More... | |
Implements a hash table ADT.
A hash table storing tuples (key, data), with fixed data-type key but with arbitrary typed data
|
private |
Clear all entries in a hash table.
Definition at line 290 of file htable.f90.
|
private |
Retrive a C pointer with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 1482 of file htable.f90.
|
private |
Hash function for an integer 4-tuple hash table.
Definition at line 1493 of file htable.f90.
|
private |
Initialize a C pointer based hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 1457 of file htable.f90.
|
private |
Remove a C pointer with key key from the hash table.
[in,out] | key | Table key |
Definition at line 1511 of file htable.f90.
|
private |
Insert a C pointer into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 1472 of file htable.f90.
|
private |
Compare key at idx to key.
[in] | idx | Table index |
[in] | key | Key to compare against the key at idx |
Definition at line 535 of file htable.f90.
|
private |
Destroy a hash table.
Definition at line 272 of file htable.f90.
|
private |
Retrieve data associated with key into the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 385 of file htable.f90.
|
private |
Return data at idx in value.
[in] | idx | Table index |
[in,out] | data | Data to retrieve |
Definition at line 491 of file htable.f90.
|
private |
Retrive an integer with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 723 of file htable.f90.
|
private |
Hash function for an integer based hash table.
Definition at line 734 of file htable.f90.
|
private |
Initialize an integer based hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 698 of file htable.f90.
|
private |
Remove an integer with key key from the hash table.
[in,out] | key | Table key |
Definition at line 764 of file htable.f90.
|
private |
Insert an integer into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 713 of file htable.f90.
|
private |
Retrive an integer 2-tuple with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 1216 of file htable.f90.
|
private |
Hash function for an integer 2-tuple hash table.
Definition at line 1227 of file htable.f90.
|
private |
Initialize an integer 2-tuple hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 1191 of file htable.f90.
|
private |
Remove an integer 2-tuple with key key from the hash table.
[in,out] | key | Table key |
Definition at line 1264 of file htable.f90.
|
private |
Insert an integer 2-tuple into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 1206 of file htable.f90.
|
private |
Retrive an integer 4-tuple with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 1345 of file htable.f90.
|
private |
Hash function for an integer 4-tuple hash table.
Definition at line 1356 of file htable.f90.
|
private |
Initialize an integer 4-tuple hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 1320 of file htable.f90.
|
private |
Remove an integer 4-tuple with key key from the hash table.
[in,out] | key | Table key |
Definition at line 1393 of file htable.f90.
|
private |
Insert an integer 4-tuple into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 1335 of file htable.f90.
|
private |
Retrive an integer*8 with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 845 of file htable.f90.
|
private |
Hash function for an integer*8 based hash table.
Definition at line 856 of file htable.f90.
|
private |
Initialize an integer*8 based hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 820 of file htable.f90.
|
private |
Remove an integer*8 with key key from the hash table.
[in,out] | key | Table key |
Definition at line 887 of file htable.f90.
|
private |
Insert an integer*8 into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 835 of file htable.f90.
subroutine htable::htable_init | ( | class(htable_t), intent(inout) | this, |
integer, value | size, | ||
class(*), intent(in), target | key, | ||
class(*), intent(in), optional, target | data | ||
) |
Initialize a hash table of type data.
size | Initial size of the table | |
[in] | key | Type of key |
[in] | data | Type of data |
Definition at line 238 of file htable.f90.
|
private |
Destroy a C pointer based hash table iterator.
Definition at line 1530 of file htable.f90.
|
private |
Initialize a C pointer based hash table iterator.
Definition at line 1520 of file htable.f90.
|
private |
Return the current key of a C pointer based hash table iterator.
Definition at line 1552 of file htable.f90.
|
private |
Return the current value of C pointer based hash table iterator.
Definition at line 1536 of file htable.f90.
|
private |
Return the data at the current iterator position.
[in,out] | data | Data to retrieve |
Definition at line 649 of file htable.f90.
|
private |
Destroy an integer based hash table iterator.
Definition at line 783 of file htable.f90.
|
private |
Initialize an integer based hash table iterator.
Definition at line 773 of file htable.f90.
|
private |
Return the current key of the integer based hash table iterator.
Definition at line 803 of file htable.f90.
|
private |
Return the current value of the integer based hash table iterator.
Definition at line 789 of file htable.f90.
|
private |
Destroy an integer 2-tuple based hash table iterator.
Definition at line 1283 of file htable.f90.
|
private |
Initialize an integer 2-tuple based hash table iterator.
Definition at line 1273 of file htable.f90.
|
private |
Return the current key of integer based 2-tuple hash table iterator.
Definition at line 1303 of file htable.f90.
|
private |
Return the current value of integer based 2-tuple hash table iterator.
Definition at line 1289 of file htable.f90.
|
private |
Destroy an integer 4-tuple based hash table iterator.
Definition at line 1412 of file htable.f90.
|
private |
Initialize an integer 4-tuple based hash table iterator.
Definition at line 1402 of file htable.f90.
|
private |
Return the current key of integer based 4-tuple hash table iterator.
Definition at line 1432 of file htable.f90.
|
private |
Return the current value of integer based 4-tuple hash table iterator.
Definition at line 1418 of file htable.f90.
|
private |
Destroy an integer*8 based hash table iterator.
Definition at line 906 of file htable.f90.
|
private |
Initialize an integer*8 based hash table iterator.
Definition at line 896 of file htable.f90.
|
private |
Return the current key of the integer*8 based hash table iterator.
Definition at line 927 of file htable.f90.
|
private |
Return the current value of the integer*8 based hash table iterator.
Definition at line 912 of file htable.f90.
|
private |
Advance the iterator to the next valid table entry.
Definition at line 625 of file htable.f90.
|
private |
Destroy a point based hash table iterator.
Definition at line 1154 of file htable.f90.
|
private |
Initialize a point based hash table iterator.
Definition at line 1144 of file htable.f90.
|
private |
Return the current key of the point based hash table iterator.
Definition at line 1174 of file htable.f90.
|
private |
Return the current value of the point based hash table iterator.
Definition at line 1160 of file htable.f90.
|
private |
Destroy a double precision based hash table iterator.
Definition at line 1023 of file htable.f90.
|
private |
Initialize a double precision based hash table iterator.
Definition at line 1013 of file htable.f90.
|
private |
Return the current key of the double precision based hash table iterator.
Definition at line 1043 of file htable.f90.
|
private |
Return the current value of the double precision based hash table iterator.
Definition at line 1029 of file htable.f90.
|
private |
Reset an iterator.
Definition at line 640 of file htable.f90.
|
private |
Return number of entries in the table.
Definition at line 303 of file htable.f90.
|
private |
Retrive a point with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 1085 of file htable.f90.
|
private |
Hash function for a point based hash table.
Definition at line 1096 of file htable.f90.
|
private |
Initialize a point based hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 1060 of file htable.f90.
|
private |
Remove a point with key key from the hash table.
[in,out] | key | Table key |
Definition at line 1134 of file htable.f90.
|
private |
Insert a point key (with data) into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 1075 of file htable.f90.
|
private |
Retrive a double precision float with key key from the hash table.
[in,out] | key | Key to retrieve |
[in,out] | data | Retrieved data |
Definition at line 978 of file htable.f90.
|
private |
Hash function for a double precision based hash table.
Definition at line 989 of file htable.f90.
|
private |
Initialize a double precision based hash table.
size | Initial size of the table | |
[in,out] | data | Data to associate with key |
Definition at line 953 of file htable.f90.
|
private |
Remove a double precision key key from the hash table.
[in,out] | key | Table key |
Definition at line 1003 of file htable.f90.
|
private |
Insert a double precision key (with data) into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Definition at line 968 of file htable.f90.
|
private |
Remove a key from the hash table.
[in,out] | key | Key to remove |
Definition at line 418 of file htable.f90.
|
private |
Insert tuple (key, value) into the hash table.
[in,out] | key | Table key |
[in,out] | data | Data associated with key |
Check if entry at this index is empty or if key matches
Definition at line 318 of file htable.f90.
|
private |
Set data at idx to value.
[in] | idx | Table index |
[in] | data | Data to set at idx |
Definition at line 445 of file htable.f90.
|
private |
Set key at idx to key.
[in] | idx | Table index |
[in] | key | Key to set at idx |
Definition at line 579 of file htable.f90.
|
private |
Return total size of htable.
Definition at line 310 of file htable.f90.