aboutsummaryrefslogtreecommitdiff
path: root/core/hash
Commit message (Collapse)AuthorAgeFilesLines
* Replace `core:*` to `base:*` where appropriategingerBill2024-01-287-8/+8
|
* Remove `auto_cast`gingerBill2023-01-161-1/+1
|
* Add aliases for fnv* no_a formsgingerBill2022-11-291-1/+3
|
* Rename `fnv32` and `fnv64` to `fnv32_no_a` and `fnv64_no_a`gingerBill2022-11-031-2/+4
|
* Fix murmur64a's tail handling.Jeroen van Rijn2022-07-151-86/+92
| | | | Also, split up the murmur64 proc into murmur64a and murmur64b as they're distinct hashes with their own output.
* [hash] Give crc-64 a 64-bit seed.Jeroen van Rijn2022-07-141-2/+2
|
* Make `raw_data` return `[^]T` typesgingerBill2022-05-232-8/+8
|
* [xxhash] For the streaming tests, randomly select the size to use.Jeroen van Rijn2022-05-021-1/+3
| | | | | | | | | 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`
* [xxhash] Add tests for large inputsJeroen van Rijn2022-05-022-1/+3
| | | | | | | | | | | | | | 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.
* [xxh3] Fix flaws in streaming implementationJeroen van Rijn2022-05-011-4/+4
|
* Correct: murmur32gingerBill2022-03-111-1/+1
|
* `ODIN_ENDIAN` changed to an enum constant; `ODIN_ENUM_STRING` is the new ↵gingerBill2022-01-151-1/+1
| | | | string version of the old constant
* Move bash.djbx33a to hash.odingingerBill2021-12-292-18/+17
|
* Add `hash.djbx33a`gingerBill2021-12-291-0/+18
|
* Add optional seed parameters to all hashesgingerBill2021-11-181-22/+20
|
* hash: Smaller CRC-64 ISO 3306 table.Jeroen van Rijn2021-09-211-66/+66
|
* hash: Add CRC-64 (ISO 3306) and inverse.Jeroen van Rijn2021-09-211-13/+106
|
* Correct CRC-64 (ECMA 182) & add CRC-64 (XZ) and tests.Jeroen van Rijn2021-09-211-6/+576
|
* Correct `XXH_DISABLE_PREFETCH` usagegingerBill2021-09-181-3/+1
|
* Merge branch 'master' into llvm-12.0.1-windowsgingerBill2021-09-185-184/+609
|\
| * xxhash: Add tests for streaming input.Jeroen van Rijn2021-09-151-12/+12
| |
| * Finish xxHash implementation.Jeroen van Rijn2021-09-155-551/+439
| |
| * Add XXH3-64 + tests.Jeroen van Rijn2021-09-131-126/+142
| |
| * xxhash: Extra (generated) tests.Jeroen van Rijn2021-09-112-130/+646
| |
* | Add `intrinsics.prefetch_*` proceduresgingerBill2021-09-111-10/+7
|/
* xxhash: Disable prefetch on Linux.Jeroen van Rijn2021-09-111-1/+4
|
* xxhash: Fix test on Linux.Jeroen van Rijn2021-09-111-1/+3
|
* xxhash: Add XXH3_128 + test vectors.Jeroen van Rijn2021-09-113-4/+937
|
* Make -vet happy.Jeroen van Rijn2021-09-091-4/+0
|
* Add xxhash tests to CI.Jeroen van Rijn2021-09-091-82/+1
|
* Add xxhash benchmark.Jeroen van Rijn2021-09-091-1/+86
|
* xxhash: Initial implementations.Jeroen van Rijn2021-09-093-0/+691
|
* Remove unneeded semicolons from the core librarygingerBill2021-08-314-196/+196
|
* Enforce `core:builtin` and `core:intrinsics` for importsgingerBill2021-08-212-2/+2
|
* Adler32 speedup.Jeroen van Rijn2021-06-241-5/+38
|
* Update hash.crc32 to use slicing-by-8 algorithm to improve throughput by ~3.5xgingerBill2021-06-242-74/+401
|
* ZLIB: More faster.Jeroen van Rijn2021-06-232-5/+17
|
* Allow seeding CRC32, CRC64 & Adler32 with previous partial hash.Jeroen van Rijn2021-03-252-6/+6
| | | | | | | | | | | | | | | | | 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
* Add the mini ginger* hashes to package hashgingerBill2021-01-091-0/+40
|
* Add #no_bounds_check to crc proceduresgingerBill2020-10-141-2/+2
|
* Add `raw_data` to replace cases in which `&x[0]` was usedgingerBill2020-06-291-3/+3
|
* Add `hash.djb2` `hash.jenkins`; Add `container.Bloom_Filter`; Add ↵gingerBill2020-06-162-143/+173
| | | | `container.Ring`
* Reduce number of range and slice operators #239gingerBill2018-08-011-2/+2
| | | | Replace .. and ... with : and ..
* Make source code compile with 32 bit (but not build 32 bit code)gingerBill2018-06-151-2/+2
|
* Reorganize `runtime` packagegingerBill2018-05-271-1/+1
|
* Parse directories to be packagesgingerBill2018-05-211-0/+348