Skip to content

Commit d7217a6

Browse files
committed
Merge remote-tracking branch 'wclodius2/hash_functions2' into myhash14
2 parents ebcf239 + 5863d78 commit d7217a6

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

doc/specs/stdlib_hash_procedures.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,7 @@ allows their quick loading and retainment in the instruction cache,
415415
giving a performance boost where the hashing is intermittent.
416416
(See the
417417
[SMHasher discussion](https://github.com/rurban/smhasher/README.md)
418-
and S. Richter, V. Alvarez, and J. Dittrich,
419-
["A Seven-Dimensional Analysis of Hashing Methods and its Implications on Query Processing"](https://bigdata.uni-saarland.de/publications/p249-richter.pdf).
418+
and [S. Richter, V. Alvarez, and J. Dittrich. 2015. A Seven-Dimensional Analysis of Hashing Methods and its Implications on Query Processing, Proceedings of the VLDB Endowment, Vol. 9, No. 3.](https://bigdata.uni-saarland.de/publications/p249-richter.pdf) [https://doi.org/10.14778/2850583.2850585](https://doi.org/10.14778/2850583.2850585).
420419

421420
The `stdlib_32_bit_nmhashes` submodule provides implementations
422421
of James Z.M. Gao's `nmhash32` and `nmhash32x` algorithms,
@@ -1624,7 +1623,7 @@ various hash functions. The other is a comparison of the outputs of
16241623
the Fortran hash functions, with the outputs of the C and C++ hash
16251624
procedures that are the inspiration for the Fortran hash functions.
16261625

1627-
In the `src/test/hash_functions` subdirectory, the Fortran Standard
1626+
In the `src/test/hash_functions_perf` subdirectory, the Fortran Standard
16281627
Library provides two performance test codes for
16291628
the hash functions of `stdlib_hash_32bit` and
16301629
`stdlib_hash_64bit`, `test_32_bit_hash_performance` and
@@ -1729,20 +1728,17 @@ severely impact the performance of `nmhash32`, `nmhash32x`,
17291728
`water_hash`, `pengy_hash`, and `spooky_hash` relative to
17301729
`fnv_1_hash` and `fnv_1a_hash`.
17311730

1732-
In the `src/test/hash_functions/validation` subdirectory, the Fortran
1733-
Standard Library implements three executables to test the validity of
1734-
the Fortran codes against the original C and C++ codes. The three
1735-
executables must be compiled manually using the makefile
1736-
`Makefile.validation`, and the compiler suite used must be
1737-
GCC's. The first executable, `generate_key_array` is
1738-
based on Fortran code, and generates a random sequence of 2048
1731+
In the `src/test/hash_functions` subdirectory, the Fortran
1732+
Standard Library contains codes to test the validity of
1733+
the Fortran codes against the original C and C++ codes. It consists of one
1734+
executable `test_hash_functions` that
1735+
1) generates a random sequence of 2048
17391736
integers of kind `int8`, and stores that sequence in the binary file
1740-
`key_array.bin`. The second executable, `generate_hash_arrays`, reads
1741-
the values in `key_array.bin`, and, for each complicated hash
1742-
procedure generates a corresponding binary file containing 2049 hash
1743-
values generated from the values in `key_array.bin`. The third
1744-
executable, `hash_validity_test`, reads the binary files and for each
1745-
complicated hash procedure compares the contents of the binary file
1737+
`key_array.bin`;
1738+
2) reads the values in `key_array.bin`, and, for each complicated C/C++-coded
1739+
hash procedure, generates a corresponding binary file containing 2049 hash
1740+
values generated from the values in `key_array.bin`., and
1741+
3) reads the binary files, and, for each complicated C/C++-coded hash procedure,
1742+
compares the contents of the binary file
17461743
with the results of calculating hash values using the corresponding
1747-
Fortran hash procedure on the same keys. These executables must be run
1748-
manually in the same order.
1744+
Fortran hash procedure on the same keys.

src/tests/hash_functions/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
The validation directory contains code to validate the Fortran hash functions against the original C/C++ codes. It consists of one executable `test_hash_functions` that:
1+
The hash_functions directory contains code to validate the Fortran hash functions against the original C/C++ codes. It consists of one executable `test_hash_functions` that:
22

33
* creates a file containing 2048 random 8 bit integers using the subroutine
44
`generate_key_array`.

0 commit comments

Comments
 (0)