Octopus
sihash_oct_m Module Reference

This module implements a simple hash table for string valued keys and integer values using the C++ STL unordered_map container. More...

Detailed Description

This module implements a simple hash table for string valued keys and integer values using the C++ STL unordered_map container.

Data Types

type  sihash_iterator_t
 
type  sihash_t
 

Functions/Subroutines

subroutine, public sihash_init (h)
 Initialize a hash table h with size entries. Since we use separate chaining, the number of entries in the hash table is, in principle, unlimited. We take the smallest prime number as table size that is greater or equal than the requested size to reduce collisions. More...
 
subroutine, public sihash_end (h)
 Free a hash table. More...
 
subroutine, public sihash_insert (h, key, val)
 Insert a (key, val) pair into the hash table h. More...
 
integer function, public sihash_lookup (h, key, found)
 Look up a value in the hash table h. If found is present, it indicates if key could be found in the table. If found = .false., the return value of iihash_lookup is meaningless (and essentially undefined). More...
 
subroutine sihash_iterator_start (this, h)
 
logical function sihash_iterator_has_next (this)
 
integer function sihash_iterator_get_next (this)
 

Function/Subroutine Documentation

◆ sihash_init()

subroutine, public sihash_oct_m::sihash_init ( type(sihash_t), intent(out)  h)

Initialize a hash table h with size entries. Since we use separate chaining, the number of entries in the hash table is, in principle, unlimited. We take the smallest prime number as table size that is greater or equal than the requested size to reduce collisions.

Definition at line 161 of file sihash.F90.

◆ sihash_end()

subroutine, public sihash_oct_m::sihash_end ( type(sihash_t), intent(inout)  h)

Free a hash table.

Definition at line 182 of file sihash.F90.

◆ sihash_insert()

subroutine, public sihash_oct_m::sihash_insert ( type(sihash_t), intent(inout)  h,
character(len=*), intent(in)  key,
integer, intent(in)  val 
)

Insert a (key, val) pair into the hash table h.

Definition at line 202 of file sihash.F90.

◆ sihash_lookup()

integer function, public sihash_oct_m::sihash_lookup ( type(sihash_t), intent(in)  h,
character(len=*), intent(in)  key,
logical, intent(out), optional  found 
)

Look up a value in the hash table h. If found is present, it indicates if key could be found in the table. If found = .false., the return value of iihash_lookup is meaningless (and essentially undefined).

Definition at line 228 of file sihash.F90.

◆ sihash_iterator_start()

subroutine sihash_oct_m::sihash_iterator_start ( class(sihash_iterator_t), intent(inout)  this,
class(sihash_t), intent(in)  h 
)

Definition at line 259 of file sihash.F90.

◆ sihash_iterator_has_next()

logical function sihash_oct_m::sihash_iterator_has_next ( class(sihash_iterator_t), intent(in)  this)

Definition at line 280 of file sihash.F90.

◆ sihash_iterator_get_next()

integer function sihash_oct_m::sihash_iterator_get_next ( class(sihash_iterator_t), intent(inout)  this)

Definition at line 305 of file sihash.F90.