I worked a bit more on the generation algorithm and was able to speed it up a bit more. The generation time for the KPK table was reduced from 171 ms to 31 ms. This is now fast enough to generate all 3men tables at engine startup.
I integrated the code into iCE and removed the built-in tables. On my i7 the complete generation takes 78 ms, which I consider acceptable. On a slower system and as as 32 bit code it takes an also acceptable 125 ms.
Surprisingly the difference between the debug and the release version of the code is about factor 40. I cannot really explain why it is so big.
TableBase: KPK Generation Time: 0.031 sec Iterations: 29
STM WHITE BLACK WHITE BLACK
----------------------------------------------------------------
ILLEGAL 49.279 32.944 UNKNOWN 0 0
MATED 0 42 DRAWS 19.184 36.206
MATE IN 1 40 0 MATED IN 1 0 64
MATE IN 2 97 0 MATED IN 2 0 163
MATE IN 3 219 0 MATED IN 3 0 406
MATE IN 4 422 0 MATED IN 4 0 821
MATE IN 5 915 0 MATED IN 5 0 1.698
MATE IN 6 1.636 0 MATED IN 6 0 3.124
MATE IN 7 3.121 0 MATED IN 7 0 5.841
MATE IN 8 5.647 0 MATED IN 8 0 7.603
MATE IN 9 7.541 0 MATED IN 9 0 8.110
MATE IN 10 8.395 0 MATED IN 10 0 7.857
MATE IN 11 8.601 0 MATED IN 11 0 7.215
MATE IN 12 8.178 0 MATED IN 12 0 5.843
MATE IN 13 6.719 0 MATED IN 13 0 4.185
MATE IN 14 3.829 0 MATED IN 14 0 2.501
MATE IN 15 1.065 0 MATED IN 15 0 1.026
MATE IN 16 1.154 0 MATED IN 16 0 1.194
MATE IN 17 1.066 0 MATED IN 17 0 902
MATE IN 18 871 0 MATED IN 18 0 711
MATE IN 19 658 0 MATED IN 19 0 597
MATE IN 20 558 0 MATED IN 20 0 436
MATE IN 21 606 0 MATED IN 21 0 565
MATE IN 22 562 0 MATED IN 22 0 430
MATE IN 23 343 0 MATED IN 23 0 292
MATE IN 24 144 0 MATED IN 24 0 109
MATE IN 25 64 0 MATED IN 25 0 31
MATE IN 26 19 0 MATED IN 26 0 14
MATE IN 27 7 0 MATED IN 27 0 4
MATE IN 28 3 0 MATED IN 28 0 2
No comments:
Post a Comment