Lines Matching refs:cmp
84 med3(char *a, char *b, char *c, cmp_t *cmp)
86 return cmp(a, b) < 0 ?
87 (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a ))
88 :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
92 qsort(void *a, size_t n, size_t es, cmp_t *cmp)
110 for (pl = pm; pl > (char *)a && cmp(pl - es, pl) > 0;
121 pl = med3(pl, pl + d, pl + 2 * d, cmp);
122 pm = med3(pm - d, pm, pm + d, cmp);
123 pn = med3(pn - 2 * d, pn - d, pn, cmp);
125 pm = med3(pl, pm, pn, cmp);
132 while (pb <= pc && (r = cmp(pb, a)) <= 0) {
140 while (pb <= pc && (r = cmp(pc, a)) >= 0) {
157 for (pl = pm; pl > (char *)a && cmp(pl - es, pl) > 0;
169 qsort(a, r / es, es, cmp);
176 /* qsort(pn - r, r / es, es, cmp);*/