Skip to content

Commit

Permalink
Remove std::pow from reduction. (#2234)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
protonspring authored and mcostalba committed Jul 14, 2019
1 parent 13ba678 commit 650aeaf
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/search.cpp
Expand Up @@ -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)
Expand Down

0 comments on commit 650aeaf

Please sign in to comment.