stdlib_hashmaps Module

Public data_types Values that parameterize David Chase's empirical SLOT expansion code API for the chaining_hashmap_type

API for the open_hashmap_type



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: alloc_fault = 1
integer, public, parameter :: array_size_error = 2
integer, public, parameter :: default_bits = 6

KIND values used to parameterixe the hash map and its procedures

integer, public, parameter :: int_calls = int64

Error codes returned by the hash map procedures

integer, public, parameter :: int_depth = int64

Error codes returned by the hash map procedures

integer, public, parameter :: int_index = int32

Error codes returned by the hash map procedures

integer, public, parameter :: int_probes = int64

Error codes returned by the hash map procedures

real, public, parameter :: load_factor = 0.5625

The size of the pools of allocated map entries

integer, public, parameter :: max_bits = 30

KIND values used to parameterixe the hash map and its procedures

integer, public, parameter :: success = 0

Derived Types

type, public, extends(hashmap_type) ::  chaining_hashmap_type

Type implementing the chaining_hashmap_type types (Specifications)

Finalizations Procedures

final :: free_chaining_map

Type-Bound Procedures

procedure, public, non_overridable, pass(map) :: calls
procedure, public, non_overridable, pass(map) :: char_get_other_data
procedure, public, non_overridable, pass(map) :: char_key_test
procedure, public, non_overridable, pass(map) :: char_map_entry
procedure, public, non_overridable, pass(map) :: char_remove_entry
procedure, public, non_overridable, pass(map) :: char_set_other_data
procedure, public, non_overridable, pass(map) :: entries
procedure, public :: get_all_keys => get_all_chaining_keys
generic, public :: get_other_data => key_get_other_data, int8_get_other_data, int32_get_other_data, char_get_other_data
procedure, public :: init => init_chaining_map
procedure, public, non_overridable, pass(map) :: int32_get_other_data
procedure, public, non_overridable, pass(map) :: int32_key_test
procedure, public, non_overridable, pass(map) :: int32_map_entry
procedure, public, non_overridable, pass(map) :: int32_remove_entry
procedure, public, non_overridable, pass(map) :: int32_set_other_data
procedure, public, non_overridable, pass(map) :: int8_get_other_data
procedure, public, non_overridable, pass(map) :: int8_key_test
procedure, public, non_overridable, pass(map) :: int8_map_entry
procedure, public, non_overridable, pass(map) :: int8_remove_entry
procedure, public, non_overridable, pass(map) :: int8_set_other_data
procedure, public :: key_get_other_data => get_other_chaining_data
procedure, public :: key_key_test => chaining_key_test
procedure, public :: key_map_entry => map_chain_entry
procedure, public :: key_remove_entry => remove_chaining_entry
procedure, public :: key_set_other_data => set_other_chaining_data
generic, public :: key_test => key_key_test, int8_key_test, int32_key_test, char_key_test
procedure, public :: loading => chaining_loading
generic, public :: map_entry => key_map_entry, int8_map_entry, int32_map_entry, char_map_entry
procedure, public, non_overridable, pass(map) :: map_probes
procedure, public, non_overridable, pass(map) :: num_slots
procedure, public :: rehash => rehash_chaining_map
generic, public :: remove => key_remove_entry, int8_remove_entry, int32_remove_entry, char_remove_entry
generic, public :: set_other_data => key_set_other_data, int8_set_other_data, int32_set_other_data, char_set_other_data
procedure, public, non_overridable, pass(map) :: slots_bits
procedure, public :: total_depth => total_chaining_depth

type, public ::  hashmap_type

Type implementing an abstract hash map (Specifications)

Type-Bound Procedures

