A try to implement Alexander Shashin's theory on a Stockfish's derived chess engine
Solved a bug in winProbability implementation (replaced the map with an array). Improvements in Shashin theory. New net from stockfish testing framework, slightly better than the original one. Stockfish patch: Remove 'si' StateInfo variable/parameter. Since st is a member of position we don't need to pass it separately as parameter.
While being there also remove some line in pos_is_ok, where a copy of StateInfo was made by using default copy constructor and then verified it's correctedness by doing a memcmp. There is no point in doing that.
Speed up kns
ShashChess 29 Greatly improved Shashin theory: introduced winProbability concept: Shashin position's classification now is not only based on the score, but also on the depth/ply. Aligned with Stockfish patch 02/27/23 Update default net to nn-52471d67216a.nnue
Improved Shashin theory Stockfish patch Remove maxNextDepth This patch allows full PV search to have double extensions as well when extension == 1 && doDeeperSearch && doEvenDeeperSearch && !doShallowerSearch is true, which is extremely rare to occur.
ShashChess 27.2 No GoldDigger Update default net to nn-1e7ca356472e.nnue
Improved GoldDigger Stockfish patch Fix stack initialization This fixes a bug where on line 278 the Stack::staticEvals are initialized to 0. However VALUE_NONE is defined to be 32002 so this is a bug in master. It is probably due to the calculation of improvement, where staticEval prior to rootPos can be accessed.
Deeply refined Shashin theory Reintroduced GD Stockfish patch: Update default net to nn-60fa44e376d9.nnue
ShashChess 26.2 Eliminated GoldDigger. Stockfish patch Fix bestThread selection If multiple threads have the same best move, pick the thread with the largest contribution to the confidence vote. This thread will later be used to display PV, so this patch is about user-friendliness and/or least surprises, it non-functional for playing strenght.
closes #4246
No functional change
ShashChess 26.1 Improved optimism based on Shashin and alignement score/gui. Fixed Opening Variety
Stockfish patch Correctly output lowerbound/upperbound in threaded searches fixes the lowerbound/upperbound output by taking the alpha,beta bracket into account also if a bestThread is selected that is different from the master thread.
Instead of keeping track which bounds where used in the specific search, in this version we simply store the quality (exact, upperbound, lowerbound) of the score along with the actual score as information on rootMove.
closes #4239
No functional change
ShashChess 26 Introduced contempt by Shashin