From: protonspring Date: Sun, 14 Jul 2019 12:46:10 +0000 (-0600) Subject: Remove std::pow from reduction. (#2234) X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=650aeaf2420bdac00de03963132d82a415193a1c Remove std::pow from reduction. (#2234) This is a functional simplification that removes the std::pow from reduction. The resulting reduction values are within 1% of master. This is a simplification because i believe an fp addition and multiplication is much faster than a call to std::pow() which is historically slow and performance varies widely on different architectures. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 23471 W: 5245 L: 5127 D: 13099 http://tests.stockfishchess.org/tests/view/5d27ac1b0ebc5925cf0d476b LTC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 51533 W: 8736 L: 8665 D: 34132 http://tests.stockfishchess.org/tests/view/5d27b74e0ebc5925cf0d493c Bench 3765158 --- diff --git a/src/search.cpp b/src/search.cpp index bd5ae75e..df19108f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -503,7 +503,7 @@ void Thread::search() { // If the bestMove is stable over several iterations, reduce time accordingly timeReduction = lastBestMoveDepth + 10 * ONE_PLY < completedDepth ? 1.95 : 1.0; - double reduction = std::pow(mainThread->previousTimeReduction, 0.528) / timeReduction; + double reduction = (1.25 + mainThread->previousTimeReduction) / (2.25 * timeReduction); // Use part of the gained time from a previous stable move for the current move for (Thread* th : Threads)