procedure, public, non_overridable, pass(map) :: calls
procedure, public, non_overridable, pass(map) :: char_get_other_data
procedure, public, non_overridable, pass(map) :: char_key_test
procedure, public, non_overridable, pass(map) :: char_map_entry
procedure, public, non_overridable, pass(map) :: char_remove_entry
procedure, public, non_overridable, pass(map) :: char_set_other_data
procedure, public, non_overridable, pass(map) :: entries
procedure(get_all_keys), public, deferred, pass(map) :: get_all_keys
generic, public :: get_other_data => key_get_other_data, int8_get_other_data, int32_get_other_data, char_get_other_data
procedure(init_map), public, deferred, pass(map) :: init
procedure, public, non_overridable, pass(map) :: int32_get_other_data
procedure, public, non_overridable, pass(map) :: int32_key_test
procedure, public, non_overridable, pass(map) :: int32_map_entry
procedure, public, non_overridable, pass(map) :: int32_remove_entry
procedure, public, non_overridable, pass(map) :: int32_set_other_data
procedure, public, non_overridable, pass(map) :: int8_get_other_data
procedure, public, non_overridable, pass(map) :: int8_key_test
procedure, public, non_overridable, pass(map) :: int8_map_entry
procedure, public, non_overridable, pass(map) :: int8_remove_entry
procedure, public, non_overridable, pass(map) :: int8_set_other_data
procedure(key_get_other_data), public, deferred, pass(map) :: key_get_other_data
procedure(key_key_test), public, deferred, pass(map) :: key_key_test
procedure(key_map_entry), public, deferred, pass(map) :: key_map_entry
procedure(key_remove_entry), public, deferred, pass(map) :: key_remove_entry
procedure(key_set_other_data), public, deferred, pass(map) :: key_set_other_data
generic, public :: key_test => key_key_test, int8_key_test, int32_key_test, char_key_test
procedure(loading), public, deferred, pass(map) :: loading
generic, public :: map_entry => key_map_entry, int8_map_entry, int32_map_entry, char_map_entry
procedure, public, non_overridable, pass(map) :: map_probes
procedure, public, non_overridable, pass(map) :: num_slots
procedure(rehash_map), public, deferred, pass(map) :: rehash
generic, public :: remove => key_remove_entry, int8_remove_entry, int32_remove_entry, char_remove_entry
generic, public :: set_other_data => key_set_other_data, int8_set_other_data, int32_set_other_data, char_set_other_data
procedure, public, non_overridable, pass(map) :: slots_bits
procedure(total_depth), public, deferred, pass(map) :: total_depth ../../

Key_test procedures.

type, public, extends(hashmap_type) ::  open_hashmap_type

Type implementing an "open" hash map

Finalizations Procedures

final :: free_open_map

Type-Bound Procedures

procedure, public, non_overridable, pass(map) :: calls
procedure, public, non_overridable, pass(map) :: char_get_other_data
procedure, public, non_overridable, pass(map) :: char_key_test
procedure, public, non_overridable, pass(map) :: char_map_entry
procedure, public, non_overridable, pass(map) :: char_remove_entry
procedure, public, non_overridable, pass(map) :: char_set_other_data
procedure, public, non_overridable, pass(map) :: entries
procedure, public :: get_all_keys => get_all_open_keys
generic, public :: get_other_data => key_get_other_data, int8_get_other_data, int32_get_other_data, char_get_other_data
procedure, public :: init => init_open_map
procedure, public, non_overridable, pass(map) :: int32_get_other_data
procedure, public, non_overridable, pass(map) :: int32_key_test
procedure, public, non_overridable, pass(map) :: int32_map_entry
procedure, public, non_overridable, pass(map) :: int32_remove_entry
procedure, public, non_overridable, pass(map) :: int32_set_other_data
procedure, public, non_overridable, pass(map) :: int8_get_other_data
procedure, public, non_overridable, pass(map) :: int8_key_test
procedure, public, non_overridable, pass(map) :: int8_map_entry
procedure, public, non_overridable, pass(map) :: int8_remove_entry
procedure, public, non_overridable, pass(map) :: int8_set_other_data
procedure, public :: key_get_other_data => get_other_open_data
procedure, public :: key_key_test => open_key_test
procedure, public :: key_map_entry => map_open_entry
procedure, public :: key_remove_entry => remove_open_entry
procedure, public :: key_set_other_data => set_other_open_data
generic, public :: key_test => key_key_test, int8_key_test, int32_key_test, char_key_test
procedure, public :: loading => open_loading
generic, public :: map_entry => key_map_entry, int8_map_entry, int32_map_entry, char_map_entry
procedure, public, non_overridable, pass(map) :: map_probes
procedure, public, non_overridable, pass(map) :: num_slots
procedure, public :: rehash => rehash_open_map
generic, public :: remove => key_remove_entry, int8_remove_entry, int32_remove_entry, char_remove_entry
generic, public :: set_other_data => key_set_other_data, int8_set_other_data, int32_set_other_data, char_set_other_data
procedure, public, non_overridable, pass(map) :: slots_bits
procedure, public :: total_depth => total_open_depth