diff options
author | vin <git@vineetk.net> | 2024-01-15 18:52:15 -0500 |
---|---|---|
committer | vin <git@vineetk.net> | 2024-01-15 18:52:15 -0500 |
commit | 39b43b676e9aa8f549fea6fca7a6b7fd7891de69 (patch) | |
tree | 2559e89a4398c5bbe278c01f7549a9cfde3b6d7f /lib/fnv/README | |
parent | 8c8e1ad4d3f6a197cc7a0550940e0c71d84c050e (diff) |
remove more unused libraries
Diffstat (limited to 'lib/fnv/README')
-rw-r--r-- | lib/fnv/README | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/lib/fnv/README b/lib/fnv/README deleted file mode 100644 index 60aa9aaf61..0000000000 --- a/lib/fnv/README +++ /dev/null @@ -1,158 +0,0 @@ -#=====================# -# Fowler/Noll/Vo hash # -#=====================# - -The basis of this hash algorithm was taken from an idea sent -as reviewer comments to the IEEE POSIX P1003.2 committee by: - - Phong Vo (http://www.research.att.com/info/kpv) - Glenn Fowler (http://www.research.att.com/~gsf/) - -In a subsequent ballot round: - - Landon Curt Noll (http://www.isthe.com/chongo) - -improved on their algorithm. Some people tried this hash -and found that it worked rather well. In an EMail message -to Landon, they named it the ``Fowler/Noll/Vo'' or FNV hash. - -FNV hashes are designed to be fast while maintaining a low -collision rate. The FNV speed allows one to quickly hash lots -of data while maintaining a reasonable collision rate. See: - - http://www.isthe.com/chongo/tech/comp/fnv/index.html - -for more details as well as other forms of the FNV hash. -Comments, questions, bug fixes and suggestions welcome at -the address given in the above URL. - - -#==================# -# FNV hash utility # -#==================# - -Two hash utilities (32 bit and 64 bit) are provided: - - fnv032 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv132 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv1a32 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - - fnv064 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv164 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - fnv1a64 [-b bcnt] [-m] [-s arg] [-t code] [-v] [arg ...] - - -b bcnt mask off all but the lower bcnt bits (default: 32) - -m multiple hashes, one per line for each arg - -s hash arg as a string (ignoring terminating NUL bytes) - -t code 0 ==> generate test vectors, 1 ==> test FNV hash - -v verbose mode, print arg after hash (implies -m) - arg string (if -s was given) or filename (default stdin) - -The fnv032, fnv064 implement the historic FNV-0 hash. -The fnv132, fnv164 implement the recommended FNV-1 hash. -The fnv1a32, fnv1a64 implement the recommended FNV-1a hash. - -This is the original historic FNV algorithm with a 0 offset basis. -It is recommended that FNV-1, with a non-0 offset basis be used instead. - -To test FNV hashes, try: - - fnv032 -t 1 -v - fnv132 -t 1 -v - fnv1a32 -t 1 -v - - fnv064 -t 1 -v - fnv164 -t 1 -v - fnv1a64 -t 1 -v - -If you are compiling, try: - - make check - - -#==================# -# FNV hash library # -#==================# - -The libfnv.a library implements both a 32 bit and a 64 bit FNV hash -on collections of bytes, a NUL terminated strings or on an open file -descriptor. - -Here is the 32 bit FNV 1 hash: - - Fnv32_t fnv_32_buf(void *buf, int len, Fnv32_t hval); /* byte buf */ - Fnv32_t fnv_32_str(char *string, Fnv32_t hval); /* string */ - -Here is the 32 bit FNV 1a hash: - - Fnv32_t fnv_32a_buf(void *buf, int len, Fnv32_t hval); /* byte buf */ - Fnv32_t fnv_32a_str(char *string, Fnv32_t hval); /* string */ - -Here is the 64 bit FNV 1 hash: - - Fnv64_t fnv_64_buf(void *buf, int len, Fnv64_t hval); /* byte buf */ - Fnv64_t fnv_64_str(char *string, Fnv64_t hval); /* string */ - -Here is the 64 bit FNV 1a hash: - - Fnv64_t fnv_64a_buf(void *buf, int len, Fnv64_t hval); /* byte buf */ - Fnv64_t fnv_64a_str(char *string, Fnv64_t hval); /* string */ - -On the first call to a hash function, one must supply the initial basis -that is appropriate for the hash in question: - - FNV-0: (not recommended) - - FNV0_32_INIT /* 32 bit FNV-0 initial basis */ - FNV0_64_INIT /* 64 bit FNV-0 initial basis */ - - FNV-1: - - FNV1_32_INIT /* 32 bit FNV-1 initial basis */ - FNV1_64_INIT /* 64 bit FNV-1 initial basis */ - - FNV-1a: - - FNV1A_32_INIT /* 32 bit FNV-1a initial basis */ - FNV1A_64_INIT /* 64 bit FNV-1a initial basis */ - -For example to perform a 64 bit FNV-1 hash: - - #include "fnv.h" - - Fnv64_t hash_val; - - hash_val = fnv_64_str("a string", FNV1_64_INIT); - hash_val = fnv_64_str("more string", hash_val); - -produces the same final hash value as: - - hash_val = fnv_64_str("a stringmore string", FNV1_64_INIT); - -NOTE: If one used 'FNV0_64_INIT' instead of 'FNV1_64_INIT' one would get the - historic FNV-0 hash instead recommended FNV-1 hash. - -To perform a 32 bit FNV-1 hash: - - #include "fnv.h" - - Fnv32_t hash_val; - - hash_val = fnv_32_buf(buf, length_of_buf, FNV1_32_INIT); - hash_val = fnv_32_str("more data", hash_val); - -To perform a 64 bit FNV-1a hash: - - #include "fnv.h" - - Fnv64_t hash_val; - - hash_val = fnv_64a_buf(buf, length_of_buf, FNV1_64_INIT); - hash_val = fnv_64a_str("more data", hash_val); - -=-= - -chongo <Landon Curt Noll> /\oo/\ -http://www.isthe.com/chongo - -Share and Enjoy! |