Pyrogenesis  trunk
Functions
fnv_hash.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

u32 fnv_hash (const void *buf, size_t len=0)
 rationale: this algorithm was chosen because it delivers 'good' results for string data and is relatively simple. More...
 
u64 fnv_hash64 (const void *buf, size_t len=0)
 64-bit version of fnv_hash. More...
 
u32 fnv_lc_hash (const char *str, size_t len=0)
 special version of fnv_hash for strings: first converts to lowercase (useful for comparing mixed-case filenames) More...
 

Function Documentation

u32 fnv_hash ( const void *  buf,
size_t  len = 0 
)

rationale: this algorithm was chosen because it delivers 'good' results for string data and is relatively simple.

other good alternatives exist; see Ozan Yigit's hash roundup. calculate FNV1-A hash.

Parameters
bufinput buffer.
lenif 0 (default), treat buf as a C-string; otherwise, indicates how many bytes of buffer to hash.
Returns
hash result. note: results are distinct for buffers containing differing amounts of zero bytes because the hash value is seeded.
u64 fnv_hash64 ( const void *  buf,
size_t  len = 0 
)

64-bit version of fnv_hash.

u32 fnv_lc_hash ( const char *  str,
size_t  len = 0 
)

special version of fnv_hash for strings: first converts to lowercase (useful for comparing mixed-case filenames)