de40f961e3
hash/tuple: add is_transparent
2023-07-25 10:00:45 +10:00
e02a4e2594
hash/{std,tuple}: operators should be const
2023-07-25 10:00:30 +10:00
ef309fd4de
hash/std: add a trivial adapter for std::hash
2023-07-24 13:09:06 +10:00
c011b2177c
hash/tuple: add a std compatible tuple hashing object
2023-07-24 12:56:19 +10:00
cb06fb9b29
hash/mix: add a simple std compatible wrapper for hash::mix
2023-07-24 12:55:48 +10:00
1828687a7e
build: add [[fallthrough]] attributes
2022-08-18 13:11:38 +10:00
2e0f6c6923
hash/siphash: add an (ugly) siphash128 implementation
2022-07-25 11:59:13 +10:00
77071e3334
hash/siphash: prefer short integer names
2022-07-21 15:44:07 +10:00
f962653818
hash/siphash: correct the update loop bounds
2022-07-21 14:23:17 +10:00
cc3153123e
hash/siphash: style
2022-07-21 14:23:09 +10:00
b3f00b2f39
hash/siphash: add support by byte array keys
2022-07-21 14:22:47 +10:00
50b2105df5
build: clang-tidy fixes
2021-04-19 14:52:22 +10:00
92afaf38ec
build: avoid double underscore header guards
2021-04-14 15:35:49 +10:00
0977fb89b3
debug/assert: don't use iostream
2021-04-12 16:56:06 +10:00
8f5604dde6
hash: add halfsipmix
2020-11-03 11:45:21 +10:00
e22f4a9001
types/sized: update bits types to follow a more current style
2020-10-22 11:27:25 +10:00
3d5258b974
hash: add combiner adapter
2020-08-17 14:31:16 +10:00
8beada1646
debug: split debug headers into components
2019-05-17 12:26:08 +10:00
cc9b9b19c1
hash/buzhash: add digest_type typedef
2019-04-23 08:54:58 +10:00
8e92563a15
hash/buzhash: remove overzealous rotation warning
2019-04-22 14:23:26 +10:00
209a6800c4
hash/buzhash: add a trivial buzhash implementation
2019-04-22 13:59:48 +10:00
81715c1602
hash/table: add a trivial table lookup 'hash'
2019-04-22 09:51:04 +10:00
b61d55ee3c
build: satiate clang-tidy somewhat
2019-01-03 15:48:34 +11:00
f6056153e3
rename root namespace from util to cruft
...
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87
relicense under MPL-2.0
2018-08-04 15:14:06 +10:00
82b1c9fa40
hash/siphash: set default compression/finalisation params
2018-06-01 13:25:21 +10:00
497d3ca970
build: update for gcc-8.1 warnings
2018-05-03 18:32:08 +10:00
1c150296f9
hash/siphash: qualify local helper functions as static
2018-05-03 17:32:45 +10:00
6f51b82f65
siphash: add initial implementation
2018-01-23 18:57:04 +11:00
dd9a4a4646
xxhash: update copyright date
2018-01-23 18:57:04 +11:00
bc4a0c3179
xxhash: rewrite for safety and accurate tests
...
there were a few potential buffer overflows, inaccurate test data, and
the 64 bit path wasn't correct.
fixes buffer overflow from clang-analyze
2018-01-23 18:57:04 +11:00
09aa86f55f
crypto: remove cryptography primitives
...
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
681768093e
hash: use a consistency, less flexible, interface
2018-01-13 15:24:12 +11:00
9bb2bdbaba
Merge remote-tracking branch 'origin/master'
2018-01-10 17:19:39 +11:00
2713da45f4
format: rework parser for currying support
2018-01-09 16:28:46 +11:00
d3f434b523
coord: make template parameters more flexible
...
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.
We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.
The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2
build: don't use './' as an include prefix
...
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
6d6c5c0cfc
hash/crc: use relative include paths
...
We can't use system include paths for our headers because we are
probably not installed just yet..
2017-05-12 15:56:41 +10:00
f4093cb3d5
hash/crc: document template parameters
2017-02-20 18:01:40 +11:00
bec24535fc
hash/crc: parameterise crc for reflection, and 64 bits
2017-02-14 19:47:12 +11:00
b39f80e606
hash/crc: parameterise on type and polynomial generator
2017-02-13 17:13:46 +11:00
154f43d188
sha2: style
2017-01-27 15:00:20 +11:00
4a73c1761b
sha2: use constexpr for static numeric arrays
2017-01-27 14:59:59 +11:00
29c3fc9309
hash/crc: add trivial desciption comment to class
2017-01-25 16:14:49 +11:00
5a25f07f8e
hash/crc: adapt implementation from png appendix
2017-01-25 16:12:12 +11:00
98dc992473
build: avoid integer length warnings
2017-01-05 19:50:28 +11:00
353cf839d4
use nested namespace declarations
2017-01-05 15:06:49 +11:00
f3fb385686
hash/xxhash: remove unnecessary foundation code
2016-12-21 21:08:26 +11:00
9711272989
xxhash: fix some integer conversion warnings
2016-12-12 15:45:21 +11:00
d1ec872bd4
xxhash: add forgotten C implementation
2016-11-18 13:24:34 +11:00