gingerBill
a5a7226885
Remove auto_cast
2023-01-16 12:09:09 +00:00
gingerBill
dcf2c43863
Add aliases for fnv* no_a forms
2022-11-29 11:55:01 +00:00
gingerBill
e8bc576b23
Rename fnv32 and fnv64 to fnv32_no_a and fnv64_no_a
2022-11-03 11:44:19 +00:00
Jeroen van Rijn
3e6ec65dd9
Fix murmur64a's tail handling.
...
Also, split up the murmur64 proc into murmur64a and murmur64b as they're distinct hashes with their own output.
2022-07-15 13:02:07 +02:00
Jeroen van Rijn
5332705e31
[hash] Give crc-64 a 64-bit seed.
2022-07-14 11:07:52 +02:00
gingerBill
8c1499dbc2
Make raw_data return [^]T types
2022-05-23 11:48:05 +01:00
Jeroen van Rijn
b99940f33a
[xxhash] For the streaming tests, randomly select the size to use.
...
Randomize size used with `update`.
It'll print "Using user-selected seed {18109872483301276539,2000259725719371} for update size randomness."
If a streaming test then fails, you can repeat it using:
`odin run . -define:RAND_STATE=18109872483301276539 -define:RAND_INC=2000259725719371`
2022-05-02 19:20:25 +02:00
Jeroen van Rijn
6985181961
[xxhash] Add tests for large inputs
...
Test XXH32, XXH64, XXH3-64 and XXH3-128 for large inputs, with both all-at-once and streaming APIs.
XXH32_create_state and XXH64_create_state now implicitly call their "reset state" variants to simplify the streaming API to 3 steps:
- create state / defer destroy
- update
- digest (finalize)
These are tested with an array of 1, 2, 4, 8 and 16 megabytes worth of zeroes.
All return the same hashes as do both the one-shot version, as well as that of the official xxhsum tool.
3778/3778 tests successful.
2022-05-02 17:51:39 +02:00
Jeroen van Rijn
335b724209
[xxh3] Fix flaws in streaming implementation
2022-05-01 12:47:05 +02:00
gingerBill
c6dc517004
Correct: murmur32
2022-03-11 08:52:16 +00:00
gingerBill
f0529535e0
ODIN_ENDIAN changed to an enum constant; ODIN_ENUM_STRING is the new string version of the old constant
2022-01-15 17:53:18 +00:00
gingerBill
c987b84292
Move bash.djbx33a to hash.odin
2021-12-29 12:24:47 +00:00
gingerBill
a9b17b5a37
Add hash.djbx33a
2021-12-29 12:01:07 +00:00
gingerBill
12c1291805
Add optional seed parameters to all hashes
2021-11-18 16:14:33 +00:00
Jeroen van Rijn
6e22a6dfa5
hash: Smaller CRC-64 ISO 3306 table.
2021-09-21 16:28:35 +02:00
Jeroen van Rijn
181eabcffc
hash: Add CRC-64 (ISO 3306) and inverse.
2021-09-21 16:17:01 +02:00
Jeroen van Rijn
b600ffba3b
Correct CRC-64 (ECMA 182) & add CRC-64 (XZ) and tests.
2021-09-21 15:17:23 +02:00
gingerBill
b427bd8105
Correct XXH_DISABLE_PREFETCH usage
2021-09-18 12:59:54 +01:00
gingerBill
6855538729
Merge branch 'master' into llvm-12.0.1-windows
2021-09-18 12:55:13 +01:00
Jeroen van Rijn
b6d0a8fe0c
xxhash: Add tests for streaming input.
2021-09-15 23:32:48 +02:00
Jeroen van Rijn
662d27b796
Finish xxHash implementation.
2021-09-15 20:06:07 +02:00
Jeroen van Rijn
a641ef95c0
Add XXH3-64 + tests.
2021-09-13 20:58:26 +02:00
Jeroen van Rijn
00c1d34108
xxhash: Extra (generated) tests.
2021-09-11 23:45:08 +02:00
gingerBill
7260d3cecb
Add intrinsics.prefetch_* procedures
2021-09-11 17:30:44 +01:00
Jeroen van Rijn
5f920414d7
xxhash: Disable prefetch on Linux.
2021-09-11 15:45:17 +02:00
Jeroen van Rijn
72782d9035
xxhash: Fix test on Linux.
2021-09-11 15:39:11 +02:00
Jeroen van Rijn
eaefbc43cb
xxhash: Add XXH3_128 + test vectors.
2021-09-11 15:28:49 +02:00
Jeroen van Rijn
f04614b1f1
Make -vet happy.
2021-09-09 16:05:59 +02:00
Jeroen van Rijn
637685316d
Add xxhash tests to CI.
2021-09-09 16:01:44 +02:00
Jeroen van Rijn
f16e98b074
Add xxhash benchmark.
2021-09-09 15:26:57 +02:00
Jeroen van Rijn
f5d5417af7
xxhash: Initial implementations.
2021-09-09 15:26:57 +02:00
gingerBill
251da264ed
Remove unneeded semicolons from the core library
2021-08-31 22:21:13 +01:00
gingerBill
f0437a4242
Enforce core:builtin and core:intrinsics for imports
2021-08-21 13:44:16 +01:00
Jeroen van Rijn
17748f18b9
Adler32 speedup.
2021-06-24 19:06:39 +02:00
gingerBill
1e9cc058a0
Update hash.crc32 to use slicing-by-8 algorithm to improve throughput by ~3.5x
2021-06-24 00:03:59 +01:00
Jeroen van Rijn
1cfe226686
ZLIB: More faster.
2021-06-23 22:18:17 +02:00
Jeroen van Rijn
f4d0f74dbb
Allow seeding CRC32, CRC64 & Adler32 with previous partial hash.
...
Foo := []u8{'F', 'o','o', '3', 'F', 'o', 'o', '4'};
crc := hash.crc32(Foo[0:4]);
crc = hash.crc32(Foo[4:], crc);
crc_all := hash.crc32(Foo);
fmt.printf("%8x %8x\n", crc, crc_all);
d6285ff7 d6285ff7
a32 := hash.adler32(Foo[0:4]);
a32 = hash.adler32(Foo[4:], a32);
a32_all := hash.adler32(Foo);
fmt.printf("%8x %8x\n", a32, a32_all);
0c5102b0 0c5102b0
2021-03-25 13:48:34 +01:00
gingerBill
79432be784
Add the mini ginger* hashes to package hash
2021-01-09 00:33:34 +00:00
gingerBill
de13584be2
Add #no_bounds_check to crc procedures
2020-10-14 16:00:08 +01:00
gingerBill
86448ee044
Add raw_data to replace cases in which &x[0] was used
2020-06-29 15:58:24 +01:00
gingerBill
5edb1e8a28
Add hash.djb2 hash.jenkins; Add container.Bloom_Filter; Add container.Ring
2020-06-16 12:53:57 +01:00
gingerBill
0718f14774
Reduce number of range and slice operators #239
...
Replace .. and ... with : and ..
2018-08-01 21:34:59 +01:00
gingerBill
ba67e474d3
Make source code compile with 32 bit (but not build 32 bit code)
2018-06-15 21:46:03 +01:00
gingerBill
5c52ffe24e
Reorganize runtime package
2018-05-27 21:22:25 +01:00
gingerBill
5b6770f3d2
Parse directories to be packages
2018-05-21 20:47:52 +01:00