I've attached some compiles (Linux and Windows 64-bit). As usual, SSE4.2 compiles are for modern CPU, and SSE2 are slower but compatible with older CPU:
The source code is also available, on my github page:
https://github.com/lucasart/chess/releases
It scores +58 elo against DiscoCheck 5.1, at fast time control 6"+0.05". Probably +40 elo in rating list conditions (ie. against unrelated opponents and at much longer time control).
Important changes
- Update move sorting heuristics only when alpha is raised. This stupid bug was quite a big elo drain.
- Passed pawn tuning: push away more aggressively the enemy king from our passed pawns.
- Simplify Pawn Piece-Square Table
- Introduce material imbalance formula, based on counting minor pieces. Re-tune material values in the presence of the new material imbalance.
- Do not distinguish node type for reduction (PV, Cut, All are always reduced the same way).
- null search only when depth >= 2. And re-CLOP null search reduction with depth >= 2 precondition.
- Prune threat refutations, like any other moves.
- Improve LMR transition (between search and qsearch).
- Introduce triple reductions.
- Do not double reduce bad checks.
- Never prune the first move.
- Update move sorting heuristics on TT pruning (History, Refutation, Killers).