using namespace std;
-static const string Defaults[] = {
+static const char* Defaults[] = {
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
"r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 10",
"8/2p5/3p4/KP5r/1R3p1k/8/4P1P1/8 w - - 0 11",
void benchmark(int argc, char* argv[]) {
- std::vector<Move> searchMoves(1, MOVE_NONE);
vector<string> fenList;
Search::LimitsType limits;
int64_t totalNodes;
string fenFile = argc > 5 ? argv[5] : "default";
string valType = argc > 6 ? argv[6] : "depth";
- Options["Hash"].set_value(ttSize);
- Options["Threads"].set_value(threads);
- Options["OwnBook"].set_value("false");
+ Options["Hash"] = ttSize;
+ Options["Threads"] = threads;
+ Options["OwnBook"] = false;
// Search should be limited by nodes, time or depth ?
if (valType == "nodes")
limits.maxDepth = atoi(valStr.c_str());
// Do we need to load positions from a given FEN file?
- if (fenFile != "default")
+ if (fenFile == "default")
+ for (int i = 0; *Defaults[i]; i++)
+ fenList.push_back(Defaults[i]);
+ else
{
string fen;
ifstream f(fenFile.c_str());
f.close();
}
- else // Load default positions
- for (int i = 0; !Defaults[i].empty(); i++)
- fenList.push_back(Defaults[i]);
// Ok, let's start the benchmark !
totalNodes = 0;
- time = get_system_time();
+ time = system_time();
for (size_t i = 0; i < fenList.size(); i++)
{
}
else
{
- Threads.start_thinking(pos, limits, searchMoves, false);
+ Threads.start_thinking(pos, limits, vector<Move>(), false);
totalNodes += Search::RootPosition.nodes_searched();
}
}
- time = get_system_time() - time;
+ time = system_time() - time;
cerr << "\n==============================="
<< "\nTotal time (ms) : " << time