xr_a_y wrote: ↑Tue Jun 02, 2020 9:11 pm
But I think this is not working unless position hashing is taking root position color (side to play) into account ... because evaluations stored in hash table won't know what was the "asymmetric side".
I don't think I'll take the risk of splitting in two my hash table for this, I wonder how others are working with this issue ?
I guess this should a problem only if the root position color is not always the same, i.e. when the engine is being used for analysis and not when the engine is playing a game.
If the engine is being used for analysis (switching back and forth between root position with white to move and black to move), does it really make sense to use an asymmetric evaluation that switches sides depending on whose turn it happens to be in the root position?
If your answer is no (which imho it should be), then you could consider
(1) disabling the asymmetry in analysis mode and avoid messing up the hashtable, or
(2) making sure that the asymmetry doesn't switch sides, so allow the user to tie it to either white or black.
Last time I looked, this problem was simply ignored in Stockfish (where contempt introduces asymmetry). In Cfish I make sure that contempt is either disabled or fixed at white or black contempt in analysis mode.
My experience with Stockfish shows that the problem is too subtle to bother 99.99% of users.