SuperFastHash test results
 
Testing SuperFastHash

Testing alignment handling on small keys -
0x6a70c927 0x6a70c927 0x6a70c927 0x6a70c927
0xad729ac4 0xad729ac4 0xad729ac4 0xad729ac4
0x408d9fd1 0x408d9fd1 0x408d9fd1 0x408d9fd1
0x3194ec2e 0x3194ec2e 0x3194ec2e 0x3194ec2e
- pass
Testing alignment handling -
0x5ab97443 0x5ab97443 0x5ab97443 0x5ab97443
0x29c08d41 0x29c08d41 0x29c08d41 0x29c08d41
0xce65b8f5 0xce65b8f5 0xce65b8f5 0xce65b8f5
0xd40567c4 0xd40567c4 0xd40567c4 0xd40567c4
- pass
Testing null-key handling - FAIL

Bulk speed test - 9999 trials of 1 reps of 262144-byte blocks
Alignment 0 - max 985.239592 mb/sec
Alignment 1 - max 898.867736 mb/sec
Alignment 2 - max 985.312399 mb/sec
Alignment 3 - max 882.168293 mb/sec

Testing 1024 one-bit differentials on 1024-bit keys, 1000 reps - 0 differentials found

Testing 32640 two-bit differentials on 256-bit keys, 1000 reps - 30 differentials found
Differential found - ...8...............8............................................ - 5.20%
Differential found - ..1...............1............................................. - 4.20%
Differential found - ..2...............2............................................. - 4.80%
Differential found - ..4...............4............................................. - 4.30%
Differential found - ..8...............8............................................. - 5.40%
Differential found - ...........8...............8.................................... - 2.40%
Differential found - ..........1...............1..................................... - 2.80%
Differential found - ..........2...............2..................................... - 1.90%
Differential found - ..........4...............4..................................... - 1.80%
Differential found - ..........8...............8..................................... - 3.80%
Differential found - ...................8...............8............................ - 2.30%
Differential found - ..................1...............1............................. - 1.50%
Differential found - ..................2...............2............................. - 1.80%
Differential found - ..................4...............4............................. - 1.10%
Differential found - ..................8...............8............................. - 2.30%
Differential found - ...........................8...............8.................... - 2.20%
Differential found - ..........................1...............1..................... - 3.10%
Differential found - ..........................2...............2..................... - 1.90%
Differential found - ..........................4...............4..................... - 2.40%
Differential found - ..........................8...............8..................... - 3.10%
Differential found - ...................................8...............8............ - 1.20%
Differential found - ..................................1...............1............. - 2.40%
Differential found - ..................................2...............2............. - 2.60%
Differential found - ..................................4...............4............. - 1.90%
Differential found - ..................................8...............8............. - 4.00%
Differential found - ...........................................8...............8.... - 1.60%
Differential found - ..........................................1...............1..... - 2.50%
Differential found - ..........................................2...............2..... - 2.30%
Differential found - ..........................................4...............4..... - 1.40%
Differential found - ..........................................8...............8..... - 2.70%

