Talk:Fowler–Noll–Vo hash function

FNV prime (was High byte)
If the "high byte is 1" then for 64 bits, why isn't it shifted 56 bits instead of 40? Similarly for 128 and 256 bits. Bubba73 (talk), 02:58, 16 September 2006 (UTC)

The description of the FNV primes is not quiet right. While I do say that "The theory behind which primes make good FNV_primes is beyond the scope of this web page.", I do list 5 FNV prime properties. Perhaps this article should be updated to list those properties? chongo (talk) 04:27, 27 January 2009 (UTC)

We modified the FNV prime property description to match the list the above properties. Please check and correct as needed. 171.71.57.13 (talk) 23:11, 9 February 2009 (UTC)

I saw/was notified about the edits. Sans any editorial or style edits, it looks good. I added a missing property, fixed a few typos and added some missing references. chongo (talk) 23:55, 9 February 2009 (UTC)

I rewrote the FNV prime properties in terms of mathematical expressions to make it more language independent. I fixed an issue maximum number of consecutive 1 bits was expressed incorrectly.

Someone who is better at WP:MATH may wish to rewrite the mathematical expressions to better conform the Wikipedia style. chongo (talk) 03:44, 10 February 2009 (UTC)

FNV-1 and FNV-1a hash description
The English description of the hash seems a bit awkward. Would adding some pseudo code along the lines of FNV-1 and FNV-1a help? I also believe the addition of a diagram for FNV-1 and FNV-1a would make these functions easier to understand. chongo (talk) 04:27, 27 January 2009 (UTC)

The pseudocode for FNV-1 and FNV-1a along with some clarifying pseudocode remarks has been added. This should address the description of the hash noted above. 171.71.57.69 (talk) 00:31, 21 March 2009 (UTC)

The above mentioned pseudocode by 171.71.57.69 looks and the pseudocode for FNV-0 are technically correct. The style might or might not be in accordance with the Wikipedia best practices. Perhaps someone who is more familiar with such style issues might want to comment? Or perhaps what 171.71.57.69 wrote is good enough? chongo (talk) 04:17, 22 March 2009 (UTC)

Suspected error: "The small change in order leads to much better avalanche characteristics."

The link to the Murmur Hash Google site do indeed demonstrate an FNV variant with dramatically improved avalanche characteristics, but I believe that it is not the simple FNV-1a alogorithm described here. The linked page labels "ModifiedFNV" and says that the images were generated using code by Brett Mulvey As can be seen on his page, he suggested using a *modified* FNV-1a algorithm to achieve good avalanche characteristics.

I wrote my own avalanche diagram code and found that both FNV-1 and FNV-1a have terrible mixing, as shown on both Mulvey's page, and the cited page, whereas Mulvey's edits of FNV-1a dramatically improve the algorithms avalanche behavior.

In summary, I believe that this claim is an error, and improperly interprets the cited source. — Preceding unsigned comment added by 71.182.235.4 (talk) 00:23, 23 December 2011 (UTC)

Test vectors
Would is help if we added a set of known test vectors? We have a set (abut 40) of known FNV-1 and FNV-1a hash values for the 32- and 64-bit cases.

We can also supply some test cases for 128-bit and higher if there is interest.

If there is interest in test vectors, would it be better to add them to this wiki page, or to another wiki page, or to simply reference an external page with test vector information? chongo (talk) 03:52, 10 February 2009 (UTC)


 * Sorry, you can't add this otherwise very useful information, due to WP:OR and the fact that this is an encyclopedia, not a practical software or algorithms guide (there are undoubtedly other websites where such information could be published). David Spector (talk) 18:14, 19 April 2010 (UTC)

FNV parameter table
The FNV parameter table should be extended to include the FNV prime and offset_basis for the 512 and 1024 bit values.

I recommend that column labeled "FNV-1 offset base" be called "offset_basis" (or "offset basis") because the same values are used for both FNV-1 and FNV-1a hash functions. chongo (talk) 04:27, 27 January 2009 (UTC)

We added 512- and 124-bit table values. We expanded the table to include decimal and hex values for the offset basis. Please check and verify. 171.71.57.13 (talk) 01:22, 10 February 2009 (UTC)

I verified that the decimal and hex values of the FNV parameter table match our internal values. chongo (talk) 03:45, 10 February 2009 (UTC)

Request to restore information
During the period where User:Phil Spectre was, using his own words "trying to kill one hash" [], a number of useful bits of information about the FNV hash were lost. And while the [|result of the discussion] was keep, a number of useful bits of information about the hash function was never restored.

Fundamental information about this hash was removed around the time of that discussion []. Would people object if I restored information about FNV Primes [], FNV offset basis [], and FNV hash parameters [] to this page while siting the [| IETF_Draft] as a reference [|FNV_Primes], [|FNV_Constants] and the [|FNV_Offset_Basis]? chongo (talk) 19:55, 10 August 2014 (UTC)
 * Go for it, just be sure you site independent sources (such as the IETF). 75.147.137.18 (talk) 04:26, 20 September 2014 (UTC)
 * The fundamental information on hash constants has been restored. Independent sources from an IETF draft have been added.