core
hash
package core:hash
Overview
crc32, crc64, adler32, djb, fnv, jenkins, murmur and other hashes.
This section is empty.
This section is empty.
This section is empty.
adler32 :: proc "contextless" (data: []u8 , seed: u32 = u32(1)) -> u32 {…}
crc16_ccitt_0x1021 :: proc "contextless" (data: []u8 , seed: u16 = u16(0)) -> (result: u16 ) {…}
Compute CRC-16 in the manner of CCITT (ITU-T V.41), using the 0x1021 polynomial.
Generator polynomial: x^16 + x^12 + x^5 + 1
Used in the UDF (DVD *.iso) disk format's Volume Descriptor Tag,
and was more historically the ITU-T V.41 CRC-16 used in the XModem protocol,
which uses 0xffff as the initial value.
crc32 :: proc "contextless" (data: []u8 , seed: u32 = u32(0)) -> u32 {…}
crc64_ecma_182 :: proc "contextless" (data: []u8 , seed: u64 = u64(0)) -> (result: u64 ) {…}
crc64_iso_3306 :: proc "contextless" (data: []u8 , seed: u64 = u64(0)) -> u64 {…}
Generator polynomial: x^64 + x^4 + x^3 + x + 1
crc64_iso_3306_inverse :: proc "contextless" (data: []u8 , seed: u64 = u64(0)) -> u64 {…}
crc64_xz :: proc "contextless" (data: []u8 , seed: u64 = u64(0)) -> u64 {…}
Compute CRC-64 in the manner of xz, using the ECMA-182 polynomial,
bit-reversed, with one's complement pre and post processing.
Based on Mark Adler's v1.4 implementation in C under the ZLIB license.
djb2 :: proc "contextless" (data: []u8 , seed: u32 = u32(5381)) -> u32 {…}
djbx33a :: proc "contextless" (data: []u8 , seed: u32 = u32(5381)) -> (result: [16 ]u8 ) {…}
If you have a choice, prefer fnv32a
fnv32_no_a :: proc "contextless" (data: []u8 , seed: u32 = u32(0x811c9dc5)) -> u32 {…}
If you have a choice, prefer fnv32a
fnv32a :: proc "contextless" (data: []u8 , seed: u32 = u32(0x811c9dc5)) -> u32 {…}
If you have a choice, prefer fnv64a
fnv64_no_a :: proc "contextless" (data: []u8 , seed: u64 = u64(0xcbf29ce484222325)) -> u64 {…}
If you have a choice, prefer fnv64a
fnv64a :: proc "contextless" (data: []u8 , seed: u64 = u64(0xcbf29ce484222325)) -> u64 {…}
ginger16 :: proc "contextless" (data: []u8 ) -> u16 {…}
ginger8 :: proc "contextless" (data: []u8 ) -> u8 {…}
ginger_hash16 :: proc "contextless" (x: u16 ) -> u16 {…}
ginger_hash8 :: proc "contextless" (x: u8 ) -> u8 {…}
jenkins :: proc "contextless" (data: []u8 , seed: u32 = u32(0)) -> u32 {…}
murmur32 :: proc "contextless" (data: []u8 , seed: u32 = u32(0x9747b28c)) -> u32 {…}
murmur64a :: proc "contextless" (data: []u8 , seed: u64 = u64(0x9747b28c)) -> u64 {…}
See https://github.com/aappleby/smhasher/blob/master/src/MurmurHash2.cpp#L96
murmur64b :: proc "contextless" (data: []u8 , seed: u64 = u64(0x9747b28c)) -> u64 {…}
See https://github.com/aappleby/smhasher/blob/master/src/MurmurHash2.cpp#L140
sdbm :: proc "contextless" (data: []u8 , seed: u32 = u32(0)) -> u32 {…}
This section is empty.
Source Files
Generated with odin version dev-2025-10 (vendor "odin") Windows_amd64 @ 2025-10-26 21:11:50.122410500 +0000 UTC