Testing 341376 three-bit differentials on 128-bit keys, 1000 reps - 223 differentials found
Differential found - .1..2....1...................... - 50.30%
Differential found - .1......2........1.............. - 8.90%
Differential found - .2..4....2...................... - 50.20%
Differential found - .2......4........2.............. - 6.90%
Differential found - .4..8....4...................... - 49.80%
Differential found - .4......8........4.............. - 8.40%
Differential found - .8.....1.8...................... - 48.30%
Differential found - .8.........1.....8.............. - 9.10%
Differential found - 1......21....................... - 49.50%
Differential found - 1..........2....1............... - 7.80%
Differential found - 2......42....................... - 50.00%
Differential found - 2..........4....2............... - 8.90%
Differential found - 4......84....................... - 47.70%
Differential found - 4..........8....4............... - 10.90%
Differential found - 8.....1.8....................... - 49.20%
Differential found - 8.........1.....8............... - 9.60%
Differential found - ...1..2....1.................... - 50.60%
Differential found - ...1......2........1............ - 13.80%
Differential found - ...2..4....2.................... - 51.20%
Differential found - ...2......4........2............ - 12.40%
Differential found - ...4..8....4.................... - 49.90%
Differential found - ...4......8........4............ - 12.90%
Differential found - ...4...............4......8..... - 1.10%
Differential found - ...8.2.............8............ - 1.90%
Differential found - ...8.....2.........8............ - 1.80%
Differential found - ...8......1........8............ - 2.40%
Differential found - ...8.........1...1.............. - 8.50%
Differential found - ...8.........2.....8............ - 1.30%
Differential found - ...8........4......8............ - 2.80%
Differential found - ...8...........8.......8........ - 2.60%
Differential found - ...8.............2.8............ - 2.10%
Differential found - ...8..............18............ - 1.60%
Differential found - ..1..4............1............. - 2.50%
Differential found - ..1......4........1............. - 2.10%
Differential found - ..1.......2.......1............. - 2.10%
Differential found - ..1..........2...2.............. - 10.20%
Differential found - ..1..........4....1............. - 2.80%
Differential found - ..1.........8.....1............. - 2.70%
Differential found - ..1...........1.......1......... - 3.80%
Differential found - ..1..............41............. - 2.50%
Differential found - ..1...............3............. - 1.90%
Differential found - ..2..8............2............. - 1.90%
Differential found - ..2......8........2............. - 3.00%
Differential found - ..2.......4.......2............. - 1.70%
Differential found - ..2..........4...4.............. - 8.60%
Differential found - ..2..........8....2............. - 2.20%
Differential found - ..2............1..2............. - 3.00%
Differential found - ..2...........2.......2......... - 3.60%
Differential found - ..2..............82............. - 2.60%
Differential found - ..2...............6............. - 1.70%
Differential found - ..4.1.............4............. - 2.90%
Differential found - ..4.....1.........4............. - 2.20%
Differential found - ..4.......8.......4............. - 2.60%
Differential found - ..4..........8...8.............. - 7.10%
Differential found - ..4.........1.....4............. - 2.10%
Differential found - ..4............2..4............. - 2.20%
Differential found - ..4...........4.......4......... - 3.40%
Differential found - ..4.............1.4............. - 2.10%
Differential found - ..4...............c............. - 2.50%
Differential found - ..8.2.............8............. - 2.50%
Differential found - ..8...8.......................8. - 1.10%
Differential found - ..8.....2.........8............. - 2.00%
Differential found - ..8.........1...1............... - 7.80%
Differential found - ..8.........2.....8............. - 3.80%
Differential found - ..8.........4.....8............. - 1.40%
Differential found - ..8............4..8............. - 3.50%
Differential found - ..8...........8.......8......... - 5.70%
Differential found - ..8.............2.8............. - 2.50%
Differential found - ..8...............8.2........... - 2.20%
Differential found - .....1...1.8.................... - 26.00%
Differential found - .....1...1.................8.... - 1.20%
Differential found - .....1..........2....1.......... - 1.70%
Differential found - .....2...21..................... - 23.40%
Differential found - .....2..........4....2.......... - 1.40%
Differential found - .....4...42..................... - 28.20%
Differential found - .....4..........8....4.......... - 2.60%
Differential found - .....8...84..................... - 25.10%
Differential found - .....8...8................4..... - 1.90%
Differential found - .....8.............1.8.......... - 2.50%
Differential found - ....1...1.8..................... - 23.10%
Differential found - ....1...1.................8..... - 2.20%
Differential found - ....1..............21........... - 3.20%
Differential found - ....2...2...2................... - 27.30%
Differential found - ....2..........4....2........... - 8.80%
Differential found - ....4...4...4................... - 25.90%
Differential found - ....4..........8....4........... - 8.20%
Differential found - ....8...8...8................... - 24.40%
Differential found - ....8.........1.....8........... - 8.60%
Differential found - .......1...1...1................ - 25.50%
Differential found - .......1......2........1........ - 9.60%
Differential found - .......2...2...2................ - 25.50%
Differential found - .......2......4........2........ - 8.20%
Differential found - .......4...4...4................ - 24.10%
Differential found - .......4......8........4........ - 9.70%
Differential found - .......8...8...8................ - 39.00%
Differential found - .......8.......8...........8.... - 2.20%
Differential found - .......8...........8...........8 - 1.00%
Differential found - ......1...1...1................. - 45.80%
Differential found - ......1.......1...........1..... - 1.60%
Differential found - ......1...........1...........1. - 1.40%
Differential found - ......2...2...2................. - 45.10%
Differential found - ......2.......2...........2..... - 2.20%
Differential found - ......2...........2...........2. - 1.50%
Differential found - ......4...4...4................. - 50.90%
Differential found - ......4.......4...........4..... - 2.70%
Differential found - ......4...........4...........4. - 1.80%
Differential found - ......8...8...8................. - 49.50%
Differential found - ......8.......8...........8..... - 3.70%
Differential found - ......8...........8...........8. - 3.10%
Differential found - .........1..2....1.............. - 25.10%
Differential found - .........1......2........1...... - 6.30%
Differential found - .........2..4....2.............. - 24.90%
Differential found - .........2......4........2...... - 4.30%
Differential found - .........4..8....4.............. - 22.90%
Differential found - .........4......8........4...... - 5.90%
Differential found - .........8.....1.8.............. - 24.90%
Differential found - .........8.........1.....8...... - 4.90%
Differential found - ........1......21............... - 23.80%
Differential found - ........1..........2....1....... - 5.60%
Differential found - ........2......42............... - 24.50%
Differential found - ........2..........4....2....... - 4.70%
Differential found - ........4......84............... - 23.80%
Differential found - ........4..........8....4....... - 6.10%
Differential found - ........8.....1.8............... - 25.60%
Differential found - ........8.........1.....8....... - 7.20%
Differential found - ...........1..2....1............ - 24.90%
Differential found - ...........1......2........1.... - 7.10%
Differential found - ...........2..4....2............ - 26.20%
Differential found - ...........2......4........2.... - 8.20%
Differential found - ...........4..8....4............ - 26.00%
Differential found - ...........4......8........4.... - 5.60%
Differential found - ...........8.2.............8.... - 1.10%
Differential found - ...........8.....2.........8.... - 1.50%
Differential found - ...........8.........1...1...... - 4.50%
Differential found - ...........8.........2.....8.... - 1.60%
Differential found - ...........8........4......8.... - 1.70%
Differential found - ...........8...........8.......8 - 1.60%
Differential found - ...........8..............18.... - 1.50%
Differential found - ..........3...............1..... - 1.30%
Differential found - ..........1.......2.......1..... - 1.50%
Differential found - ..........1..........2...2...... - 4.30%
Differential found - ..........1..........4....1..... - 1.10%
Differential found - ..........1.........8.....1..... - 1.40%
Differential found - ..........1...........1.......1. - 1.90%
Differential found - ..........1..............41..... - 1.10%
Differential found - ..........1...............3..... - 1.80%
Differential found - ..........2..8............2..... - 1.20%
Differential found - ..........2......8........2..... - 1.80%
Differential found - ..........2..........4...4...... - 4.40%
Differential found - ..........2............1..2..... - 1.60%
Differential found - ..........2...........2.......2. - 1.70%
Differential found - ..........2..............82..... - 1.30%
Differential found - ..........2...............6..... - 1.00%
Differential found - ..........c...............4..... - 1.60%
Differential found - ..........4.1.............4..... - 1.10%
Differential found - ..........4.....1.........4..... - 1.50%
Differential found - ..........4..........8...8...... - 3.90%
Differential found - ..........4.........1.....4..... - 1.40%
Differential found - ..........4............2..4..... - 1.40%
Differential found - ..........4...........4.......4. - 1.90%
Differential found - ..........4.............1.4..... - 1.30%
Differential found - ..........8.2.............8..... - 1.80%
Differential found - ..........8.....2.........8..... - 2.00%
Differential found - ..........8.........1...1....... - 5.00%
Differential found - ..........8.........2.....8..... - 1.80%
Differential found - ..........8............4..8..... - 3.20%
Differential found - ..........8...........8.......8. - 4.10%
Differential found - ..........8.............2.8..... - 2.00%
Differential found - ..........8...............8.2... - 2.60%
Differential found - .............1...1.8............ - 24.40%
Differential found - .............1..........2....1.. - 2.10%
Differential found - .............2...21............. - 27.10%
Differential found - .............2..........4....2.. - 2.30%
Differential found - .............4...42............. - 25.70%
Differential found - .............4..........8....4.. - 1.00%
Differential found - .............8...84............. - 24.50%
Differential found - .............8.............1.8.. - 1.70%
Differential found - ............1...1.8............. - 23.40%
Differential found - ............1..............21... - 2.90%
Differential found - ............2...2...2........... - 23.00%
Differential found - ............2..........4....2... - 7.40%
Differential found - ............4...4...4........... - 23.30%
Differential found - ............4..........8....4... - 8.50%
Differential found - ............8...8...8........... - 27.40%
Differential found - ............8.........1.....8... - 9.50%
Differential found - ...............1...1...1........ - 23.40%
Differential found - ...............1......2........1 - 8.10%
Differential found - ...............2...2...2........ - 26.30%
Differential found - ...............2......4........2 - 7.80%
Differential found - ...............4...4...4........ - 23.70%
Differential found - ...............4......8........4 - 8.70%
Differential found - ...............8...8...8........ - 37.70%
Differential found - ..............1...1...1......... - 45.60%
Differential found - ..............2...2...2......... - 44.60%
Differential found - ..............4...4...4......... - 43.90%
Differential found - ..............8...8...8......... - 49.60%
Differential found - .................1..2....1...... - 21.70%
Differential found - .................2..4....2...... - 26.20%
Differential found - .................4..8....4...... - 23.40%
Differential found - .................8.....1.8...... - 27.50%
Differential found - ................1......21....... - 25.60%
Differential found - ................2......42....... - 24.20%
Differential found - ................4......84....... - 23.50%
Differential found - ................8.....1.8....... - 25.90%
Differential found - ...................1..2....1.... - 23.60%
Differential found - ...................2..4....2.... - 23.70%
Differential found - ...................4..8....4.... - 23.10%
Differential found - .....................1...1.8.... - 22.40%
Differential found - .....................2...21..... - 26.80%
Differential found - .....................4...42..... - 25.30%
Differential found - .....................8...84..... - 26.20%
Differential found - ....................1...1.8..... - 26.20%
Differential found - ....................2...2...2... - 24.80%
Differential found - ....................4...4...4... - 26.40%
Differential found - ....................8...8...8... - 25.80%
Differential found - .......................1...1...1 - 24.30%
Differential found - .......................2...2...2 - 24.80%
Differential found - .......................4...4...4 - 24.10%
Differential found - .......................8...8...8 - 34.30%
Differential found - ......................1...1...1. - 43.00%
Differential found - ......................2...2...2. - 46.10%
Differential found - ......................4...4...4. - 49.50%
Differential found - ......................8...8...8. - 49.70%

