Use insertion_sort() in RootMoveList

Simplify code and get a bit of extra speed, about +0.5%

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2010-12-28 13:29:53 +01:00
parent 6235904898
commit 0007b43a91
3 changed files with 30 additions and 41 deletions
+5 -5
View File
@@ -66,12 +66,12 @@ struct MoveStack {
inline bool operator<(const MoveStack& f, const MoveStack& s) { return f.score < s.score; }
// An helper insertion sort implementation
template<typename T>
inline void insertion_sort(T* firstMove, T* lastMove)
// An helper insertion sort implementation, works with pointers and iterators
template<typename T, typename K>
inline void insertion_sort(K firstMove, K lastMove)
{
T value;
T *cur, *p, *d;
K cur, p, d;
if (firstMove != lastMove)
for (cur = firstMove + 1; cur != lastMove; cur++)
@@ -116,7 +116,7 @@ inline void sort_moves(T* firstMove, T* lastMove, T** lastPositive)
} while (p != d);
// Sort just positive scored moves, remaining only when we get there
insertion_sort<T>(firstMove, p);
insertion_sort<T, T*>(firstMove, p);
*lastPositive = p;
}