/*
- * Sherlock Library -- Universal Array Sorter
+ * UCW Library -- Universal Array Sorter
*
* (c) 2003 Martin Mares <mj@ucw.cz>
*
#define ASORT_EXTRA_ARGS
#endif
-static void ASORT_PREFIX(sort)(uns array_size)
+static void ASORT_PREFIX(sort)(uns array_size ASORT_EXTRA_ARGS)
{
struct stk { int l, r; } stack[8*sizeof(uns)];
int l, r, left, right, m;
}
}
while (l <= r);
- if ((r - left) > ASORT_THRESHOLD && (right - l) > ASORT_THRESHOLD)
+ if ((r - left) >= ASORT_THRESHOLD && (right - l) >= ASORT_THRESHOLD)
{
/* Both partitions ok => push the larger one */
if ((r - left) > (right - l))
}
sp++;
}
- else if ((r - left) > ASORT_THRESHOLD)
+ else if ((r - left) >= ASORT_THRESHOLD)
{
/* Left partition OK, right undersize */
right = r;
}
- else if ((right - l) > ASORT_THRESHOLD)
+ else if ((right - l) >= ASORT_THRESHOLD)
{
/* Right partition OK, left undersize */
left = l;
}
#undef ASORT_PREFIX
-#undef ASORT_TYPE
+#undef ASORT_KEY_TYPE
#undef ASORT_ELT
-#undef ASORT_EQ
+#undef ASORT_LT
#undef ASORT_SWAP
#undef ASORT_THRESHOLD
#undef ASORT_EXTRA_ARGS