Testing 635376 four-bit differentials on 64-bit keys, 500 reps - 93 differentials found
Differential found - .1.8....2....1.. - 8.40%
Differential found - .1..21.....8.... - 26.60%
Differential found - .1..2....3...... - 24.60%
Differential found - .1......21..2... - 16.40%
Differential found - .21.....4....2.. - 5.40%
Differential found - .2..42....1..... - 26.80%
Differential found - .2..4....6...... - 26.80%
Differential found - .2......42..4... - 11.60%
Differential found - .42.....8....4.. - 6.00%
Differential found - .4..84....2..... - 23.40%
Differential found - .4..8....c...... - 22.20%
Differential found - .4......84..8... - 14.80%
Differential found - .84........1.8.. - 6.80%
Differential found - .8...8.1..4..... - 23.80%
Differential found - .8.....118...... - 26.60%
Differential found - .8.......8.1...1 - 12.40%
Differential found - 1.8........21... - 6.60%
Differential found - 1...1..2..8..... - 25.60%
Differential found - 1......23....... - 26.80%
Differential found - 1.......1..2...2 - 13.00%
Differential found - 2...2..4....2... - 25.00%
Differential found - 2......46....... - 23.20%
Differential found - 2.......2..4...4 - 11.20%
Differential found - 4...4..8....4... - 22.20%
Differential found - 4......8c....... - 22.80%
Differential found - 4.......4..8...8 - 18.80%
Differential found - 8...8.1.....8... - 25.00%
Differential found - 8.....1.8..1.... - 24.80%
Differential found - 8.......8.1...1. - 21.60%
Differential found - ...1..21.......1 - 26.40%
Differential found - ...1..2....3.... - 26.20%
Differential found - ...1......21..2. - 23.80%
Differential found - ...2..42.......2 - 26.00%
Differential found - ...2..4....6.... - 22.60%
Differential found - ...2......42..4. - 30.00%
Differential found - ...4..84.......4 - 24.80%
Differential found - ...4..8....c.... - 23.60%
Differential found - ...4......84..8. - 26.00%
Differential found - ...8.....1..21.. - 10.60%
Differential found - ..1......2..42.. - 11.20%
Differential found - ..2......4..84.. - 16.80%
Differential found - ..4......8...8.1 - 14.00%
Differential found - ..8.....1...1..2 - 11.80%
Differential found - .....3...1.8.... - 10.00%
Differential found - .....1.8.1.....8 - 17.60%
Differential found - .....1...3.8.... - 16.20%
Differential found - .....1...118.... - 11.80%
Differential found - .....6...21..... - 11.80%
Differential found - .....21..2....1. - 19.60%
Differential found - .....2...61..... - 13.80%
Differential found - .....2...23..... - 13.80%
Differential found - .....c...42..... - 12.80%
Differential found - .....42..4....2. - 24.20%
Differential found - .....4...c2..... - 11.60%
Differential found - .....4...46..... - 10.00%
Differential found - ....18...84..... - 11.20%
Differential found - .....84..8....4. - 23.20%
Differential found - .....8..184..... - 13.80%
Differential found - .....8...8c..... - 13.80%
Differential found - ....3...1.8..... - 12.00%
Differential found - ....1.8.1.....8. - 23.60%
Differential found - ....1...3.8..... - 12.40%
Differential found - ....1...1.8.2... - 9.80%
Differential found - ....6...2...2... - 10.60%
Differential found - ....2...6...2... - 9.40%
Differential found - ....2...2...6... - 11.60%
Differential found - ....c...4...4... - 12.80%
Differential found - ....4...c...4... - 11.60%
Differential found - ....4...4...c... - 12.00%
Differential found - ....8..18...8... - 10.40%
Differential found - ....8...8..18... - 11.80%
Differential found - ....8...8...8..1 - 10.60%
Differential found - .......3...1...1 - 12.60%
Differential found - .......1...3...1 - 12.00%
Differential found - .......1...1...3 - 13.20%
Differential found - .......6...2...2 - 11.40%
Differential found - .......2...6...2 - 11.40%
Differential found - .......2...2...6 - 12.60%
Differential found - .......c...4...4 - 11.60%
Differential found - .......4...c...4 - 11.60%
Differential found - .......4...4...c - 13.80%
Differential found - ......18...8...8 - 6.20%
Differential found - .......8..18...8 - 19.80%
Differential found - .......8...8..18 - 7.40%
Differential found - ......3...1...1. - 3.00%
Differential found - ......1...3...1. - 24.20%
Differential found - ......1...1...3. - 3.60%
Differential found - ......6...2...2. - 2.00%
Differential found - ......2...6...2. - 22.20%
Differential found - ......2...2...6. - 1.80%
Differential found - ......4...c...4. - 23.40%
Differential found - ......4...4...c. - 1.60%
Differential found - ......8...8.2.8. - 25.60%

