Rewrite syzygy in C++
authorMarco Costalba <mcostalba@gmail.com>
Sat, 16 Jul 2016 06:10:45 +0000 (08:10 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 5 Nov 2016 06:55:08 +0000 (07:55 +0100)
commitc0bb0415394179e9c771cc96a9da6724fc14c167
tree36f1c139d40c3ed5ee4c64477f035a6e94850c69
parent369eff437cc081eb4b8ab5f519cf3f86b79e87d0
Rewrite syzygy in C++

Rewrite the code in SF style, simplify and
document it.

Code is now much clear and bug free (no mem-leaks and
other small issues) and is also smaller (more than
600 lines of code removed).

All the code has been rewritten but root_probe() and
root_probe_wdl() that are completely misplaced and should
be retired altogheter. For now just leave them in the
original version.

Code is fully and deeply tested for equivalency both in
functionality and in speed with hundreds of games and
test positions and is guaranteed to be 100% equivalent
to the original.

Tested with tb_dbg branch for functional equivalency on
more than 12M positions.

stockfish.exe bench 128 1 16 syzygy.epd

Position: 2016/2016
Total 12121156 Hits 0 hit rate (%) 0
Total time (ms) : 4417851
Nodes searched : 1100151204
Nodes/second : 249024

Tested with 5,000 games match against master, 1 Thread,
128 MB Hash each, tc 40+0.4, which is almost equivalent
to LTC in Fishtest on this machine. 3-, 4- and 5-men syzygy
bases on SSD, 12-moves opening book to emphasize mid- and endgame.

Score of SF-SyzygyC++ vs SF-Master: 633 - 617 - 3750  [0.502] 5000
ELO difference: 1

No functional change.
src/endgame.cpp
src/position.cpp
src/position.h
src/search.cpp
src/syzygy/tbcore.cpp [deleted file]
src/syzygy/tbcore.h [deleted file]
src/syzygy/tbprobe.cpp
src/syzygy/tbprobe.h
src/uci.cpp