X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc.h;h=dcef22a411c2c90276f8c993b13777f84f6f042c;hb=f3a2296e591d09dd50323fc3f96e800f5538d8bb;hp=c17441306c1a5a621579233b25441342712e68e0;hpb=a5a89b27c8e3225fb453d603bc4515d32bb351c3;p=stockfish diff --git a/src/misc.h b/src/misc.h index c1744130..dcef22a4 100644 --- a/src/misc.h +++ b/src/misc.h @@ -1,6 +1,6 @@ /* Stockfish, a UCI chess playing engine derived from Glaurung 2.1 - Copyright (C) 2004-2021 The Stockfish developers (see AUTHORS file) + Copyright (C) 2004-2022 The Stockfish developers (see AUTHORS file) Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -105,6 +105,9 @@ class RunningAverage { bool is_greater(int64_t a, int64_t b) { return b * average > a * PERIOD * RESOLUTION ; } + int64_t value() + { return average / (PERIOD * RESOLUTION); } + private : static constexpr int64_t PERIOD = 4096; static constexpr int64_t RESOLUTION = 1024; @@ -141,7 +144,7 @@ private: /// sigmoid(t, x0, y0, C, P, Q) implements a sigmoid-like function using only integers, /// with the following properties: -/// +/// /// - sigmoid is centered in (x0, y0) /// - sigmoid has amplitude [-P/Q , P/Q] instead of [-1 , +1] /// - limit is (y0 - P/Q) when t tends to -infinity @@ -149,7 +152,7 @@ private: /// - the slope can be adjusted using C > 0, smaller C giving a steeper sigmoid /// - the slope of the sigmoid when t = x0 is P/(Q*C) /// - sigmoid is increasing with t when P > 0 and Q > 0 -/// - to get a decreasing sigmoid, call with -t, or change sign of P +/// - to get a decreasing sigmoid, change sign of P /// - mean value of the sigmoid is y0 /// /// Use to draw the sigmoid @@ -161,6 +164,7 @@ inline int64_t sigmoid(int64_t t, int64_t x0, int64_t Q) { assert(C > 0); + assert(Q != 0); return y0 + P * (t-x0) / (Q * (std::abs(t-x0) + C)) ; }