Skip to content

Instantly share code, notes, and snippets.

@arthurprs
Last active October 17, 2016 21:20
Show Gist options
  • Save arthurprs/5e57cd59586acd8c52dbb02b55711096 to your computer and use it in GitHub Desktop.
Save arthurprs/5e57cd59586acd8c52dbb02b55711096 to your computer and use it in GitHub Desktop.
SMHasher #37229
static const uint32_t kGoldenRatioU32 = 0x9E3779B9U;
static const uint64_t kGoldenRatioU64 = 0x517cc1b727220a95ULL;
inline uint32_t
RotateBitsLeft32(uint32_t aValue, uint8_t aBits)
{
return (aValue << aBits) | (aValue >> (32 - aBits));
}
inline uint64_t
RotateBitsLeft64(uint64_t aValue, uint8_t aBits)
{
return (aValue << aBits) | (aValue >> (64 - aBits));
}
inline uint32_t
AddU32ToHash(uint32_t aHash, uint32_t aValue)
{
return kGoldenRatioU32 * (RotateBitsLeft32(aHash, 5) ^ aValue);
}
inline uint64_t
AddU64ToHash(uint64_t aHash, uint64_t aValue)
{
return kGoldenRatioU64 * (RotateBitsLeft64(aHash, 5) ^ aValue);
}
inline void Proposed32_test ( const void * key, int len, uint32_t seed, void * out ) {
uint32_t h = seed;
const uint8_t * data = (const uint8_t*)key;
for(int i = 0; i < len; i++) {
h = AddU32ToHash(h, data[i]);
}
*(uint32_t*)out = h;
}
inline void Proposed32_4_test ( const void * key, int len, uint32_t seed, void * out ) {
uint32_t h = seed;
const uint8_t * data = (const uint8_t*)key;
for(int i = 0, parts = len / sizeof(uint32_t); i < parts; i += 1)
{
h = AddU32ToHash(h, *((uint32_t*)(&data[sizeof(uint32_t) * i])));
}
for(int i = len - len % sizeof(uint32_t); i < len; i++) {
h = AddU32ToHash(h, data[i]);
}
*(uint32_t*)out = h;
}
inline void Proposed64_test ( const void * key, int len, uint32_t seed, void * out ) {
uint64_t h = seed;
const uint8_t * data = (const uint8_t*)key;
for(int i = 0; i < len; i++) {
h = AddU64ToHash(h, data[i]);
}
*(uint64_t*)out = h;
}
inline void Proposed64_4_test ( const void * key, int len, uint32_t seed, void * out ) {
uint64_t h = seed;
const uint8_t * data = (const uint8_t*)key;
for(int i = 0, parts = len / sizeof(uint32_t); i < parts; i += 1)
{
h = AddU64ToHash(h, *((uint32_t*)(&data[sizeof(uint32_t) * i])));
}
for(int i = len - len % sizeof(uint32_t); i < len; i++) {
h = AddU64ToHash(h, data[i]);
}
*(uint64_t*)out = h;
}
inline void FNV64 ( const void * key, int len, uint32_t seed, void * out )
{
uint64_t h = seed;
const uint8_t * data = (const uint8_t*)key;
h ^= 0xcbf29ce484222325ULL;
for(int i = 0; i < len; i++)
{
h ^= data[i];
h *= 0x100000001b3ULL;
}
*(uint64_t*)out = h;
}
-------------------------------------------------------------------------------
--- Testing fnv64 (fnv64)
[[[ Sanity Tests ]]]
Verification value 0x103455FC : Failed! (Expected 0x3719db20)
Running sanity check 1..........PASS
Running sanity check 2..........PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
Alignment 0 - 0.284 bytes/cycle - 812.64 MiB/sec @ 3 ghz
Alignment 1 - 0.279 bytes/cycle - 798.82 MiB/sec @ 3 ghz
Alignment 2 - 0.302 bytes/cycle - 863.99 MiB/sec @ 3 ghz
Alignment 3 - 0.302 bytes/cycle - 863.98 MiB/sec @ 3 ghz
Alignment 4 - 0.284 bytes/cycle - 812.51 MiB/sec @ 3 ghz
Alignment 5 - 0.279 bytes/cycle - 798.39 MiB/sec @ 3 ghz
Alignment 6 - 0.269 bytes/cycle - 769.48 MiB/sec @ 3 ghz
Alignment 7 - 0.290 bytes/cycle - 830.93 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 30.06 cycles/hash
Small key speed test - 2-byte keys - 32.37 cycles/hash
Small key speed test - 3-byte keys - 29.72 cycles/hash
Small key speed test - 4-byte keys - 28.42 cycles/hash
Small key speed test - 5-byte keys - 30.82 cycles/hash
Small key speed test - 6-byte keys - 30.20 cycles/hash
Small key speed test - 7-byte keys - 30.66 cycles/hash
Small key speed test - 8-byte keys - 32.42 cycles/hash
Small key speed test - 9-byte keys - 30.81 cycles/hash
Small key speed test - 10-byte keys - 28.65 cycles/hash
Small key speed test - 11-byte keys - 32.24 cycles/hash
Small key speed test - 12-byte keys - 35.42 cycles/hash
Small key speed test - 13-byte keys - 37.80 cycles/hash
Small key speed test - 14-byte keys - 38.09 cycles/hash
Small key speed test - 15-byte keys - 39.61 cycles/hash
Small key speed test - 16-byte keys - 44.49 cycles/hash
Small key speed test - 17-byte keys - 44.18 cycles/hash
Small key speed test - 18-byte keys - 45.06 cycles/hash
Small key speed test - 19-byte keys - 46.99 cycles/hash
Small key speed test - 20-byte keys - 44.37 cycles/hash
Small key speed test - 21-byte keys - 66.88 cycles/hash
Small key speed test - 22-byte keys - 91.90 cycles/hash
Small key speed test - 23-byte keys - 97.70 cycles/hash
Small key speed test - 24-byte keys - 94.87 cycles/hash
Small key speed test - 25-byte keys - 97.51 cycles/hash
Small key speed test - 26-byte keys - 102.40 cycles/hash
Small key speed test - 27-byte keys - 118.87 cycles/hash
Small key speed test - 28-byte keys - 111.09 cycles/hash
Small key speed test - 29-byte keys - 125.76 cycles/hash
Small key speed test - 30-byte keys - 116.47 cycles/hash
Small key speed test - 31-byte keys - 124.64 cycles/hash
[[[ Differential Tests ]]]
Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes.
1000 reps, 8303632000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored
[[[ Avalanche Tests ]]]
Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 88-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 104-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 120-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 136-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 144-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 152-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
*********FAIL*********
[[[ Keyset 'Cyclic' Tests ]]]
Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 61 - 94.451% !!!!!
Keyset 'Cyclic' - 8 cycles of 9 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 60 - 90.013% !!!!!
Keyset 'Cyclic' - 8 cycles of 10 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 58 - 94.441% !!!!!
Keyset 'Cyclic' - 8 cycles of 11 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 58 - 90.022% !!!!!
Keyset 'Cyclic' - 8 cycles of 12 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 59 - 94.440% !!!!!
[[[ Keyset 'TwoBytes' Tests ]]]
Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 16-bit window at bit 24 - 99.837% !!!!!
Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 97.231% !!!!!
Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 85.555% !!!!!
Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 63.029% !!!!!
Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 39.568% !!!!!
[[[ Keyset 'Sparse' Tests ]]]
Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 24 - 98.113% !!!!!
Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 21 - 92.385% !!!!!
Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 22 - 90.365% !!!!!
Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 21 - 81.293% !!!!!
Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 70.864% !!!!!
Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 22 - 58.042% !!!!!
Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 49 - 33.633% !!!!!
Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 59 - 56.979% !!!!!
[[[ Keyset 'Combination Lowbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 16-bit window at bit 58 - 50.250% !!!!!
[[[ Keyset 'Combination Highbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 57 - 96.728% !!!!!
[[[ Keyset 'Combination 0x8000000' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.644% !!!!!
[[[ Keyset 'Combination 0x0000001' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 56 - 89.468% !!!!!
[[[ Keyset 'Combination Hi-Lo' Tests ]]]
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 49 - 56.079% !!!!!
[[[ Keyset 'Window' Tests ]]]
Keyset 'Windowed' - 128-bit key, 20-bit window - 128 tests, 1048576 keys per test
Window at 0 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 1 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 2 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 3 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 4 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 5 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 6 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 7 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 8 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 9 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 10 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 11 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 12 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 13 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 14 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 15 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 16 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 17 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 18 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 19 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 20 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 21 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 22 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 23 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 24 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 25 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 26 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 27 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 28 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 29 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 30 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 31 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 32 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 33 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 34 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 35 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 36 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 37 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 38 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 39 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 40 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 41 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 42 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 43 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 44 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 45 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 46 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 47 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 48 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 49 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 50 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 51 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 52 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 53 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 54 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 55 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 56 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 57 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 58 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 59 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 60 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 61 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 62 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 63 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 64 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 65 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 66 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 67 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 68 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 69 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 70 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 71 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 72 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 73 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 74 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 75 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 76 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 77 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 78 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 79 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 80 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 81 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 82 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 83 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 84 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 85 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 86 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 87 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 88 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 89 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 90 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 91 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 92 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 93 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 94 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 95 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 96 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 97 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 98 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 99 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 100 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 101 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 102 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 103 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 104 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 105 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 106 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 107 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 108 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 109 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 110 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 111 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 112 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 113 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 114 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 115 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 116 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 117 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 118 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 119 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 120 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 121 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 122 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 123 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 124 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 125 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 126 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 127 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 128 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
[[[ Keyset 'Text' Tests ]]]
Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 46 - 3.146% !!!!!
Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 95.545% !!!!!
Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 7 - 1.472% !!!!!
[[[ Keyset 'Zeroes' Tests ]]]
Keyset 'Zeroes' - 65536 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 12-bit window at bit 55 - 75.005% !!!!!
[[[ Keyset 'Seed' Tests ]]]
Keyset 'Seed' - 1000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 54 - 91.540% !!!!!
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 750.646182 seconds
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--- Testing proposed32 (proposed32)
[[[ Sanity Tests ]]]
Verification value 0xFBA82847 : Failed! (Expected 0xb8f7702b)
Running sanity check 1..........PASS
Running sanity check 2..........PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
Alignment 0 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 1 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 2 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 3 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 4 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 5 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 6 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Alignment 7 - 0.242 bytes/cycle - 691.20 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 30.36 cycles/hash
Small key speed test - 2-byte keys - 29.11 cycles/hash
Small key speed test - 3-byte keys - 29.61 cycles/hash
Small key speed test - 4-byte keys - 27.71 cycles/hash
Small key speed test - 5-byte keys - 31.37 cycles/hash
Small key speed test - 6-byte keys - 30.38 cycles/hash
Small key speed test - 7-byte keys - 30.66 cycles/hash
Small key speed test - 8-byte keys - 29.79 cycles/hash
Small key speed test - 9-byte keys - 29.16 cycles/hash
Small key speed test - 10-byte keys - 29.17 cycles/hash
Small key speed test - 11-byte keys - 30.70 cycles/hash
Small key speed test - 12-byte keys - 27.57 cycles/hash
Small key speed test - 13-byte keys - 31.16 cycles/hash
Small key speed test - 14-byte keys - 33.65 cycles/hash
Small key speed test - 15-byte keys - 34.45 cycles/hash
Small key speed test - 16-byte keys - 31.97 cycles/hash
Small key speed test - 17-byte keys - 34.49 cycles/hash
Small key speed test - 18-byte keys - 36.81 cycles/hash
Small key speed test - 19-byte keys - 38.52 cycles/hash
Small key speed test - 20-byte keys - 35.75 cycles/hash
Small key speed test - 21-byte keys - 40.31 cycles/hash
Small key speed test - 22-byte keys - 46.66 cycles/hash
Small key speed test - 23-byte keys - 50.77 cycles/hash
Small key speed test - 24-byte keys - 51.08 cycles/hash
Small key speed test - 25-byte keys - 55.35 cycles/hash
Small key speed test - 26-byte keys - 60.93 cycles/hash
Small key speed test - 27-byte keys - 60.72 cycles/hash
Small key speed test - 28-byte keys - 94.96 cycles/hash
Small key speed test - 29-byte keys - 68.11 cycles/hash
Small key speed test - 30-byte keys - 70.20 cycles/hash
Small key speed test - 31-byte keys - 121.20 cycles/hash
[[[ Differential Tests ]]]
Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 32 bit hashes.
1000 reps, 8303632000 total tests, expecting 1.93 random collisions..........
0 total collisions, of which 0 single collisions were ignored
[[[ Avalanche Tests ]]]
Testing 32-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 40-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 48-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 56-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 64-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 72-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 80-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 88-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 96-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 104-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 112-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 120-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 128-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 136-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 144-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 152-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
*********FAIL*********
[[[ Keyset 'Cyclic' Tests ]]]
Keyset 'Cyclic' - 8 cycles of 4 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11570.00 ( 0.99x)
Testing distribution - Worst bias is the 20-bit window at bit 3 - 0.033%
Keyset 'Cyclic' - 8 cycles of 5 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11725.00 ( 1.01x)
Testing distribution - Worst bias is the 20-bit window at bit 23 - 0.028%
Keyset 'Cyclic' - 8 cycles of 6 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11614.00 ( 1.00x)
Testing distribution - Worst bias is the 20-bit window at bit 17 - 0.028%
Keyset 'Cyclic' - 8 cycles of 7 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11739.00 ( 1.01x)
Testing distribution - Worst bias is the 19-bit window at bit 12 - 0.016%
Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11646.00 ( 1.00x)
Testing distribution - Worst bias is the 20-bit window at bit 3 - 0.020%
[[[ Keyset 'TwoBytes' Tests ]]]
Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions - Expected 49.57, actual 261375.00 (5272.71x) !!!!!
Testing distribution - Worst bias is the 16-bit window at bit 28 - 21.824% !!!!!
Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions - Expected 3484.56, actual 3648491.00 (1047.05x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 9 - 37.073% !!!!!
Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions - Expected 40347.77, actual 14323681.00 (355.01x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 21 - 22.266% !!!!!
Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions - Expected 227963.15, actual 36450215.00 (159.90x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 21 - 14.441% !!!!!
Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions - Expected 871784.70, actual 74192220.00 (85.10x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 21 - 9.970% !!!!!
*********FAIL*********
[[[ Keyset 'Sparse' Tests ]]]
Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions - Expected 153.70, actual 14.00 ( 0.09x)
Testing distribution - Worst bias is the 17-bit window at bit 0 - 4.435% !!!!!
Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions - Expected 2461.72, actual 799.00 ( 0.32x)
Testing distribution - Worst bias is the 19-bit window at bit 20 - 0.782%
Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions - Expected 431.55, actual 232.00 ( 0.54x)
Testing distribution - Worst bias is the 18-bit window at bit 0 - 0.613%
Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions - Expected 2069.66, actual 1555.00 ( 0.75x)
Testing distribution - Worst bias is the 19-bit window at bit 0 - 0.403%
Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions - Expected 8026.87, actual 6901.00 ( 0.86x)
Testing distribution - Worst bias is the 20-bit window at bit 27 - 0.382%
Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions - Expected 1401.34, actual 1319.00 ( 0.94x)
Testing distribution - Worst bias is the 19-bit window at bit 30 - 0.222%
Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions - Expected 910.36, actual 739.00 ( 0.81x)
Testing distribution - Worst bias is the 18-bit window at bit 10 - 0.050%
Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions - Expected 512.50, actual 257.00 ( 0.50x)
Testing distribution - Worst bias is the 18-bit window at bit 22 - 0.044%
[[[ Keyset 'Combination Lowbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 42799.01, actual 2428320.00 (56.74x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 1.555% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Highbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 42799.01, actual 2429440.00 (56.76x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 20 - 1.602% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x8000000' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 512.00, actual 1048658.00 (2048.17x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 12 - 20.117% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x0000001' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 512.00, actual 1048656.00 (2048.16x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 21 - 20.160% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Hi-Lo' Tests ]]]
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions - Expected 17339.30, actual 828326.00 (47.77x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 22 - 1.261% !!!!!
*********FAIL*********
[[[ Keyset 'Window' Tests ]]]
Keyset 'Windowed' - 64-bit key, 20-bit window - 64 tests, 1048576 keys per test
Window at 0 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 1 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 2 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 3 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 4 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 5 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 6 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 7 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 8 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 9 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 10 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 11 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 12 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 13 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 14 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 15 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 16 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 17 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 18 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 19 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 20 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 21 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 22 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 23 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 24 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 25 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 26 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 27 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 28 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 29 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 30 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 31 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 32 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 33 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 34 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 35 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 36 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 37 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 38 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 39 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 40 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 41 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 42 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 43 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 44 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 45 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 46 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 47 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 48 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 49 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 50 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 51 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 52 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 53 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 54 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 55 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 56 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 57 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 58 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 59 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 60 - Testing collisions - Expected 128.00, actual 32.00 ( 0.25x)
Window at 61 - Testing collisions - Expected 128.00, actual 104.00 ( 0.81x)
Window at 62 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 63 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 64 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
[[[ Keyset 'Text' Tests ]]]
Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions - Expected 25418.13, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 2 - 0.505%
Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions - Expected 25418.13, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 11 - 1.265% !!!!!
Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions - Expected 25418.13, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 1 - 0.286%
[[[ Keyset 'Zeroes' Tests ]]]
Keyset 'Zeroes' - 65536 keys
Testing collisions - Expected 0.50, actual 65535.00 (131072.00x) !!!!!
Testing distribution - Worst bias is the 13-bit window at bit 0 - 99.988% !!!!!
*********FAIL*********
[[[ Keyset 'Seed' Tests ]]]
Keyset 'Seed' - 1000000 keys
Testing collisions - Expected 116.42, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 6 - 0.171%
Input vcode 0x788f4fe8, Output vcode 0x2cf03179, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 661.803403 seconds
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--- Testing proposed32-4 (proposed32-4)
[[[ Sanity Tests ]]]
Verification value 0xB8F7702B : Passed!
Running sanity check 1..........PASS
Running sanity check 2..........PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
Alignment 0 - 0.815 bytes/cycle - 2330.59 MiB/sec @ 3 ghz
Alignment 1 - 0.859 bytes/cycle - 2456.26 MiB/sec @ 3 ghz
Alignment 2 - 0.853 bytes/cycle - 2441.63 MiB/sec @ 3 ghz
Alignment 3 - 0.903 bytes/cycle - 2582.83 MiB/sec @ 3 ghz
Alignment 4 - 0.890 bytes/cycle - 2545.22 MiB/sec @ 3 ghz
Alignment 5 - 0.869 bytes/cycle - 2486.22 MiB/sec @ 3 ghz
Alignment 6 - 0.857 bytes/cycle - 2450.78 MiB/sec @ 3 ghz
Alignment 7 - 0.800 bytes/cycle - 2289.30 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 34.47 cycles/hash
Small key speed test - 2-byte keys - 29.40 cycles/hash
Small key speed test - 3-byte keys - 34.53 cycles/hash
Small key speed test - 4-byte keys - 34.47 cycles/hash
Small key speed test - 5-byte keys - 37.67 cycles/hash
Small key speed test - 6-byte keys - 35.46 cycles/hash
Small key speed test - 7-byte keys - 34.04 cycles/hash
Small key speed test - 8-byte keys - 37.12 cycles/hash
Small key speed test - 9-byte keys - 33.01 cycles/hash
Small key speed test - 10-byte keys - 36.73 cycles/hash
Small key speed test - 11-byte keys - 32.68 cycles/hash
Small key speed test - 12-byte keys - 36.26 cycles/hash
Small key speed test - 13-byte keys - 33.24 cycles/hash
Small key speed test - 14-byte keys - 35.76 cycles/hash
Small key speed test - 15-byte keys - 37.58 cycles/hash
Small key speed test - 16-byte keys - 36.24 cycles/hash
Small key speed test - 17-byte keys - 39.51 cycles/hash
Small key speed test - 18-byte keys - 35.17 cycles/hash
Small key speed test - 19-byte keys - 37.92 cycles/hash
Small key speed test - 20-byte keys - 37.04 cycles/hash
Small key speed test - 21-byte keys - 35.69 cycles/hash
Small key speed test - 22-byte keys - 37.99 cycles/hash
Small key speed test - 23-byte keys - 36.10 cycles/hash
Small key speed test - 24-byte keys - 34.89 cycles/hash
Small key speed test - 25-byte keys - 34.38 cycles/hash
Small key speed test - 26-byte keys - 36.46 cycles/hash
Small key speed test - 27-byte keys - 33.60 cycles/hash
Small key speed test - 28-byte keys - 33.30 cycles/hash
Small key speed test - 29-byte keys - 32.63 cycles/hash
Small key speed test - 30-byte keys - 38.12 cycles/hash
Small key speed test - 31-byte keys - 37.02 cycles/hash
[[[ Differential Tests ]]]
Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 32 bit hashes.
1000 reps, 8303632000 total tests, expecting 1.93 random collisions..........
38995 total collisions, of which 0 single collisions were ignored !!!!!
*********FAIL*********
[[[ Avalanche Tests ]]]
Testing 32-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 40-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 48-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 56-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 64-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 72-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 80-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 88-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 96-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 104-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 112-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 120-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 128-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 136-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 144-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 152-bit keys -> 32-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
*********FAIL*********
[[[ Keyset 'Cyclic' Tests ]]]
Keyset 'Cyclic' - 8 cycles of 4 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11756.00 ( 1.01x)
Testing distribution - Worst bias is the 20-bit window at bit 20 - 0.025%
Keyset 'Cyclic' - 8 cycles of 5 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11779.00 ( 1.01x)
Testing distribution - Worst bias is the 20-bit window at bit 30 - 0.014%
Keyset 'Cyclic' - 8 cycles of 6 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11526.00 ( 0.99x)
Testing distribution - Worst bias is the 20-bit window at bit 2 - 0.026%
Keyset 'Cyclic' - 8 cycles of 7 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11652.00 ( 1.00x)
Testing distribution - Worst bias is the 20-bit window at bit 5 - 0.030%
Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions - Expected 11641.53, actual 11775.00 ( 1.01x)
Testing distribution - Worst bias is the 20-bit window at bit 10 - 0.023%
[[[ Keyset 'TwoBytes' Tests ]]]
Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions - Expected 49.57, actual 65809.00 (1327.56x) !!!!!
Testing distribution - Worst bias is the 16-bit window at bit 0 - 99.853% !!!!!
Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions - Expected 3484.56, actual 2243986.00 (643.98x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.480% !!!!!
Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions - Expected 40347.77, actual 11699874.00 (289.98x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 98.552% !!!!!
Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions - Expected 227963.15, actual 32531108.00 (142.70x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 96.655% !!!!!
Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions - Expected 871784.70, actual 68995323.00 (79.14x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 93.372% !!!!!
*********FAIL*********
[[[ Keyset 'Sparse' Tests ]]]
Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions - Expected 153.70, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.218% !!!!!
Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions - Expected 2461.72, actual 1858808.00 (755.09x) !!!!!
Testing distribution - Worst bias is the 19-bit window at bit 0 - 98.269% !!!!!
Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions - Expected 431.55, actual 699535.00 (1620.98x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 0 - 91.465% !!!!!
Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions - Expected 2069.66, actual 1372982.00 (663.39x) !!!!!
Testing distribution - Worst bias is the 19-bit window at bit 0 - 56.896% !!!!!
Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions - Expected 8026.87, actual 2298287.00 (286.32x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.251% !!!!!
Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions - Expected 1401.34, actual 828193.00 (591.00x) !!!!!
Testing distribution - Worst bias is the 19-bit window at bit 0 - 97.321% !!!!!
Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions - Expected 910.36, actual 531287.00 (583.60x) !!!!!
Testing distribution - Worst bias is the 19-bit window at bit 0 - 56.849% !!!!!
Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions - Expected 512.50, actual 311675.00 (608.15x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 0 - 7.575% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Lowbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 42799.01, actual 2398448.00 (56.04x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 12 - 4.904% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Highbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 42799.01, actual 2553480.00 (59.66x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 1 - 42.427% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x8000000' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 512.00, actual 1048710.00 (2048.27x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 12 - 38.492% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x0000001' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 512.00, actual 1049662.00 (2050.13x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 19 - 20.221% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Hi-Lo' Tests ]]]
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions - Expected 17339.30, actual 7563983.00 (436.23x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 5 - 57.616% !!!!!
*********FAIL*********
[[[ Keyset 'Window' Tests ]]]
Keyset 'Windowed' - 64-bit key, 20-bit window - 64 tests, 1048576 keys per test
Window at 0 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 1 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 2 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 3 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 4 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 5 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 6 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 7 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 8 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 9 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 10 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 11 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 12 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 13 - Testing collisions - Expected 128.00, actual 524288.00 (4096.00x) !!!!!
Window at 14 - Testing collisions - Expected 128.00, actual 786432.00 (6144.01x) !!!!!
Window at 15 - Testing collisions - Expected 128.00, actual 917504.00 (7168.01x) !!!!!
Window at 16 - Testing collisions - Expected 128.00, actual 983040.00 (7680.01x) !!!!!
Window at 17 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 18 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 19 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 20 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 21 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 22 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 23 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 24 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 25 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 26 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 27 - Testing collisions - Expected 128.00, actual 1015808.00 (7936.01x) !!!!!
Window at 28 - Testing collisions - Expected 128.00, actual 983040.00 (7680.01x) !!!!!
Window at 29 - Testing collisions - Expected 128.00, actual 917504.00 (7168.01x) !!!!!
Window at 30 - Testing collisions - Expected 128.00, actual 786432.00 (6144.01x) !!!!!
Window at 31 - Testing collisions - Expected 128.00, actual 524288.00 (4096.00x) !!!!!
Window at 32 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 33 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 34 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 35 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 36 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 37 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 38 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 39 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 40 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 41 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 42 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 43 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 44 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 45 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 46 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 47 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 48 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 49 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 50 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 51 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 52 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 53 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 54 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 55 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 56 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 57 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 58 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 59 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 60 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 61 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 62 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 63 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
Window at 64 - Testing collisions - Expected 128.00, actual 0.00 ( 0.00x)
*********FAIL*********
[[[ Keyset 'Text' Tests ]]]
Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions - Expected 25418.13, actual 11824144.00 (465.19x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 69.745% !!!!!
Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions - Expected 25418.13, actual 14297136.00 (562.48x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.315% !!!!!
Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions - Expected 25418.13, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 3 - 26.906% !!!!!
*********FAIL*********
[[[ Keyset 'Zeroes' Tests ]]]
Keyset 'Zeroes' - 65536 keys
Testing collisions - Expected 0.50, actual 65535.00 (131072.00x) !!!!!
Testing distribution - Worst bias is the 13-bit window at bit 0 - 99.988% !!!!!
*********FAIL*********
[[[ Keyset 'Seed' Tests ]]]
Keyset 'Seed' - 1000000 keys
Testing collisions - Expected 116.42, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 16-bit window at bit 29 - 0.075%
Input vcode 0xc6b2299b, Output vcode 0x7959e273, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 583.187221 seconds
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--- Testing proposed64 (proposed64)
[[[ Sanity Tests ]]]
Verification value 0x0B5638E5 : Failed! (Expected 0xb8f7702b)
Running sanity check 1..........PASS
Running sanity check 2..........PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
Alignment 0 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 1 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 2 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 3 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 4 - 0.230 bytes/cycle - 659.13 MiB/sec @ 3 ghz
Alignment 5 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 6 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Alignment 7 - 0.242 bytes/cycle - 691.21 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 29.95 cycles/hash
Small key speed test - 2-byte keys - 27.90 cycles/hash
Small key speed test - 3-byte keys - 29.66 cycles/hash
Small key speed test - 4-byte keys - 27.90 cycles/hash
Small key speed test - 5-byte keys - 29.92 cycles/hash
Small key speed test - 6-byte keys - 29.54 cycles/hash
Small key speed test - 7-byte keys - 30.40 cycles/hash
Small key speed test - 8-byte keys - 30.22 cycles/hash
Small key speed test - 9-byte keys - 28.03 cycles/hash
Small key speed test - 10-byte keys - 28.67 cycles/hash
Small key speed test - 11-byte keys - 30.47 cycles/hash
Small key speed test - 12-byte keys - 26.70 cycles/hash
Small key speed test - 13-byte keys - 30.81 cycles/hash
Small key speed test - 14-byte keys - 33.27 cycles/hash
Small key speed test - 15-byte keys - 34.07 cycles/hash
Small key speed test - 16-byte keys - 32.01 cycles/hash
Small key speed test - 17-byte keys - 34.60 cycles/hash
Small key speed test - 18-byte keys - 36.43 cycles/hash
Small key speed test - 19-byte keys - 37.59 cycles/hash
Small key speed test - 20-byte keys - 37.46 cycles/hash
Small key speed test - 21-byte keys - 41.26 cycles/hash
Small key speed test - 22-byte keys - 47.49 cycles/hash
Small key speed test - 23-byte keys - 49.85 cycles/hash
Small key speed test - 24-byte keys - 49.95 cycles/hash
Small key speed test - 25-byte keys - 53.95 cycles/hash
Small key speed test - 26-byte keys - 58.88 cycles/hash
Small key speed test - 27-byte keys - 60.26 cycles/hash
Small key speed test - 28-byte keys - 60.73 cycles/hash
Small key speed test - 29-byte keys - 65.81 cycles/hash
Small key speed test - 30-byte keys - 68.34 cycles/hash
Small key speed test - 31-byte keys - 150.17 cycles/hash
[[[ Differential Tests ]]]
Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes.
1000 reps, 8303632000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored
[[[ Avalanche Tests ]]]
Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 88-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 104-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 120-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 136-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 144-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 152-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
*********FAIL*********
[[[ Keyset 'Cyclic' Tests ]]]
Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 31 - 0.022%
Keyset 'Cyclic' - 8 cycles of 9 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 18 - 0.027%
Keyset 'Cyclic' - 8 cycles of 10 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 55 - 0.021%
Keyset 'Cyclic' - 8 cycles of 11 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 2 - 0.032%
Keyset 'Cyclic' - 8 cycles of 12 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 26 - 0.020%
[[[ Keyset 'TwoBytes' Tests ]]]
Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions - Expected 0.00, actual 261375.00 (22646103971038.65x) !!!!!
Testing distribution - Worst bias is the 16-bit window at bit 55 - 17.794% !!!!!
Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions - Expected 0.00, actual 3648285.00 (4496774986619.34x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 50 - 41.349% !!!!!
Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions - Expected 0.00, actual 14322075.00 (1524566310736.38x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 50 - 23.749% !!!!!
Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions - Expected 0.00, actual 36444345.00 (686634081469.61x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 50 - 14.966% !!!!!
Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions - Expected 0.00, actual 74176695.00 (365441696655.85x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 50 - 10.212% !!!!!
*********FAIL*********
[[[ Keyset 'Sparse' Tests ]]]
Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 62 - 4.956% !!!!!
Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 56 - 10.384% !!!!!
Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 63 - 0.857%
Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 56 - 0.720%
Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 59 - 0.374%
Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 2 - 0.086%
Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 14 - 0.077%
Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 10 - 0.091%
[[[ Keyset 'Combination Lowbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 2396744.00 (240518095103.99x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 7 - 1.561% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Highbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 2396744.00 (240518095103.99x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 51 - 1.610% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x8000000' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 1048574.00 (8796097216510.00x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 34 - 20.232% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x0000001' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 1048574.00 (8796097216510.00x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 9 - 20.119% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Hi-Lo' Tests ]]]
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions - Expected 0.00, actual 813615.00 (201533487953.56x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 62 - 1.264% !!!!!
*********FAIL*********
[[[ Keyset 'Window' Tests ]]]
Keyset 'Windowed' - 128-bit key, 20-bit window - 128 tests, 1048576 keys per test
Window at 0 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 1 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 2 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 3 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 4 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 5 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 6 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 7 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 8 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 9 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 10 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 11 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 12 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 13 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 14 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 15 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 16 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 17 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 18 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 19 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 20 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 21 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 22 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 23 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 24 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 25 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 26 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 27 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 28 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 29 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 30 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 31 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 32 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 33 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 34 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 35 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 36 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 37 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 38 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 39 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 40 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 41 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 42 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 43 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 44 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 45 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 46 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 47 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 48 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 49 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 50 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 51 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 52 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 53 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 54 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 55 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 56 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 57 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 58 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 59 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 60 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 61 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 62 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 63 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 64 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 65 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 66 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 67 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 68 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 69 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 70 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 71 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 72 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 73 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 74 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 75 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 76 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 77 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 78 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 79 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 80 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 81 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 82 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 83 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 84 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 85 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 86 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 87 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 88 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 89 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 90 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 91 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 92 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 93 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 94 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 95 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 96 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 97 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 98 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 99 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 100 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 101 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 102 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 103 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 104 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 105 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 106 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 107 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 108 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 109 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 110 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 111 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 112 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 113 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 114 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 115 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 116 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 117 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 118 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 119 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 120 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 121 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 122 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 123 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 124 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 125 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 126 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 127 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 128 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
[[[ Keyset 'Text' Tests ]]]
Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 63 - 4.513% !!!!!
Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 59 - 48.437% !!!!!
Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 4 - 0.194%
[[[ Keyset 'Zeroes' Tests ]]]
Keyset 'Zeroes' - 65536 keys
Testing collisions - Expected 0.00, actual 65535.00 (562949953421312.00x) !!!!!
Testing distribution - Worst bias is the 13-bit window at bit 0 - 99.988% !!!!!
*********FAIL*********
[[[ Keyset 'Seed' Tests ]]]
Keyset 'Seed' - 1000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 22 - 0.149%
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 711.085168 seconds
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--- Testing proposed64-4 (proposed64-4)
[[[ Sanity Tests ]]]
Verification value 0x8F12389F : Failed! (Expected 0xb8f7702b)
Running sanity check 1..........PASS
Running sanity check 2..........PASS
[[[ Speed Tests ]]]
Bulk speed test - 262144-byte keys
Alignment 0 - 0.966 bytes/cycle - 2764.38 MiB/sec @ 3 ghz
Alignment 1 - 0.966 bytes/cycle - 2764.37 MiB/sec @ 3 ghz
Alignment 2 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Alignment 3 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Alignment 4 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Alignment 5 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Alignment 6 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Alignment 7 - 0.966 bytes/cycle - 2764.36 MiB/sec @ 3 ghz
Small key speed test - 1-byte keys - 30.03 cycles/hash
Small key speed test - 2-byte keys - 29.85 cycles/hash
Small key speed test - 3-byte keys - 29.49 cycles/hash
Small key speed test - 4-byte keys - 28.14 cycles/hash
Small key speed test - 5-byte keys - 31.17 cycles/hash
Small key speed test - 6-byte keys - 29.42 cycles/hash
Small key speed test - 7-byte keys - 30.63 cycles/hash
Small key speed test - 8-byte keys - 30.02 cycles/hash
Small key speed test - 9-byte keys - 30.80 cycles/hash
Small key speed test - 10-byte keys - 30.08 cycles/hash
Small key speed test - 11-byte keys - 31.62 cycles/hash
Small key speed test - 12-byte keys - 30.89 cycles/hash
Small key speed test - 13-byte keys - 31.06 cycles/hash
Small key speed test - 14-byte keys - 31.14 cycles/hash
Small key speed test - 15-byte keys - 31.57 cycles/hash
Small key speed test - 16-byte keys - 30.32 cycles/hash
Small key speed test - 17-byte keys - 32.22 cycles/hash
Small key speed test - 18-byte keys - 33.52 cycles/hash
Small key speed test - 19-byte keys - 32.61 cycles/hash
Small key speed test - 20-byte keys - 30.22 cycles/hash
Small key speed test - 21-byte keys - 31.58 cycles/hash
Small key speed test - 22-byte keys - 31.12 cycles/hash
Small key speed test - 23-byte keys - 31.68 cycles/hash
Small key speed test - 24-byte keys - 32.37 cycles/hash
Small key speed test - 25-byte keys - 34.86 cycles/hash
Small key speed test - 26-byte keys - 31.11 cycles/hash
Small key speed test - 27-byte keys - 31.83 cycles/hash
Small key speed test - 28-byte keys - 31.60 cycles/hash
Small key speed test - 29-byte keys - 31.44 cycles/hash
Small key speed test - 30-byte keys - 31.78 cycles/hash
Small key speed test - 31-byte keys - 32.81 cycles/hash
[[[ Differential Tests ]]]
Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes.
1000 reps, 8303632000 total tests, expecting 0.00 random collisions..........
0 total collisions, of which 0 single collisions were ignored
[[[ Avalanche Tests ]]]
Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 88-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 104-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 120-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 136-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 144-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
Testing 152-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!!
*********FAIL*********
[[[ Keyset 'Cyclic' Tests ]]]
Keyset 'Cyclic' - 8 cycles of 8 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 7 - 0.029%
Keyset 'Cyclic' - 8 cycles of 9 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 28 - 0.023%
Keyset 'Cyclic' - 8 cycles of 10 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 56 - 0.033%
Keyset 'Cyclic' - 8 cycles of 11 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 47 - 0.022%
Keyset 'Cyclic' - 8 cycles of 12 bytes - 10000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 60 - 0.025%
[[[ Keyset 'TwoBytes' Tests ]]]
Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys
Testing collisions - Expected 0.00, actual 65790.00 (5700190072710.22x) !!!!!
Testing distribution - Worst bias is the 16-bit window at bit 0 - 99.853% !!!!!
Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys
Testing collisions - Expected 0.00, actual 1565445.00 (1929524124055.09x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.478% !!!!!
Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys
Testing collisions - Expected 0.00, actual 10158435.00 (1081352232187.40x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 98.534% !!!!!
Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys
Testing collisions - Expected 0.00, actual 30199905.00 (568984955831.82x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 96.591% !!!!!
Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys
Testing collisions - Expected 0.00, actual 65851455.00 (324426256015.54x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 0 - 93.209% !!!!!
*********FAIL*********
[[[ Keyset 'Sparse' Tests ]]]
Keyset 'Sparse' - 32-bit keys with up to 6 bits set - 1149017 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.218% !!!!!
Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 0 - 98.267% !!!!!
Keyset 'Sparse' - 48-bit keys with up to 5 bits set - 1925357 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 0 - 90.904% !!!!!
Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 0 - 51.748% !!!!!
Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.226% !!!!!
Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 0 - 97.361% !!!!!
Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 19-bit window at bit 0 - 50.091% !!!!!
Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 0 - 2.889% !!!!!
[[[ Keyset 'Combination Lowbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 2396744.00 (240518095103.99x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 54 - 3.201% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Highbits' Tests ]]]
Keyset 'Combination' - up to 8 blocks from a set of 8 - 19173960 keys
Testing collisions - Expected 0.00, actual 2396744.00 (240518095103.99x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 5 - 33.692% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x8000000' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 1048574.00 (8796097216510.00x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 9 - 38.610% !!!!!
*********FAIL*********
[[[ Keyset 'Combination 0x0000001' Tests ]]]
Keyset 'Combination' - up to 20 blocks from a set of 2 - 2097150 keys
Testing collisions - Expected 0.00, actual 1048574.00 (8796097216510.00x) !!!!!
Testing distribution - Worst bias is the 18-bit window at bit 61 - 20.366% !!!!!
*********FAIL*********
[[[ Keyset 'Combination Hi-Lo' Tests ]]]
Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys
Testing collisions - Expected 0.00, actual 813615.00 (201533487953.56x) !!!!!
Testing distribution - Worst bias is the 20-bit window at bit 6 - 35.439% !!!!!
*********FAIL*********
[[[ Keyset 'Window' Tests ]]]
Keyset 'Windowed' - 128-bit key, 20-bit window - 128 tests, 1048576 keys per test
Window at 0 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 1 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 2 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 3 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 4 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 5 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 6 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 7 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 8 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 9 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 10 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 11 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 12 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 13 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 14 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 15 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 16 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 17 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 18 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 19 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 20 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 21 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 22 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 23 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 24 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 25 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 26 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 27 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 28 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 29 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 30 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 31 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 32 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 33 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 34 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 35 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 36 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 37 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 38 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 39 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 40 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 41 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 42 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 43 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 44 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 45 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 46 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 47 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 48 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 49 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 50 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 51 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 52 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 53 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 54 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 55 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 56 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 57 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 58 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 59 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 60 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 61 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 62 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 63 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 64 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 65 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 66 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 67 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 68 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 69 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 70 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 71 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 72 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 73 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 74 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 75 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 76 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 77 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 78 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 79 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 80 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 81 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 82 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 83 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 84 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 85 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 86 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 87 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 88 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 89 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 90 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 91 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 92 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 93 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 94 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 95 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 96 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 97 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 98 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 99 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 100 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 101 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 102 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 103 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 104 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 105 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 106 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 107 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 108 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 109 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 110 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 111 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 112 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 113 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 114 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 115 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 116 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 117 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 118 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 119 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 120 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 121 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 122 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 123 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 124 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 125 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 126 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 127 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Window at 128 - Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
[[[ Keyset 'Text' Tests ]]]
Keyset 'Text' - keys of form "Foo[XXXX]Bar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 18-bit window at bit 0 - 66.822% !!!!!
Keyset 'Text' - keys of form "FooBar[XXXX]" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 0 - 99.315% !!!!!
Keyset 'Text' - keys of form "[XXXX]FooBar" - 14776336 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 20-bit window at bit 0 - 21.041% !!!!!
[[[ Keyset 'Zeroes' Tests ]]]
Keyset 'Zeroes' - 65536 keys
Testing collisions - Expected 0.00, actual 65535.00 (562949953421312.00x) !!!!!
Testing distribution - Worst bias is the 13-bit window at bit 0 - 99.988% !!!!!
*********FAIL*********
[[[ Keyset 'Seed' Tests ]]]
Keyset 'Seed' - 1000000 keys
Testing collisions - Expected 0.00, actual 0.00 ( 0.00x)
Testing distribution - Worst bias is the 17-bit window at bit 26 - 0.089%
Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001
Verification value is 0x00000001 - Testing took 671.452475 seconds
-------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment