35 #define min(a, b) (a) < (b) ? (a) : (b) 40 #define swapcode(TYPE, parmi, parmj, n) { \ 41 long i = (n) / sizeof (TYPE); \ 42 register TYPE *pi = (TYPE *) (parmi); \ 43 register TYPE *pj = (TYPE *) (parmj); \ 45 register TYPE t = *pi; \ 51 #define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \ 52 es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; 64 if (swaptype == 0) { \ 65 long t = *(long *)(a); \ 66 *(long *)(a) = *(long *)(b); \ 69 swapfunc(a, b, es, swaptype) 71 #define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) 73 #define CMP(x, y) (cmp((x), (y))) 75 static __inline
char *
78 return CMP(
a,
b) < 0 ?
95 char *
pa, *pb, *pc, *pd, *pl, *
pm, *
pn;
96 int swaptype, swap_cnt;
103 for (pl =
pm; pl > (
char *)
a &&
CMP(pl -
es, pl) > 0;
108 pm = (
char *)
a + (
n / 2) *
es;
111 pn = (
char *)
a + (
n - 1) *
es;
121 pa = pb = (
char *)
a +
es;
123 pc = pd = (
char *)
a + (
n - 1) *
es;
125 while (pb <= pc && (
r =
CMP(pb,
a)) <= 0) {
133 while (pb <= pc && (
r =
CMP(pc,
a)) >= 0) {
150 for (pl =
pm; pl > (
char *)
a &&
CMP(pl -
es, pl) > 0;
161 if ((
r = pb -
pa) >
es)
163 if ((
r = pd - pc) >
es) {
GLdouble GLdouble GLdouble r
static __inline void swapfunc(char *a, char *b, intptr_t n, int swaptype)
#define cmp(status, error)
#define swapcode(TYPE, parmi, parmj, n)
GLboolean GLboolean GLboolean b
static __inline char * med3(char *a, char *b, char *c, int(__cdecl *cmp)(const void *, const void *))
void __cdecl qsort(void *a, size_t n, size_t es, int(__cdecl *cmp)(const void *, const void *))
GLboolean GLboolean GLboolean GLboolean a