Dictionary-based tests -

Loaded 474080 words
Dictionary overhead is 1.514736 msec
All words hashed in min 10.804046 msec

Testing dictionary stats
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.70, work +0.00008%
        4 buckets - chi +0.84, work +0.00007%
        8 buckets - chi +1.00, work +0.00021%
       16 buckets - chi +1.01, work +0.00023%
       32 buckets - chi +0.98, work +0.00006%
       64 buckets - chi +1.01, work +0.00037%
      128 buckets - chi +1.01, work +0.00037%
      256 buckets - chi +1.00, work +0.00040%
      512 buckets - chi +1.00, work +0.00066%
     1024 buckets - chi +1.00, work +0.00121%
     2048 buckets - chi +1.00, work +0.00116%
     4096 buckets - chi +1.00, work +0.00260%
     8192 buckets - chi +1.00, work +0.00235%
    16384 buckets - chi +1.00, work +0.00043%
    32768 buckets - chi +1.00, work +0.00535%
    65536 buckets - chi +1.00, work +0.00831%
   131072 buckets - chi +1.00, work +0.01496%
   262144 buckets - chi +1.00, work +0.02204%



Dumping collisions -

0x0006e5bf -                  monarch,                 mongrel,
0x0093baf4 -                 shouldst,                shotless,
0x00abd540 -                  boxroom,                 boxwork,
0x00cbc19b -                 rounding,                boulting,
0x0223801f -                 unkeeled,                unhefted,
0x037776fc -                 netballs,                nettably,
0x046706d7 -                    ohone,                   ghoom,
0x056726da -                   leegte,                  teedle,
0x07a2569b -                  gutting,                 outwalk,
0x09fe4362 -                   murids,                  musick,
0x0afe3618 -                   villas,                  finnoc,
0x0c010104 -                  emender,               doggedest,
0x0c90bb7b -                    dunks,                   tunic,
0x10e32a86 -                 unsettle,                unrashly,
0x114b18db -                    punga,                   hundi,
0x11fa474b -                queanlike,               queintise,
0x12739097 -                   sampan,                  kamsin,
0x1294b15e -                 barterer,                barrelet,
0x12f2d874 -                   kapoks,                  sarlac,
0x130b4fa0 -                    renew,                   zendo,
0x131da431 -                  amidine,                 aminity,
0x13645028 -                   solodi,                  torney,
0x13e04dc1 -                  bariums,                 barbuda,
0x14921b16 -                    budgy,                   zudda,
0x14f7c6aa -                cosmology,              synoecisms,
0x150451ac -                    dorks,                   toric,
0x153ad43d -                  unpetal,                 unpited,
0x17384d6a -                    larum,                   tarve,
0x18cea95d -                  pariahs,                 harling,
0x18f26416 -                   baling,                  casino,
0x19cf3a8b -                   bagnut,                  raglet,
0x1aa8bb82 -                  hacksaw,                 hazel's,
0x1bccdd22 -                  calypso,                 campody,
0x1d16586e -                  komatik,                 lorette,
0x1e7e22fb -                 penman's,                hennin's,
0x1f53c423 -                  rounder,                 boulter,
0x20a435bf -                   knatte,                  snawle,
0x20be410d -                  sordini,                 sorbile,
0x21b79dbe -                  sounder,                 coulter,
0x2288fbb1 -                 sounders,                coulters,
0x253592bd -                    carns,                   karok,
0x25cdb7bc -                    fordo,                   noreg,
0x25fa1463 -                   mongol,          sulfanilamides,
0x262c4f1d -                   redipt,                  refind,
0x27a11ad2 -                  tarweed,                 tarseal,
0x28f0bb02 -                cageyness,               sagginess,
0x2a315e1c -                  hurlpit,                 purohit,
0x2a7e11b5 -                  warlord,                 warnoth,
0x2d41a0ca -                   pudent,                  hueful,
0x2f61e8c1 -                 unflying,            unravellable,
0x315cd872 -                    datum,                   latte,
0x31df9cfc -                    lorum,                   torve,
0x320a3b0d -                    anoli,                   inoma,
0x3231eff9 -                   bombed,                  corbel,
0x327238fe -                 knolling,                snooding,
0x32fe9012 -                 outtakes,                outgazed,
0x33b2e7d7 -                    knots,                   snowk,
0x34183f97 -              buphthalmia,             epiphragmal,
0x348fa272 -                  outtalk,                 outwake,
0x34ad036c -                   knolls,                  snoods,
0x358b498a -                 photopia,                phoronic,
0x3858892e -                    bunks,                   runic,
0x3924f0f6 -                  casease,                 ballats,
0x3970d881 -                pitchpoll,           chloromycetin,
0x39a3eeed -                   durous,                  turmes,
0x3acb4eba -                  albatas,                 albitic,
0x3bbb8a61 -               transhumes,                 decatyl,
0x3c759145 -                 unfitted,                unaisled,
0x3cddb7b4 -                  empared,                 emperil,
0x3eed64a3 -                  bearing,                 beauism,
0x3f04381e -                    shove,                   khoum,
0x41571196 -                   unhand,                  unnapt,
0x4176d82f -                  cariose,                 balonea,
0x41f9a1ae -                   penman,                  hennin,
0x42601c75 -                  outfame,                 outgang,
0x42bb409d -                    fasti,                   nasua,
0x4627bc10 -                   demoid,                  lemnad,
0x4631131d -                  unshell,                 unslept,
0x474bb3c2 -               smeltery's,        nontenableness's,
0x47bd4cc0 -                  gumbo's,                 puttock,
0x487c2b9a -                    karma,                   carli,
0x4ae74a46 -                  sleight,                 sledger,
0x4cc517aa -                  calaloo,                 kamachi,
0x4d1df1ec -                revisible,               rewirable,
0x4e007963 -                    cocky,                   socii,
0x4eaeb0ef -                   tartly,                  saluki,
0x4ed0275d -                    detax,                   tetch,
0x4fae2d97 -                   salsas,                  kalpis,
0x5126e850 -                    borks,                   roric,
0x517da194 -                    phene,           hierographies,
0x54b17211 -                  ninnies,                 filosus,
0x54fcc695 -                  tickler,                 lichter,
0x554aee0b -                    datsw,                   latro,
0x55d19408 -                   slates,                  clavus,
0x571d2571 -                   dendra,                  mesely,
0x59fd6473 -                  mango's,                 vaudoos,
0x5c76f8b3 -             decillionths,                  nickey,
0x5ddc70d7 -                   lusaka,                  lutany,
0x6078a8c7 -                  grassed,                    ions,
0x612a1c92 -                   manitu,                  maoism,
0x624562b6 -                   tomium,                  tolite,
0x6252e736 -                retrimmed,               surculous,
0x62dbd51a -                   carful,                  sardel,
0x630394ab -                  roundel,                 boultel,
0x649ab2d9 -                  cooeyed,                 soogied,
0x6561e7b3 -                   rubble,                  jubate,
0x65a57407 -                 solidate,              impapyrate,
0x65e620da -                  vesicle,                 feretra,
0x667e1b2f -                  senaite,                 sensify,
0x6900b1ad -                    tappa,                   lapsi,
0x6a12a5c4 -                doughfeet,               toughhead,
0x6b8cea92 -                    knoll,                   snood,
0x6c4df931 -               abandonees,                   snary,
0x6d4ff9a6 -                    agent,               occursive,
0x6f817ff7 -                roundings,               boultings,
0x6fb900e1 -                   gnetum,                  ondule,
0x72220ba7 -                   lomboy,                  tonada,
0x73f72a8b -                   rounds,                  boults,
0x748f4896 -                   locums,                  doctus,
0x777bb8cb -                   corvus,                  sortes,
0x77fbca25 -                  ballots,                 caseose,
0x798b4ee0 -                   cereus,                  serges,
0x7a2165b2 -                   timbal,                  limail,
0x7a772464 -                   rakers,                  zaddik,
0x7d1a407d -                  bagroom,                 bagwork,
0x7ebddd96 -                    dorky,                   torii,
0x802cc64b -                 unbonded,                uncooled,
0x80e88d5d -              unpredicted,             unreceipted,
0x81dc6101 -                  tickled,                 lichted,
0x82d54902 -                 undotted,                unforded,
0x83de81ff -                  stabler,                 stallon,
0x8409272b -                 feasible,                nearable,
0x86149c87 -                  gutsing,                 outrang,
0x86b0d147 -                  palaite,                 palsify,
0x88125319 -                    jeeps,                   reesk,
0x8f6d2f5c -            nonacceptance,           nonascendance,
0x9082d054 -                  comfrey,                 comarbs,
0x91e1b08d -                sounder's,               coulter's,
0x92101c90 -                    chout,                   showd,
0x926dbca5 -                  casinos,                 carbona,
0x93da410c -                  knoll's,                 snood's,
0x9492c1cd -                   jiboya,                  rialty,
0x96cd6c5c -                   renews,                  zendos,
0x9839b833 -                  paisana,                 paiwari,
0x9b933f77 -                  grasped,                    fons,
0x9d1bea0b -                  lascars,                 lastage,
0x9e831cb7 -                 knapping,                snashing,
0x9f6fcaab -                    khuen,                   shuff,
0xa067bbe1 -                 malonate,                nasonite,
0xa0b92bc6 -                  tiredly,                 silicas,
0xa0f67069 -                   remade,                  jemble,
0xa355cebf -                micrander,                  oesogi,
0xa4c4d292 -                   clinic,                  clonks,
0xa6671834 -                  whopper,                 womerah,
0xa797e8a5 -                 warfarer,                wardapet,
0xa7c39ba9 -                  deeming,                 leelang,
0xa7e9be6e -                 rugalach,                 roadite,
0xa7f52342 -                  gomerec,                 oollies,
0xa8397a86 -                 coleuses,                solderer,
0xa86d5e7c -                  delates,                 meselry,
0xaab7ed14 -                  dolente,                 loonery,
0xabb5ea4a -                  sorrily,       chuckleheadedness,
0xad3d3ff2 -                    finks,                   vinic,
0xadbe91b2 -                  greetes,                 organry,
0xaedafb78 -              demarkation,             delassation,
0xb1c9d0c3 -                calvarium,              starboards,
0xb29b52a3 -               prosodemic,              protogenic,
0xb29f1313 -                  bannets,                 bandeng,
0xb339fcfb -            psychobabbler,               vampirish,
0xb3d9f703 -                bementite,               jennerize,
0xb48f66e2 -                  kayward,                  rizzor,
0xb4fff89e -                desirable,               derisible,
0xb5a86210 -                    wongi,                   goney,
0xb6af74ea -                  carfuls,                 sardels,
0xb78df293 -                  clefted,                 sledded,
0xb948e427 -                   surety,                  superi,
0xba35b01b -                   reaves,                  beatus,
0xbae3bc79 -                   prΘcis,                  trices,
0xbb3cf8d7 -                larkspurs,                 domette,
0xbb65367f -                  gulfier,                 gullion,
0xbd1a5f1a -                 lapsible,                tappable,
0xbd7ac275 -                feudalism,               neumatize,
0xbfecdaf5 -                unquelled,               unpuddled,
0xc013c480 -                  chanter,                 shalder,
0xc113d983 -                    howbe,              ideoplasty,
0xc1417328 -                 calculus,                salteaux,
0xc28af3cf -                   tambac,                  lamaic,
0xc423e1bf -                    sonic,                   conks,
0xc631bb00 -                  rounded,                 boulted,
0xc64e87d5 -                  revolve,                 revelly,
0xc6647b2b -                  knapped,                 snashed,
0xc74cec4f -                    disks,                   tisic,
0xc8913959 -                  gallium,                 pasears,
0xc9d8b0da -                   datums,                  lattes,
0xcab113c2 -                  hangman,                 pandean,
0xcb3f50a8 -                 unworked,                untossed,
0xcc48a536 -                  serious,                 relines,
0xcc63f85e -                  sampans,                 kamsins,
0xcd1517c0 -                 lightish,            viscidness's,
0xcd5b28dd -              electrolier,             electrogild,
0xcec7d6b4 -                    earns,                   marok,
0xcedfab8d -                  moresco,                 morosis,
0xcf446fd6 -                 tickling,                lichting,
0xcf455e85 -                   vermes,                  ferous,
0xcffd3117 -          nonacceptance's,         nonascendance's,
0xd185f13a -                  shelf's,                 thronos,
0xd25bb473 -               liquescent,                skeppist,
0xd57428d4 -                 rounders,                boulters,
0xd69c5e86 -              whistlerism,             whistlewing,
0xd7ea9b7e -           pronunciations,               pronuclei,
0xd89d23e4 -                   shoves,                  khoums,
0xd9c766bb -                  betrims,                 jetsams,
0xda58935d -                   jetsam,                  betrim,
0xdb73df6b -                  lactose,                 lacwork,
0xdb9b5c01 -                    coopt,                   soord,
0xddf94d36 -                  hayfork,                 hazanim,
0xdfb04b3f -                    boomy,                   zoona,
0xe1c40c19 -                  retched,                 betaxed,
0xe268a0eb -                  immerge,                 indri's,
0xe3fe5a71 -                  staring,                 stasima,
0xe451e0b6 -                  gauchos,                 gattine,
0xe4d0e137 -           understandable,              arizonians,
0xe57b67c4 -                  hencoop,                 peltish,
0xe7df3258 -                 unnetted,                unherded,
0xeda826c9 -             nonacceptant,            nonascendant,
0xee24a926 -                    zerda,                   bergy,
0xeefde7f1 -                   masula,                  marumi,
0xef62f913 -                    daunt,                   tauld,
0xf016834c -                   recook,                  rebops,
0xf17e54bc -                  gurning,                 outacts,
0xf188c43d -            volcanicity's,             melolonthid,
0xf18aa536 -                  bionomy,                 rimbase,
0xf2d11fa2 -                   cutout,           glossectomy's,
0xf418d9df -                  enclave,                 encharm,
0xf4cc5ec8 -                   tunics,                  tuliac,
0xf7231d69 -                  knolled,                 snooded,
0xf77eed20 -                    clubs,                   kluck,
0xf9510155 -                  timbals,                 limails,
0xfa2ecb93 -                 snellest,                snippish,
0xfb1b499a -                 clefting,                sledding,
0xfc3d3e8c -                    round,                   boult,
0xfe2686ea -                    sauba,                   kauai,
0xff42d454 -                    farsi,                   narra,
243 collisions

