Lines Matching refs:es
68 #define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \
69 es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
88 swapfunc(a, b, es, swaptype)
112 rk_qsort_r(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
116 rk_qsort(void *a, size_t n, size_t es, cmp_t *cmp)
124 loop: SWAPINIT(a, es);
127 for (pm = (char *)a + es; pm < (char *)a + n * es; pm += es)
129 pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
130 pl -= es)
131 swap(pl, pl - es);
134 pm = (char *)a + (n / 2) * es;
137 pn = (char *)a + (n - 1) * es;
139 d = (n / 8) * es;
147 pa = pb = (char *)a + es;
149 pc = pd = (char *)a + (n - 1) * es;
155 pa += es;
157 pb += es;
163 pd -= es;
165 pc -= es;
171 pb += es;
172 pc -= es;
175 for (pm = (char *)a + es; pm < (char *)a + n * es; pm += es)
177 pl > (char *)a && CMP(thunk, pl - es, pl) > 0;
178 pl -= es)
179 swap(pl, pl - es);
183 pn = (char *)a + n * es;
186 r = min(pd - pc, pn - pd - es);
188 if ((r = pb - pa) > es)
190 rk_qsort_r(a, r / es, es, thunk, cmp);
192 rk_qsort(a, r / es, es, cmp);
194 if ((r = pd - pc) > es) {
197 n = r / es;
200 /* rk_qsort(pn - r, r / es, es, cmp);*/