| 87 | #define vecswap(a, b, n) if ((n) > 0) swapfunc((a), (b), (size_t)(n), swaptype) |
| 88 | |
| 89 | static inline char * |
| 90 | med3(char *a, char *b, char *c, |
| 91 | int (*cmp) (const void *, const void *)) |
| 92 | { |
| 93 | |
| 94 | return cmp(a, b) < 0 ? |
| 95 | (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) |
| 96 | :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c )); |
| 97 | } |
| 98 | |
| 99 | static void |
| 100 | _pqsort(void *a, size_t n, size_t es, |