Testing 262144 6-character text keys -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.50, work +0.00000%
        4 buckets - chi +0.82, work +0.00011%
        8 buckets - chi +0.93, work +0.00017%
       16 buckets - chi +0.96, work +0.00012%
       32 buckets - chi +1.06, work +0.00108%
       64 buckets - chi +1.05, work +0.00170%
      128 buckets - chi +1.08, work +0.00438%
      256 buckets - chi +1.06, work +0.00612%
      512 buckets - chi +1.05, work +0.00979%
     1024 buckets - chi +1.04, work +0.01740%
     2048 buckets - chi +1.04, work +0.03411%
     4096 buckets - chi +1.05, work +0.07654%
     8192 buckets - chi +1.05, work +0.13354%
    16384 buckets - chi +1.05, work +0.28036%
    32768 buckets - chi +1.05, work +0.49695%
    65536 buckets - chi +1.05, work +0.78862%
   131072 buckets - chi +1.05, work +1.14018%
   262144 buckets - chi +1.05, work +1.52316%

Testing 523776 sparse 1024-bit keys with two bits set -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.53, work +0.00001%
        4 buckets - chi +0.79, work +0.00003%
        8 buckets - chi +0.89, work +0.00003%
       16 buckets - chi +0.96, work +0.00006%
       32 buckets - chi +0.96, work -0.00003%
       64 buckets - chi +1.01, work +0.00035%
      128 buckets - chi +1.03, work +0.00084%
      256 buckets - chi +1.03, work +0.00145%
      512 buckets - chi +1.04, work +0.00374%
     1024 buckets - chi +1.03, work +0.00634%
     2048 buckets - chi +1.03, work +0.01116%
     4096 buckets - chi +1.02, work +0.01912%
     8192 buckets - chi +1.02, work +0.03790%
    16384 buckets - chi +1.02, work +0.07052%
    32768 buckets - chi +1.02, work +0.13425%
    65536 buckets - chi +1.02, work +0.24570%
   131072 buckets - chi +1.02, work +0.41317%
   262144 buckets - chi +1.02, work +0.60990%


