fragment_lookup_t Derived Type

type, public :: fragment_lookup_t

Hash-based lookup table for O(1) fragment index retrieval


Inherits

type~~fragment_lookup_t~~InheritsGraph type~fragment_lookup_t fragment_lookup_t type~hash_entry_t hash_entry_t type~fragment_lookup_t->type~hash_entry_t table type~hash_entry_t->type~hash_entry_t next

Components

Type Visibility Attributes Name Initial
logical, public :: initialized = .false.
integer(kind=int64), public :: n_entries = 0
type(hash_entry_t), public, allocatable :: table(:)
integer, public :: table_size = 0

Type-Bound Procedures

procedure, public :: destroy => fragment_lookup_destroy

procedure, public :: find => fragment_lookup_find

  • private function fragment_lookup_find(this, monomers, n) result(idx)

    Find fragment index for given monomer combination

    Arguments

    Type IntentOptional Attributes Name
    class(fragment_lookup_t), intent(in) :: this
    integer, intent(in) :: monomers(:)
    integer, intent(in) :: n

    Return Value integer(kind=int64)

procedure, public :: init => fragment_lookup_init

  • private pure subroutine fragment_lookup_init(this, estimated_entries)

    Initialize hash table with estimated size

    Arguments

    Type IntentOptional Attributes Name
    class(fragment_lookup_t), intent(inout) :: this
    integer(kind=int64), intent(in) :: estimated_entries

procedure, public :: insert => fragment_lookup_insert

  • private subroutine fragment_lookup_insert(this, monomers, n, fragment_idx, error)

    Insert a monomer combination -> fragment index mapping

    Arguments

    Type IntentOptional Attributes Name
    class(fragment_lookup_t), intent(inout) :: this
    integer, intent(in) :: monomers(:)
    integer, intent(in) :: n
    integer(kind=int64), intent(in) :: fragment_idx
    type(error_t), intent(out), optional :: error

Source Code

   type :: fragment_lookup_t
      !! Hash-based lookup table for O(1) fragment index retrieval
      integer :: table_size = 0
      type(hash_entry_t), allocatable :: table(:)
      integer(int64) :: n_entries = 0
      logical :: initialized = .false.
   contains
      procedure :: init => fragment_lookup_init
      procedure :: insert => fragment_lookup_insert
      procedure :: find => fragment_lookup_find
      procedure :: destroy => fragment_lookup_destroy
   end type fragment_lookup_t