Sparse Data Patterns
Sparse Lookup
Searching Stored Keys
A sparse lookup scans stored keys and returns zero when the requested key is absent.
Program
Play the program to query a present or missing sparse key.
sparse_lookup.f90
program sparse_lookup_demo
implicit none
integer :: keys(3)
integer :: values(3)
integer :: query_key
integer :: i
integer :: result
keys = [10, 20, 30]
values = [5, 8, 13]
query_key =
result = 0
do i = 1, 3
if (keys(i) == query_key) result = values(i)
end do
print '(I0, 1X, I0)', query_key, result
end program sparse_lookup_demo
program sparse_lookup_demo
implicit none
integer :: keys(3)
integer :: values(3)
integer :: query_key
integer :: i
integer :: result
keys = [10, 20, 30]
values = [5, 8, 13]
query_key =
result = 0
do i = 1, 3
if (keys(i) == query_key) result = values(i)
end do
print '(I0, 1X, I0)', query_key, result
end program sparse_lookup_demo
program sparse_lookup_demo
implicit none
integer :: keys(3)
integer :: values(3)
integer :: query_key
integer :: i
integer :: result
keys = [10, 20, 30]
values = [5, 8, 13]
query_key =
result = 0
do i = 1, 3
if (keys(i) == query_key) result = values(i)
end do
print '(I0, 1X, I0)', query_key, result
end program sparse_lookup_demo
stored keys
`keys` identifies only positions that have stored values.
zero default
`result` starts at zero, which represents a missing sparse value.
lookup scan
A matching key copies the stored value into `result`.