Lines Matching refs:cmp
92 static void sift(unsigned char *head, size_t width, cmpfun cmp, void *arg, int pshift, size_t lp[])
103 if(cmp(ar[0], lf, arg) >= 0 && cmp(ar[0], rt, arg) >= 0) {
106 if(cmp(lf, rt, arg) >= 0) {
119 static void trinkle(unsigned char *head, size_t width, cmpfun cmp, void *arg, size_t pp[2], int pshift, int trusty, size_t lp[])
134 if(cmp(stepson, ar[0], arg) <= 0) {
140 if(cmp(rt, stepson, arg) >= 0 || cmp(lf, stepson, arg) >= 0) {
154 sift(head, width, cmp, arg, pshift, lp);
158 void __qsort_r(void *base, size_t nel, size_t width, cmpfun cmp, void *arg)
177 sift(head, width, cmp, arg, pshift, lp);
182 trinkle(head, width, cmp, arg, p, pshift, 0, lp);
184 sift(head, width, cmp, arg, pshift, lp);
200 trinkle(head, width, cmp, arg, p, pshift, 0, lp);
212 trinkle(head - lp[pshift] - width, width, cmp, arg, p, pshift + 1, 1, lp);
215 trinkle(head - width, width, cmp, arg, p, pshift, 1, lp);