Testing 669920 sparse 160-bit keys with three bits set -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.69, work +0.00006%
        4 buckets - chi +1.10, work +0.00021%
        8 buckets - chi +1.40, work +0.00062%
       16 buckets - chi +1.47, work +0.00127%
       32 buckets - chi +1.52, work +0.00264%
       64 buckets - chi +1.52, work +0.00508%
      128 buckets - chi +1.57, work +0.01097%
      256 buckets - chi +1.57, work +0.02201%
      512 buckets - chi +1.59, work +0.04518%
     1024 buckets - chi +1.60, work +0.09100%
     2048 buckets - chi +1.60, work +0.18315%
     4096 buckets - chi +1.60, work +0.36115%
     8192 buckets - chi +1.60, work +0.71765%
    16384 buckets - chi +1.60, work +1.39906%
    32768 buckets - chi +1.60, work +2.67283%
    65536 buckets - chi +1.60, work +4.89470%
   131072 buckets - chi +1.60, work +8.40954%
   262144 buckets - chi +1.60, work +13.12415%


Testing 635376 sparse 64-bit keys with four bits set -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.64, work +0.00004%
        4 buckets - chi +1.00, work +0.00016%
        8 buckets - chi +1.47, work +0.00075%
       16 buckets - chi +1.59, work +0.00163%
       32 buckets - chi +1.64, work +0.00339%
       64 buckets - chi +1.71, work +0.00733%
      128 buckets - chi +1.73, work +0.01484%
      256 buckets - chi +1.75, work +0.03020%
      512 buckets - chi +1.72, work +0.05814%
     1024 buckets - chi +1.73, work +0.11683%
     2048 buckets - chi +1.72, work +0.23101%
     4096 buckets - chi +1.73, work +0.46223%
     8192 buckets - chi +1.72, work +0.90548%
    16384 buckets - chi +1.72, work +1.75763%
    32768 buckets - chi +1.71, work +3.34127%
    65536 buckets - chi +1.71, work +6.10166%
   131072 buckets - chi +1.71, work +10.41010%
   262144 buckets - chi +1.71, work +16.09853%


