-/// engine_name() returns the full name of the current Glaurung version.
-/// This will be either "Glaurung YYMMDD" (where YYMMDD is the date when the
-/// program was compiled) or "Glaurung <version number>", depending on whether
-/// the constant EngineVersion (defined in misc.h) is empty.
-
-const std::string engine_name() {
- if(EngineVersion == "") {
- static const char monthNames[12][4] = {
- "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
- };
- const char *dateString = __DATE__;
- std::stringstream s;
- int month = 0, day = 0;
-
- for(int i = 0; i < 12; i++)
- if(strncmp(dateString, monthNames[i], 3) == 0)
- month = i + 1;
- day = atoi(dateString+4);
-
- s << "Glaurung " << (dateString+9) << std::setfill('0') << std::setw(2)
- << month << std::setfill('0') << std::setw(2) << day;
-
- return s.str();
- }
- else
- return "Glaurung " + EngineVersion;
+void dbg_hit_on(bool b) {
+
+ assert(!dbg_show_mean);
+ dbg_show_hit_rate = true;
+ dbg_cnt0++;
+ if (b)
+ dbg_cnt1++;
+}
+
+void dbg_hit_on_c(bool c, bool b) {
+
+ if (c)
+ dbg_hit_on(b);
+}
+
+void dbg_before() {
+
+ assert(!dbg_show_mean);
+ dbg_show_hit_rate = true;
+ dbg_cnt0++;
+}
+
+void dbg_after() {
+
+ assert(!dbg_show_mean);
+ dbg_show_hit_rate = true;
+ dbg_cnt1++;
+}
+
+void dbg_mean_of(int v) {
+
+ assert(!dbg_show_hit_rate);
+ dbg_show_mean = true;
+ dbg_cnt0++;
+ dbg_cnt1 += v;
+}
+
+void dbg_print_hit_rate() {
+
+ cout << "Total " << dbg_cnt0 << " Hit " << dbg_cnt1
+ << " hit rate (%) " << (dbg_cnt1*100)/(dbg_cnt0 ? dbg_cnt0 : 1) << endl;
+}
+
+void dbg_print_mean() {
+
+ cout << "Total " << dbg_cnt0 << " Mean "
+ << (float)dbg_cnt1 / (dbg_cnt0 ? dbg_cnt0 : 1) << endl;
+}
+
+
+/// engine_name() returns the full name of the current Stockfish version.
+/// This will be either "Stockfish YYMMDD" (where YYMMDD is the date when
+/// the program was compiled) or "Stockfish <version number>", depending
+/// on whether the constant EngineVersion (defined in misc.h) is empty.
+
+const string engine_name() {
+
+ const string months("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec");
+ const string cpu64(CpuIs64Bit ? " 64bit" : "");
+
+ if (!EngineVersion.empty())
+ return AppName + " " + EngineVersion + cpu64;
+
+ stringstream s, date(__DATE__); // From compiler, format is "Sep 21 2008"
+ string month, day, year;
+
+ date >> month >> day >> year;
+
+ s << setfill('0') << AppName + " " + AppTag + " "
+ << year.substr(2, 2) << setw(2)
+ << (1 + months.find(month) / 4) << setw(2)
+ << day << cpu64;
+
+ return s.str();