src/compare.c

changeset 631
406376e64fd8
parent 601
95ba6014041b
child 650
77021e06b1a8
equal deleted inserted replaced
630:ac5e7f789048 631:406376e64fd8
159 } else { 159 } else {
160 return a < b ? -1 : 1; 160 return a < b ? -1 : 1;
161 } 161 }
162 } 162 }
163 163
164 int cx_cmp_double(void const *d1, void const *d2) { 164 int cx_cmp_double(
165 double a = *((const double*) d1); 165 void const *d1,
166 double b = *((const double*) d2); 166 void const *d2
167 ) {
168 double a = *((const double *) d1);
169 double b = *((const double *) d2);
167 if (fabs(a - b) < 1e-14) { 170 if (fabs(a - b) < 1e-14) {
168 return 0; 171 return 0;
169 } else { 172 } else {
170 return a < b ? -1 : 1; 173 return a < b ? -1 : 1;
171 } 174 }
172 } 175 }
173 176
174 int cx_cmp_ptr(void const *ptr1, void const *ptr2) { 177 int cx_cmp_intptr(
175 const intptr_t p1 = (const intptr_t) ptr1; 178 void const *ptr1,
176 const intptr_t p2 = (const intptr_t) ptr2; 179 void const *ptr2
180 ) {
181 intptr_t p1 = *(const intptr_t *) ptr1;
182 intptr_t p2 = *(const intptr_t *) ptr2;
177 if (p1 == p2) { 183 if (p1 == p2) {
178 return 0; 184 return 0;
179 } else { 185 } else {
180 return p1 < p2 ? -1 : 1; 186 return p1 < p2 ? -1 : 1;
181 } 187 }
182 } 188 }
189
190 int cx_cmp_uintptr(
191 void const *ptr1,
192 void const *ptr2
193 ) {
194 uintptr_t p1 = *(const uintptr_t *) ptr1;
195 uintptr_t p2 = *(const uintptr_t *) ptr2;
196 if (p1 == p2) {
197 return 0;
198 } else {
199 return p1 < p2 ? -1 : 1;
200 }
201 }
202

mercurial