Restore perft

Rewrite perft to be placed naturally inside new
bench code. In particular we don't have special
custom code to run perft anymore but perft is
just a new parameter of 'go' command.

So user API is now changed, old style command:

$perft 5

becomes

$go perft 4

No functional change.
This commit is contained in:
Marco Costalba
2017-08-15 01:05:22 -07:00
parent 444d99b6d2
commit 45e254a0a0
5 changed files with 52 additions and 53 deletions
+4 -4
View File
@@ -78,15 +78,16 @@ struct LimitsType {
LimitsType() { // Init explicitly due to broken value-initialization of non POD in MSVC
nodes = time[WHITE] = time[BLACK] = inc[WHITE] = inc[BLACK] =
npmsec = movestogo = depth = movetime = mate = infinite = 0;
npmsec = movestogo = depth = movetime = mate = perft = infinite = 0;
}
bool use_time_management() const {
return !(mate | movetime | depth | nodes | infinite);
return !(mate | movetime | depth | nodes | perft | infinite);
}
std::vector<Move> searchmoves;
int time[COLOR_NB], inc[COLOR_NB], npmsec, movestogo, depth, movetime, mate, infinite;
int time[COLOR_NB], inc[COLOR_NB], npmsec, movestogo, depth,
movetime, mate, perft, infinite;
int64_t nodes;
TimePoint startTime;
};
@@ -95,7 +96,6 @@ extern LimitsType Limits;
void init();
void clear();
template<bool Root = true> uint64_t perft(Position& pos, Depth depth);
} // namespace Search