]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Simplification: use Arctan for the optimism S-curve
[stockfish] / src / search.cpp
index 548ea9143d37c48f3aeec316744803a797c13aa1..832501f2f70d94437625b35c836692b63f86c2fa 100644 (file)
@@ -351,10 +351,7 @@ void Thread::search() {
               ct =  Options["Contempt"] * PawnValueEg / 100; // From centipawns
 
               // Adjust contempt based on current bestValue (dynamic contempt)
               ct =  Options["Contempt"] * PawnValueEg / 100; // From centipawns
 
               // Adjust contempt based on current bestValue (dynamic contempt)
-              int sign = (bestValue > 0) - (bestValue < 0);
-              ct +=  bestValue >  500 ?  70 :
-                     bestValue < -500 ? -70 :
-                     bestValue / 10 + sign * int(std::round(3.22 * log(1 + abs(bestValue))));
+              ct += int(std::round(48 * atan(float(bestValue) / 128)));
 
               Eval::Contempt = (us == WHITE ?  make_score(ct, ct / 2)
                                             : -make_score(ct, ct / 2));
 
               Eval::Contempt = (us == WHITE ?  make_score(ct, ct / 2)
                                             : -make_score(ct, ct / 2));