Neko  0.8.1
A portable framework for high-order spectral element flow simulations
htable Module Reference

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...
 

Detailed Description

Implements a hash table ADT.

A hash table storing tuples (key, data), with fixed data-type key but with arbitrary typed data

Function/Subroutine Documentation

◆ htable_clear()

subroutine htable::htable_clear ( class(htable_t), intent(inout)  this)
private

Clear all entries in a hash table.

Definition at line 290 of file htable.f90.

◆ htable_cptr_get()

integer function htable::htable_cptr_get ( class(htable_cptr_t), intent(inout), target  this,
type(h_cptr_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive a C pointer with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 1482 of file htable.f90.

Here is the call graph for this function:

◆ htable_cptr_hash()

pure integer function htable::htable_cptr_hash ( class(htable_cptr_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for an integer 4-tuple hash table.

Definition at line 1493 of file htable.f90.

◆ htable_cptr_init()

subroutine htable::htable_cptr_init ( class(htable_cptr_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize a C pointer based hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 1457 of file htable.f90.

Here is the call graph for this function:

◆ htable_cptr_remove()

subroutine htable::htable_cptr_remove ( class(htable_cptr_t), intent(inout), target  this,
type(h_cptr_t), intent(inout)  key 
)
private

Remove a C pointer with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 1511 of file htable.f90.

Here is the call graph for this function:

◆ htable_cptr_set()

subroutine htable::htable_cptr_set ( class(htable_cptr_t), intent(inout), target  this,
type(h_cptr_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert a C pointer into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 1472 of file htable.f90.

Here is the call graph for this function:

◆ htable_eq_key()

pure logical function htable::htable_eq_key ( class(htable_t), intent(in)  this,
integer, intent(in)  idx,
class(*), intent(in)  key 
)
private

Compare key at idx to key.

Parameters
[in]idxTable index
[in]keyKey to compare against the key at idx

Definition at line 535 of file htable.f90.

Here is the caller graph for this function:

◆ htable_free()

subroutine htable::htable_free ( class(htable_t), intent(inout)  this)
private

Destroy a hash table.

Definition at line 272 of file htable.f90.

Here is the caller graph for this function:

◆ htable_get()

integer function htable::htable_get ( class(htable_t), intent(inout)  this,
class(*), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrieve data associated with key into the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 385 of file htable.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ htable_get_data()

subroutine htable::htable_get_data ( class(htable_t), intent(in)  this,
integer, intent(in)  idx,
class(*), intent(inout)  data 
)
private

Return data at idx in value.

Parameters
[in]idxTable index
[in,out]dataData to retrieve

Definition at line 491 of file htable.f90.

Here is the caller graph for this function:

◆ htable_i4_get()

integer function htable::htable_i4_get ( class(htable_i4_t), intent(inout)  this,
integer, intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive an integer with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 723 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4_hash()

pure integer function htable::htable_i4_hash ( class(htable_i4_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for an integer based hash table.

Definition at line 734 of file htable.f90.

◆ htable_i4_init()

subroutine htable::htable_i4_init ( class(htable_i4_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize an integer based hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 698 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4_remove()

subroutine htable::htable_i4_remove ( class(htable_i4_t), intent(inout)  this,
integer, intent(inout)  key 
)
private

Remove an integer with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 764 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4_set()

subroutine htable::htable_i4_set ( class(htable_i4_t), intent(inout)  this,
integer, intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert an integer into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 713 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t2_get()

integer function htable::htable_i4t2_get ( class(htable_i4t2_t), intent(inout)  this,
type(tuple_i4_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive an integer 2-tuple with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 1216 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t2_hash()

pure integer function htable::htable_i4t2_hash ( class(htable_i4t2_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for an integer 2-tuple hash table.

Definition at line 1227 of file htable.f90.

◆ htable_i4t2_init()

subroutine htable::htable_i4t2_init ( class(htable_i4t2_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize an integer 2-tuple hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 1191 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t2_remove()

subroutine htable::htable_i4t2_remove ( class(htable_i4t2_t), intent(inout)  this,
type(tuple_i4_t), intent(inout)  key 
)
private

Remove an integer 2-tuple with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 1264 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t2_set()

subroutine htable::htable_i4t2_set ( class(htable_i4t2_t), intent(inout)  this,
type(tuple_i4_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert an integer 2-tuple into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 1206 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t4_get()

integer function htable::htable_i4t4_get ( class(htable_i4t4_t), intent(inout)  this,
type(tuple4_i4_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive an integer 4-tuple with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 1345 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t4_hash()

pure integer function htable::htable_i4t4_hash ( class(htable_i4t4_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for an integer 4-tuple hash table.

Definition at line 1356 of file htable.f90.

◆ htable_i4t4_init()

subroutine htable::htable_i4t4_init ( class(htable_i4t4_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize an integer 4-tuple hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 1320 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t4_remove()

subroutine htable::htable_i4t4_remove ( class(htable_i4t4_t), intent(inout)  this,
type(tuple4_i4_t), intent(inout)  key 
)
private

Remove an integer 4-tuple with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 1393 of file htable.f90.

Here is the call graph for this function:

◆ htable_i4t4_set()

subroutine htable::htable_i4t4_set ( class(htable_i4t4_t), intent(inout)  this,
type(tuple4_i4_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert an integer 4-tuple into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 1335 of file htable.f90.

Here is the call graph for this function:

◆ htable_i8_get()

integer function htable::htable_i8_get ( class(htable_i8_t), intent(inout)  this,
integer(kind=i8), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive an integer*8 with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 845 of file htable.f90.

Here is the call graph for this function:

◆ htable_i8_hash()

pure integer function htable::htable_i8_hash ( class(htable_i8_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for an integer*8 based hash table.

Note
I think this hash might be better

Definition at line 856 of file htable.f90.

◆ htable_i8_init()

subroutine htable::htable_i8_init ( class(htable_i8_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize an integer*8 based hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 820 of file htable.f90.

Here is the call graph for this function:

◆ htable_i8_remove()

subroutine htable::htable_i8_remove ( class(htable_i8_t), intent(inout)  this,
integer(kind=i8), intent(inout)  key 
)
private

Remove an integer*8 with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 887 of file htable.f90.

Here is the call graph for this function:

◆ htable_i8_set()

subroutine htable::htable_i8_set ( class(htable_i8_t), intent(inout)  this,
integer(kind=i8), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert an integer*8 into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 835 of file htable.f90.

Here is the call graph for this function:

◆ htable_init()

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.

Parameters
sizeInitial size of the table
[in]keyType of key
[in]dataType of data

Definition at line 238 of file htable.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ htable_iter_cptr_free()

subroutine htable::htable_iter_cptr_free ( type(htable_iter_cptr_t), intent(inout)  this)
private

Destroy a C pointer based hash table iterator.

Definition at line 1530 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_cptr_init()

subroutine htable::htable_iter_cptr_init ( class(htable_iter_cptr_t), intent(inout)  this,
type(htable_cptr_t), intent(inout), target  t 
)
private

Initialize a C pointer based hash table iterator.

Definition at line 1520 of file htable.f90.

◆ htable_iter_cptr_key()

type(h_cptr_t) function, pointer htable::htable_iter_cptr_key ( class(htable_iter_cptr_t), intent(inout), target  this)
private

Return the current key of a C pointer based hash table iterator.

Definition at line 1552 of file htable.f90.

◆ htable_iter_cptr_value()

type(h_cptr_t) function, pointer htable::htable_iter_cptr_value ( class(htable_iter_cptr_t), intent(inout), target  this)
private

Return the current value of C pointer based hash table iterator.

Definition at line 1536 of file htable.f90.

◆ htable_iter_data()

subroutine htable::htable_iter_data ( class(htable_iter_t), intent(inout), target  this,
class(*), intent(inout)  data 
)
private

Return the data at the current iterator position.

Attention
this will make a deep copy of the data...
Todo:
Remove once we figure out how to do this with value() for arbitrary data types
Parameters
[in,out]dataData to retrieve

Definition at line 649 of file htable.f90.

◆ htable_iter_i4_free()

subroutine htable::htable_iter_i4_free ( type(htable_iter_i4_t), intent(inout)  this)
private

Destroy an integer based hash table iterator.

Definition at line 783 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_i4_init()

subroutine htable::htable_iter_i4_init ( class(htable_iter_i4_t), intent(inout)  this,
type(htable_i4_t), intent(inout), target  t 
)
private

Initialize an integer based hash table iterator.

Definition at line 773 of file htable.f90.

◆ htable_iter_i4_key()

integer function, pointer htable::htable_iter_i4_key ( class(htable_iter_i4_t), intent(inout), target  this)
private

Return the current key of the integer based hash table iterator.

Definition at line 803 of file htable.f90.

◆ htable_iter_i4_value()

integer function, pointer htable::htable_iter_i4_value ( class(htable_iter_i4_t), intent(inout), target  this)
private

Return the current value of the integer based hash table iterator.

Definition at line 789 of file htable.f90.

◆ htable_iter_i4t2_free()

subroutine htable::htable_iter_i4t2_free ( type(htable_iter_i4t2_t), intent(inout)  this)
private

Destroy an integer 2-tuple based hash table iterator.

Definition at line 1283 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_i4t2_init()

subroutine htable::htable_iter_i4t2_init ( class(htable_iter_i4t2_t), intent(inout)  this,
type(htable_i4t2_t), intent(inout), target  t 
)
private

Initialize an integer 2-tuple based hash table iterator.

Definition at line 1273 of file htable.f90.

◆ htable_iter_i4t2_key()

type(tuple_i4_t) function, pointer htable::htable_iter_i4t2_key ( class(htable_iter_i4t2_t), intent(inout)  this)
private

Return the current key of integer based 2-tuple hash table iterator.

Definition at line 1303 of file htable.f90.

◆ htable_iter_i4t2_value()

type(tuple_i4_t) function, pointer htable::htable_iter_i4t2_value ( class(htable_iter_i4t2_t), intent(inout)  this)
private

Return the current value of integer based 2-tuple hash table iterator.

Definition at line 1289 of file htable.f90.

◆ htable_iter_i4t4_free()

subroutine htable::htable_iter_i4t4_free ( type(htable_iter_i4t4_t), intent(inout)  this)
private

Destroy an integer 4-tuple based hash table iterator.

Definition at line 1412 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_i4t4_init()

subroutine htable::htable_iter_i4t4_init ( class(htable_iter_i4t4_t), intent(inout)  this,
type(htable_i4t4_t), intent(inout), target  t 
)
private

Initialize an integer 4-tuple based hash table iterator.

Definition at line 1402 of file htable.f90.

◆ htable_iter_i4t4_key()

type(tuple4_i4_t) function, pointer htable::htable_iter_i4t4_key ( class(htable_iter_i4t4_t), intent(inout), target  this)
private

Return the current key of integer based 4-tuple hash table iterator.

Definition at line 1432 of file htable.f90.

◆ htable_iter_i4t4_value()

type(tuple4_i4_t) function, pointer htable::htable_iter_i4t4_value ( class(htable_iter_i4t4_t), intent(inout), target  this)
private

Return the current value of integer based 4-tuple hash table iterator.

Definition at line 1418 of file htable.f90.

◆ htable_iter_i8_free()

subroutine htable::htable_iter_i8_free ( type(htable_iter_i8_t), intent(inout)  this)
private

Destroy an integer*8 based hash table iterator.

Definition at line 906 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_i8_init()

subroutine htable::htable_iter_i8_init ( class(htable_iter_i8_t), intent(inout)  this,
type(htable_i8_t), intent(inout), target  t 
)
private

Initialize an integer*8 based hash table iterator.

Definition at line 896 of file htable.f90.

◆ htable_iter_i8_key()

integer(kind=i8) function, pointer htable::htable_iter_i8_key ( class(htable_iter_i8_t), intent(inout), target  this)
private

Return the current key of the integer*8 based hash table iterator.

Definition at line 927 of file htable.f90.

◆ htable_iter_i8_value()

integer(kind=i8) function, pointer htable::htable_iter_i8_value ( class(htable_iter_i8_t), intent(inout), target  this)
private

Return the current value of the integer*8 based hash table iterator.

Definition at line 912 of file htable.f90.

◆ htable_iter_next()

logical function htable::htable_iter_next ( class(htable_iter_t), intent(inout)  this)
private

Advance the iterator to the next valid table entry.

Definition at line 625 of file htable.f90.

◆ htable_iter_pt_free()

subroutine htable::htable_iter_pt_free ( type(htable_iter_pt_t), intent(inout)  this)
private

Destroy a point based hash table iterator.

Definition at line 1154 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_pt_init()

subroutine htable::htable_iter_pt_init ( class(htable_iter_pt_t), intent(inout)  this,
type(htable_pt_t), intent(inout), target  t 
)
private

Initialize a point based hash table iterator.

Definition at line 1144 of file htable.f90.

◆ htable_iter_pt_key()

type(point_t) function, pointer htable::htable_iter_pt_key ( class(htable_iter_pt_t), intent(inout), target  this)
private

Return the current key of the point based hash table iterator.

Definition at line 1174 of file htable.f90.

◆ htable_iter_pt_value()

type(point_t) function, pointer htable::htable_iter_pt_value ( class(htable_iter_pt_t), intent(inout), target  this)
private

Return the current value of the point based hash table iterator.

Definition at line 1160 of file htable.f90.

◆ htable_iter_r8_free()

subroutine htable::htable_iter_r8_free ( type(htable_iter_r8_t), intent(inout)  this)
private

Destroy a double precision based hash table iterator.

Definition at line 1023 of file htable.f90.

Here is the caller graph for this function:

◆ htable_iter_r8_init()

subroutine htable::htable_iter_r8_init ( class(htable_iter_r8_t), intent(inout)  this,
type(htable_r8_t), intent(inout), target  t 
)
private

Initialize a double precision based hash table iterator.

Definition at line 1013 of file htable.f90.

◆ htable_iter_r8_key()

real(kind=dp) function, pointer htable::htable_iter_r8_key ( class(htable_iter_r8_t), intent(inout), target  this)
private

Return the current key of the double precision based hash table iterator.

Definition at line 1043 of file htable.f90.

◆ htable_iter_r8_value()

real(kind=dp) function, pointer htable::htable_iter_r8_value ( class(htable_iter_r8_t), intent(inout), target  this)
private

Return the current value of the double precision based hash table iterator.

Definition at line 1029 of file htable.f90.

◆ htable_iter_reset()

subroutine htable::htable_iter_reset ( class(htable_iter_t), intent(inout)  this)
private

Reset an iterator.

Definition at line 640 of file htable.f90.

◆ htable_num_entries()

pure integer function htable::htable_num_entries ( class(htable_t), intent(in)  this)
private

Return number of entries in the table.

Definition at line 303 of file htable.f90.

◆ htable_pt_get()

integer function htable::htable_pt_get ( class(htable_pt_t), intent(inout)  this,
type(point_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive a point with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 1085 of file htable.f90.

Here is the call graph for this function:

◆ htable_pt_hash()

pure integer function htable::htable_pt_hash ( class(htable_pt_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for a point based hash table.

Definition at line 1096 of file htable.f90.

◆ htable_pt_init()

subroutine htable::htable_pt_init ( class(htable_pt_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize a point based hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 1060 of file htable.f90.

Here is the call graph for this function:

◆ htable_pt_remove()

subroutine htable::htable_pt_remove ( class(htable_pt_t), intent(inout)  this,
type(point_t), intent(inout)  key 
)
private

Remove a point with key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 1134 of file htable.f90.

Here is the call graph for this function:

◆ htable_pt_set()

subroutine htable::htable_pt_set ( class(htable_pt_t), intent(inout)  this,
type(point_t), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert a point key (with data) into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 1075 of file htable.f90.

Here is the call graph for this function:

◆ htable_r8_get()

integer function htable::htable_r8_get ( class(htable_r8_t), intent(inout)  this,
real(kind=dp), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Retrive a double precision float with key key from the hash table.

Parameters
[in,out]keyKey to retrieve
[in,out]dataRetrieved data

Definition at line 978 of file htable.f90.

Here is the call graph for this function:

◆ htable_r8_hash()

pure integer function htable::htable_r8_hash ( class(htable_r8_t), intent(in)  this,
class(*), intent(in)  k,
integer, value  c 
)
private

Hash function for a double precision based hash table.

Definition at line 989 of file htable.f90.

◆ htable_r8_init()

subroutine htable::htable_r8_init ( class(htable_r8_t), intent(inout)  this,
integer, value  size,
class(*), intent(inout), optional  data 
)
private

Initialize a double precision based hash table.

Parameters
sizeInitial size of the table
[in,out]dataData to associate with key

Definition at line 953 of file htable.f90.

Here is the call graph for this function:

◆ htable_r8_remove()

subroutine htable::htable_r8_remove ( class(htable_r8_t), intent(inout)  this,
real(kind=dp), intent(inout)  key 
)
private

Remove a double precision key key from the hash table.

Parameters
[in,out]keyTable key

Definition at line 1003 of file htable.f90.

Here is the call graph for this function:

◆ htable_r8_set()

subroutine htable::htable_r8_set ( class(htable_r8_t), intent(inout)  this,
real(kind=dp), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert a double precision key (with data) into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Definition at line 968 of file htable.f90.

Here is the call graph for this function:

◆ htable_remove()

subroutine htable::htable_remove ( class(htable_t), intent(inout)  this,
class(*), intent(inout)  key 
)
private

Remove a key from the hash table.

Parameters
[in,out]keyKey to remove

Definition at line 418 of file htable.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ htable_set()

recursive subroutine htable::htable_set ( class(htable_t), intent(inout)  this,
class(*), intent(inout)  key,
class(*), intent(inout)  data 
)
private

Insert tuple (key, value) into the hash table.

Parameters
[in,out]keyTable key
[in,out]dataData associated with key

Check if entry at this index is empty or if key matches

Definition at line 318 of file htable.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ htable_set_data()

subroutine htable::htable_set_data ( class(htable_t), intent(inout), target  this,
integer, intent(in)  idx,
class(*), intent(in)  data 
)
private

Set data at idx to value.

Parameters
[in]idxTable index
[in]dataData to set at idx

Definition at line 445 of file htable.f90.

Here is the caller graph for this function:

◆ htable_set_key()

subroutine htable::htable_set_key ( class(htable_t), intent(inout), target  this,
integer, intent(in)  idx,
class(*), intent(in)  key 
)
private

Set key at idx to key.

Parameters
[in]idxTable index
[in]keyKey to set at idx

Definition at line 579 of file htable.f90.

Here is the caller graph for this function:

◆ htable_size()

pure integer function htable::htable_size ( class(htable_t), intent(in)  this)
private

Return total size of htable.

Definition at line 310 of file htable.f90.