LCOV - code coverage report
Current view: top level - Source - stats.hpp (source / functions) Coverage Total Hit
Test: coverage Lines: 100.0 % 4 4
Test Date: 2026-03-02 16:42:41 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include "definition.hpp"
       4              : #include "logging.hpp"
       5              : 
       6              : /*!
       7              :  * This array is used to store statistic of search and evaluation
       8              :  * for each thread.
       9              :  */
      10              : struct Stats {
      11              :    enum StatId {
      12              :       sid_nodes = 0,
      13              :       sid_qnodes,
      14              :       sid_tthits,
      15              :       sid_ttInsert,
      16              :       sid_ttPawnhits,
      17              :       sid_ttPawnInsert,
      18              :       sid_ttschits,
      19              :       sid_ttscmiss,
      20              :       sid_ttAlphaCut,
      21              :       sid_ttExactCut,
      22              :       sid_ttBetaCut,
      23              :       sid_ttAlphaLateCut,
      24              :       sid_ttBetaLateCut,
      25              :       sid_ttWrongBound,
      26              :       sid_staticScoreIsFromSearch,
      27              :       sid_qsearchInCheck,
      28              :       sid_qEvalNullMoveTrick,
      29              :       sid_materialTableHits,
      30              :       sid_materialTableHitsSearch,
      31              :       sid_materialTableMiss,
      32              :       sid_materialTableMissSearch,
      33              :       sid_materialTableHelper,
      34              :       sid_materialTableDraw,
      35              :       sid_materialTableDraw2,
      36              :       sid_staticNullMove,
      37              :       sid_threatsPruning,
      38              :       sid_lmr,
      39              :       sid_lmrcap,
      40              :       sid_lmrFail,
      41              :       sid_pvsFail,
      42              :       sid_razoringTry,
      43              :       sid_razoring,
      44              :       sid_razoringNoThreat,
      45              :       sid_razoringNoQ,
      46              :       sid_nullMoveTry,
      47              :       sid_nullMoveTry2,
      48              :       sid_nullMoveTry3,
      49              :       sid_nullMove,
      50              :       sid_nullMove2,
      51              :       sid_probcutTry,
      52              :       sid_probcutNoCap,
      53              :       sid_probcutMoves,
      54              :       sid_probcutTry2,
      55              :       sid_probcut,
      56              :       sid_lmp,
      57              :       sid_lmrAR,
      58              :       sid_historyPruning,
      59              :       sid_futility,
      60              :       sid_CMHPruning,
      61              :       sid_capHistPruning,
      62              :       sid_see,
      63              :       sid_see2,
      64              :       sid_seeQuiet,
      65              :       sid_seeQuiet2,
      66              :       sid_seeQuiet3,
      67              :       sid_iid,
      68              :       sid_iir,
      69              :       sid_ttalpha,
      70              :       sid_ttbeta, // beta cut from the tt move
      71              :       sid_alpha,
      72              :       sid_beta,
      73              :       sid_beta_gc, // beta cut from good cap
      74              :       sid_beta_p, // beta cut from prom
      75              :       sid_beta_k1, // beta cut from killer
      76              :       sid_beta_k2,
      77              :       sid_beta_k3,
      78              :       sid_beta_k4,
      79              :       sid_beta_c, // beta cut from counter
      80              :       sid_beta_q, // beta cut other quiet
      81              :       sid_beta_bc, // beta cut bad cap
      82              :       sid_alphanoupdate,
      83              :       sid_qttalpha,
      84              :       sid_qttbeta,
      85              :       sid_qalpha,
      86              :       sid_qbeta,
      87              :       sid_qalphanoupdate,
      88              :       sid_checkExtension,
      89              :       sid_checkExtension2,
      90              :       sid_recaptureExtension,
      91              :       sid_castlingExtension,
      92              :       sid_CMHExtension,
      93              :       sid_pawnPushExtension,
      94              :       sid_singularExtension,
      95              :       sid_singularExtension2,
      96              :       sid_singularExtension3,
      97              :       sid_singularExtension4,
      98              :       sid_singularExtension5,
      99              :       sid_singularExtension6,
     100              :       sid_singularExtension7,
     101              :       sid_queenThreatExtension,
     102              :       sid_BMExtension,
     103              :       sid_mateThreatExtension,
     104              :       sid_endGameExtension,
     105              :       sid_goodHistoryExtension,
     106              :       sid_EGExtension,
     107              :       sid_dangerExt,
     108              :       sid_tbHit1,
     109              :       sid_tbHit2,
     110              :       sid_tbFail,
     111              :       sid_dangerPrune,
     112              :       sid_dangerForwardPrune,
     113              :       sid_dangerReduce,
     114              :       sid_hashComputed,
     115              :       sid_qfutility,
     116              :       sid_qsee,
     117              :       sid_deltaAlpha,
     118              :       sid_deltaBeta,
     119              :       sid_evalNoKing,
     120              :       sid_evalStd,
     121              :       sid_evalNNUE,
     122              :       sid_evalNNUE2,
     123              :       sid_PVupdate,
     124              :       sid_maxid
     125              :    };
     126              : 
     127              :    static constexpr array1d<std::string_view, sid_maxid> Names{ 
     128              :       "nodes",
     129              :       "qnodes",
     130              :       "tthits",
     131              :       "ttInsert",
     132              :       "ttPawnhits",
     133              :       "ttPawnInsert",
     134              :       "ttScHits",
     135              :       "ttScMiss",
     136              :       "ttAlphaCut",
     137              :       "ttExactCut",
     138              :       "ttBetaCut",
     139              :       "ttAlphaLateCut",
     140              :       "ttBetaLateCut",
     141              :       "ttWrongBound",
     142              :       "staticScoreIsFromSearch",
     143              :       "qsearchInCheck",
     144              :       "qEvalNullMoveTrick",
     145              :       "materialHits",
     146              :       "materialHitsSearch",
     147              :       "materialMiss",
     148              :       "materialMissSearch",
     149              :       "materialHelper",
     150              :       "materialDraw",
     151              :       "materialDraw2",
     152              :       "staticNullMove",
     153              :       "threatsPruning",
     154              :       "lmr",
     155              :       "lmrcap",
     156              :       "lmrfail",
     157              :       "pvsfail",
     158              :       "razoringTry",
     159              :       "razoring",
     160              :       "razoringNoThreat",
     161              :       "razoringNoQ",
     162              :       "nullMoveTry",
     163              :       "nullMoveTry2",
     164              :       "nullMoveTry3",
     165              :       "nullMove",
     166              :       "nullMove2",
     167              :       "probcutTry",
     168              :       "probcutNoCap",
     169              :       "probcutMoves",
     170              :       "probcutTry2",
     171              :       "probcut",
     172              :       "lmp",
     173              :       "lmrAR",
     174              :       "historyPruning",
     175              :       "futility",
     176              :       "CMHPruning",
     177              :       "capHistPruning",
     178              :       "see",
     179              :       "see2",
     180              :       "seeQuiet",
     181              :       "seeQuiet2",
     182              :       "seeQuiet3",
     183              :       "iid",
     184              :       "iir",
     185              :       "ttalpha",
     186              :       "ttbeta",
     187              :       "alpha",
     188              :       "beta",
     189              :       "beta_gc",
     190              :       "beta_p",
     191              :       "beta_k1",
     192              :       "beta_k2",
     193              :       "beta_k3",
     194              :       "beta_k4",
     195              :       "beta_c",
     196              :       "beta_q",
     197              :       "beta_bc",
     198              :       "alphanoupdate",
     199              :       "qttalpha",
     200              :       "qttbeta",
     201              :       "qalpha",
     202              :       "qbeta",
     203              :       "qalphanoupdate",
     204              :       "checkExtension",
     205              :       "checkExtension2",
     206              :       "recaptureExtension",
     207              :       "castlingExtension",
     208              :       "CMHExtension",
     209              :       "pawnPushExtension",
     210              :       "singularExtension",
     211              :       "singularExtension2",
     212              :       "singularExtension3",
     213              :       "singularExtension4",
     214              :       "singularExtension5",
     215              :       "singularExtension6",
     216              :       "singularExtension7",
     217              :       "queenThreatExtension",
     218              :       "BMExtension",
     219              :       "mateThreatExtension",
     220              :       "endGameExtension",
     221              :       "goodHistoryExtension",
     222              :       "EGExtension",
     223              :       "dangerExtenstion",
     224              :       "TBHit1",
     225              :       "TBHit2",
     226              :       "TBFail",
     227              :       "dangerPrune",
     228              :       "dangerForwardPrune",
     229              :       "dangerReduce",
     230              :       "computedHash",
     231              :       "qfutility",
     232              :       "qsee",
     233              :       "deltaAlpha",
     234              :       "deltaBeta",
     235              :       "evalNoKing",
     236              :       "evalStd",
     237              :       "evalNNUE",
     238              :       "evalNNUE2",
     239              :       "PVupdate"};
     240              : 
     241              :    array1d<Counter, sid_maxid> counters;
     242              : 
     243              : #ifdef WITH_STATS
     244     37586356 :    FORCE_FINLINE void incr(StatId id) { ++counters[id]; }
     245              : #else
     246              :    FORCE_FINLINE void incr(StatId) {}
     247              : #endif
     248              : 
     249          275 :    void init() {
     250          275 :       Logging::LogIt(Logging::logInfo) << "Init stat";
     251              :       counters.fill(0ull);
     252          275 :    }
     253              : };
     254              : 
        

Generated by: LCOV version 2.0-1