cbp2make
Makefile generation tool for Code::Blocks IDE
stringhash.h
Go to the documentation of this file.
1 /*
2  Collection of non-cryptographic string hashing functions.
3  All code is Public Domain.
4 */
5 
6 #ifndef STRINGHASH_H
7 #define STRINGHASH_H
8 
9 #include <stddef.h>
10 #include <stdint.h>
11 
12 typedef uint8_t data_t;
13 typedef uint32_t hash_t;
14 
15 hash_t add_hash(const data_t *data, const size_t size);
16 hash_t xor_hash(const data_t *data, const size_t size);
17 hash_t rot_hash(const data_t *data, const size_t size);
18 hash_t djb_hash(const data_t *data, const size_t size);
19 hash_t djb2_hash(const data_t *data, const size_t size);
20 hash_t sax_hash(const data_t *data, const size_t size);
21 hash_t fnv_hash(const data_t *data, const size_t size);
22 hash_t oat_hash(const data_t *data, const size_t size);
23 hash_t jsw_hash(const data_t *data, const size_t size, const hash_t *magic);
24 hash_t elf_hash(const data_t *data, const size_t size);
25 hash_t jen_hash(const data_t *data, const size_t size, const hash_t magic);
26 hash_t sdbm_hash(const data_t *data, const size_t size);
27 
28 #endif
uint8_t data_t
Type of element of input array of a hash function.
Definition: stringhash.h:12
hash_t fnv_hash(const data_t *data, const size_t size)
FNV hash.
Definition: stringhash.cpp:71
hash_t oat_hash(const data_t *data, const size_t size)
One-at-a-Time hash.
Definition: stringhash.cpp:82
hash_t jsw_hash(const data_t *data, const size_t size, const hash_t *magic)
JSW hash.
Definition: stringhash.cpp:97
uint32_t hash_t
Type of hash function result.
Definition: stringhash.h:13
hash_t jen_hash(const data_t *data, const size_t size, const hash_t magic)
Jenkins hash.
Definition: stringhash.cpp:136
hash_t elf_hash(const data_t *data, const size_t size)
ELF hash.
Definition: stringhash.cpp:107
hash_t djb_hash(const data_t *data, const size_t size)
Bernstein hash.
Definition: stringhash.cpp:39
hash_t sax_hash(const data_t *data, const size_t size)
Shift-Add-XOR hash.
Definition: stringhash.cpp:60
hash_t rot_hash(const data_t *data, const size_t size)
Rotating hash.
Definition: stringhash.cpp:28
hash_t xor_hash(const data_t *data, const size_t size)
XOR hash.
Definition: stringhash.cpp:18
hash_t djb2_hash(const data_t *data, const size_t size)
Modified Bernstein hash.
Definition: stringhash.cpp:50
hash_t add_hash(const data_t *data, const size_t size)
Additive hash.
Definition: stringhash.cpp:8
hash_t sdbm_hash(const data_t *data, const size_t size)
Public-domain reimplementation of NDBM hash.
Definition: stringhash.cpp:172