From 03d571ba60d6effbecf2182e395dfe008205056a Mon Sep 17 00:00:00 2001 From: Aryan1508 <68417405+Aryan1508@users.noreply.github.com> Date: Tue, 29 Jun 2021 16:50:42 +0530 Subject: [PATCH 1/2] Bench: 8455080 --- Bit-Genie/src/moveorder.cpp | 25 ++++++++++++++++++------- Bit-Genie/src/uci.cpp | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Bit-Genie/src/moveorder.cpp b/Bit-Genie/src/moveorder.cpp index 3d461c7..926e4b5 100644 --- a/Bit-Genie/src/moveorder.cpp +++ b/Bit-Genie/src/moveorder.cpp @@ -89,7 +89,7 @@ static int16_t see(Position &position, Move move) } template -static void order_normal_movelist(Movelist &movelist, Search::Info &search) +static void score_movelist(Movelist &movelist, Search::Info &search) { Position& position = *search.position; for (auto &move : movelist) @@ -101,13 +101,18 @@ static void order_normal_movelist(Movelist &movelist, Search::Info &search) else set_move_score(move, search.history.get(position, move)); } - std::stable_sort(movelist.begin(), movelist.end(), - [](Move rhs, Move lhs) { return move_score(rhs) > move_score(lhs); }); +} + +void bubble_top_move(Movelist::iterator begin, Movelist::iterator end) +{ + auto best = std::max_element(begin, end , + [](Move lhs, Move rhs){return move_score(lhs) < move_score(rhs); }); + std::iter_swap(best, begin); } void sort_qmovelist(Movelist &movelist, Search::Info& search) { - order_normal_movelist(movelist, search); + score_movelist(movelist, search); } MovePicker::MovePicker(Search::Info& s) @@ -139,9 +144,11 @@ bool MovePicker::next(Move &move) if (stage == Stage::GenNoisy) { gen.generate(position); - order_normal_movelist(gen.movelist, *search); - + + score_movelist(gen.movelist, *search); + bubble_top_move(gen.movelist.begin(), gen.movelist.end()); current = gen.movelist.begin(); + stage = Stage::GiveGoodNoisy; } @@ -150,6 +157,7 @@ bool MovePicker::next(Move &move) if (current != gen.movelist.end() && move_score(*current) > 0) { move = *current++; + bubble_top_move(current, gen.movelist.end()); return true; } stage = Stage::Killer1; @@ -184,6 +192,7 @@ bool MovePicker::next(Move &move) if (current != gen.movelist.end()) { move = *current++; + bubble_top_move(current, gen.movelist.end()); return true; } stage = Stage::GenQuiet; @@ -194,7 +203,8 @@ bool MovePicker::next(Move &move) gen.movelist.clear(); gen.generate(position); - order_normal_movelist(gen.movelist, *search); + score_movelist(gen.movelist, *search); + bubble_top_move(gen.movelist.begin(), gen.movelist.end()); current = gen.movelist.begin(); stage = Stage::GiveQuiet; } @@ -204,6 +214,7 @@ bool MovePicker::next(Move &move) if (current != gen.movelist.end()) { move = *current++; + bubble_top_move(current, gen.movelist.end()); return true; } return false; diff --git a/Bit-Genie/src/uci.cpp b/Bit-Genie/src/uci.cpp index 3a6df9b..51c5bb0 100644 --- a/Bit-Genie/src/uci.cpp +++ b/Bit-Genie/src/uci.cpp @@ -26,7 +26,7 @@ #include "searchinit.h" #include "polyglot.h" -const char *version = "7.11"; +const char *version = "7.12"; namespace { From bd1bbce0876df1b5b38c9d5f31f3f4783e0cd8e4 Mon Sep 17 00:00:00 2001 From: Aryan1508 <68417405+Aryan1508@users.noreply.github.com> Date: Tue, 29 Jun 2021 16:53:35 +0530 Subject: [PATCH 2/2] Bench: 8488111 --- Bit-Genie/src/moveorder.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Bit-Genie/src/moveorder.cpp b/Bit-Genie/src/moveorder.cpp index 926e4b5..8ca9afb 100644 --- a/Bit-Genie/src/moveorder.cpp +++ b/Bit-Genie/src/moveorder.cpp @@ -113,6 +113,7 @@ void bubble_top_move(Movelist::iterator begin, Movelist::iterator end) void sort_qmovelist(Movelist &movelist, Search::Info& search) { score_movelist(movelist, search); + std::stable_sort(movelist.begin(), movelist.end(), [](Move lhs, Move rhs){ return move_score(lhs) > move_score(rhs); }); } MovePicker::MovePicker(Search::Info& s)