Testing 201376 sparse 32-bit keys with five bits set -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.57, work +0.00007%
        4 buckets - chi +0.68, work -0.00014%
        8 buckets - chi +0.82, work -0.00021%
       16 buckets - chi +0.89, work -0.00035%
       32 buckets - chi +0.94, work -0.00054%
       64 buckets - chi +0.96, work -0.00089%
      128 buckets - chi +0.95, work -0.00237%
      256 buckets - chi +0.97, work -0.00351%
      512 buckets - chi +0.99, work -0.00215%
     1024 buckets - chi +0.99, work -0.00440%
     2048 buckets - chi +1.00, work -0.00398%
     4096 buckets - chi +1.00, work -0.00857%
     8192 buckets - chi +1.00, work -0.00689%
    16384 buckets - chi +1.00, work -0.00198%
    32768 buckets - chi +1.00, work -0.00630%
    65536 buckets - chi +1.00, work -0.00889%
   131072 buckets - chi +1.00, work +0.00152%
   262144 buckets - chi +1.00, work -0.00128%


Testing 362880 sparse-permute keys -
Hashing keyset 100 times with different seeds..........

        2 buckets - chi +0.53, work +0.00002%
        4 buckets - chi +0.81, work +0.00006%
        8 buckets - chi +0.90, work +0.00006%
       16 buckets - chi +0.94, work +0.00003%
       32 buckets - chi +0.99, work +0.00023%
       64 buckets - chi +1.01, work +0.00040%
      128 buckets - chi +0.99, work -0.00020%
      256 buckets - chi +1.00, work -0.00000%
      512 buckets - chi +1.01, work +0.00126%
     1024 buckets - chi +1.01, work +0.00179%
     2048 buckets - chi +1.00, work +0.00089%
     4096 buckets - chi +1.00, work +0.00177%
     8192 buckets - chi +1.00, work +0.00641%
    16384 buckets - chi +1.00, work +0.00655%
    32768 buckets - chi +1.00, work +0.01184%
    65536 buckets - chi +1.00, work +0.02441%
   131072 buckets - chi +1.00, work +0.03451%
   262144 buckets - chi +1.00, work +0.05054%

Press any key to continue . . .