From a0cc15ccbc5dc48ea3c871915c8f96c7a624597d Mon Sep 17 00:00:00 2001 From: Lucas Braesch Date: Thu, 3 Oct 2013 12:05:58 +0800 Subject: [PATCH] Use double everywhere Rationale: - Speed of double and float is about the same (not on the hot path anyway) - Double makes code prettier (no need to write 1.0f, just 1.0) - Only practical advantage of float is to use less memory, but since we never store large arrays of double, we don't care. No functional change. --- src/misc.cpp | 2 +- src/notation.cpp | 2 +- src/search.cpp | 4 ++-- src/timeman.cpp | 14 +++++++------- src/timeman.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/misc.cpp b/src/misc.cpp index a9b1f17e..b9a802ad 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -75,7 +75,7 @@ void dbg_print() { if (means[0]) cerr << "Total " << means[0] << " Mean " - << (float)means[1] / means[0] << endl; + << (double)means[1] / means[0] << endl; } diff --git a/src/notation.cpp b/src/notation.cpp index 06573c78..3f79a44b 100644 --- a/src/notation.cpp +++ b/src/notation.cpp @@ -207,7 +207,7 @@ static string score_to_string(Value v) { s << "-#" << (VALUE_MATE + v) / 2; else - s << setprecision(2) << fixed << showpos << float(v) / PawnValueMg; + s << setprecision(2) << fixed << showpos << double(v) / PawnValueMg; return s.str(); } diff --git a/src/search.cpp b/src/search.cpp index dcf3e613..e56b2c7f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -84,7 +84,7 @@ namespace { size_t PVSize, PVIdx; TimeManager TimeMgr; - float BestMoveChanges; + double BestMoveChanges; Value DrawValue[COLOR_NB]; HistoryStats History; GainsStats Gains; @@ -333,7 +333,7 @@ namespace { while (++depth <= MAX_PLY && !Signals.stop && (!Limits.depth || depth <= Limits.depth)) { // Age out PV variability metric - BestMoveChanges *= 0.8f; + BestMoveChanges *= 0.8; // Save last iteration's scores before first PV line is searched and all // the move scores but the (new) PV are set to -VALUE_INFINITE. diff --git a/src/timeman.cpp b/src/timeman.cpp index 34dbcc6e..6112951c 100644 --- a/src/timeman.cpp +++ b/src/timeman.cpp @@ -29,8 +29,8 @@ namespace { /// Constants const int MoveHorizon = 50; // Plan time management at most this many moves ahead - const float MaxRatio = 7.0f; // When in trouble, we can step over reserved time with this ratio - const float StealRatio = 0.33f; // However we must not steal time from remaining moves over this ratio + const double MaxRatio = 7.0; // When in trouble, we can step over reserved time with this ratio + const double StealRatio = 0.33; // However we must not steal time from remaining moves over this ratio // MoveImportance[] is based on naive statistical analysis of "how many games are still undecided @@ -76,7 +76,7 @@ namespace { } -void TimeManager::pv_instability(float bestMoveChanges) { +void TimeManager::pv_instability(double bestMoveChanges) { unstablePVExtraTime = int(bestMoveChanges * optimumSearchTime); } @@ -144,8 +144,8 @@ namespace { template int remaining(int myTime, int movesToGo, int currentPly, int slowMover) { - const float TMaxRatio = (T == OptimumTime ? 1 : MaxRatio); - const float TStealRatio = (T == OptimumTime ? 0 : StealRatio); + const double TMaxRatio = (T == OptimumTime ? 1 : MaxRatio); + const double TStealRatio = (T == OptimumTime ? 0 : StealRatio); int thisMoveImportance = move_importance(currentPly) * slowMover / 100; int otherMovesImportance = 0; @@ -153,8 +153,8 @@ namespace { for (int i = 1; i < movesToGo; ++i) otherMovesImportance += move_importance(currentPly + 2 * i); - float ratio1 = (TMaxRatio * thisMoveImportance) / float(TMaxRatio * thisMoveImportance + otherMovesImportance); - float ratio2 = (thisMoveImportance + TStealRatio * otherMovesImportance) / float(thisMoveImportance + otherMovesImportance); + double ratio1 = (TMaxRatio * thisMoveImportance) / double(TMaxRatio * thisMoveImportance + otherMovesImportance); + double ratio2 = (thisMoveImportance + TStealRatio * otherMovesImportance) / double(thisMoveImportance + otherMovesImportance); return int(floor(myTime * std::min(ratio1, ratio2))); } diff --git a/src/timeman.h b/src/timeman.h index 4896fe6e..92ab0e7b 100644 --- a/src/timeman.h +++ b/src/timeman.h @@ -26,7 +26,7 @@ class TimeManager { public: void init(const Search::LimitsType& limits, int currentPly, Color us); - void pv_instability(float bestMoveChanges); + void pv_instability(double bestMoveChanges); int available_time() const { return optimumSearchTime + unstablePVExtraTime; } int maximum_time() const { return maximumSearchTime; } -- 2.39.2