Hash the key.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(key_base), | intent(in) | :: | self | The key. |
||
integer(kind=I4P), | intent(in) | :: | buckets_number | Buckets number. |
Bucket index corresponding to the key.
elemental function hash(self, buckets_number) result(bucket)
!---------------------------------------------------------------------------------------------------------------------------------
!< Hash the key.
!---------------------------------------------------------------------------------------------------------------------------------
class(key_base), intent(in) :: self !< The key.
integer(I4P), intent(in) :: buckets_number !< Buckets number.
integer(I4P) :: bucket !< Bucket index corresponding to the key.
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
bucket = 0
if (allocated(self%id_)) bucket = int(mod(self%id_, int(buckets_number, I8P)), I4P) + 1
!---------------------------------------------------------------------------------------------------------------------------------
endfunction hash