#include "position.h"
#include "search.h"
#include "thread.h"
-#include "tt.h"
#include "uci.h"
using namespace std;
void benchmark(const Position& current, istream& is) {
string token;
- Search::LimitsType limits;
vector<string> fens;
+ Search::LimitsType limits;
// Assign default values to missing arguments
string ttSize = (is >> token) ? token : "16";
Options["Hash"] = ttSize;
Options["Threads"] = threads;
- TT.clear();
+ Search::clear();
if (limitType == "time")
- limits.movetime = stoi(limit); // movetime is in ms
+ limits.movetime = stoi(limit); // movetime is in millisecs
else if (limitType == "nodes")
limits.nodes = stoi(limit);
}
uint64_t nodes = 0;
- Search::StateStackPtr st;
- Time::point elapsed = Time::now();
+ TimePoint elapsed = now();
for (size_t i = 0; i < fens.size(); ++i)
{
cerr << "\nPosition: " << i + 1 << '/' << fens.size() << endl;
if (limitType == "perft")
- nodes += Search::perft<true>(pos, limits.depth * ONE_PLY);
+ nodes += Search::perft(pos, limits.depth * ONE_PLY);
else
{
+ Search::StateStackPtr st;
+ limits.startTime = now();
Threads.start_thinking(pos, limits, st);
- Threads.wait_for_think_finished();
- nodes += Search::RootPos.nodes_searched();
+ Threads.main()->join();
+ nodes += Threads.nodes_searched();
}
}
- elapsed = Time::now() - elapsed + 1; // Ensure positivity to avoid a 'divide by zero'
+ elapsed = now() - elapsed + 1; // Ensure positivity to avoid a 'divide by zero'
dbg_print(); // Just before to exit