src/compare.c

Sun, 22 Dec 2024 22:10:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 22 Dec 2024 22:10:04 +0100
changeset 1047
40aad3f0bc9e
parent 890
54565fd74e74
permissions
-rw-r--r--

don't trust that size_t always has word width

it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case

601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2021 Mike Becker, Olaf Wintermann All rights reserved.
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/compare.h"
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 #include <math.h>
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
33 int cx_cmp_int(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
34 int a = *((const int *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
35 int b = *((const int *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
40 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
41 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
43 int cx_cmp_longint(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
44 long int a = *((const long int *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
45 long int b = *((const long int *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
46 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
48 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
49 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
50 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
51 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
53 int cx_cmp_longlong(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
54 long long a = *((const long long *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
55 long long b = *((const long long *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
62
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
63 int cx_cmp_int16(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
64 int16_t a = *((const int16_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
65 int16_t b = *((const int16_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
66 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
67 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
70 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
73 int cx_cmp_int32(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
74 int32_t a = *((const int32_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
75 int32_t b = *((const int32_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
80 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
82
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
83 int cx_cmp_int64(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
84 int64_t a = *((const int64_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
85 int64_t b = *((const int64_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
89 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
90 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
91 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
92
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
93 int cx_cmp_uint(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
94 unsigned int a = *((const unsigned int *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
95 unsigned int b = *((const unsigned int *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
98 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
99 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
100 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
101 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
103 int cx_cmp_ulongint(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
104 unsigned long int a = *((const unsigned long int *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
105 unsigned long int b = *((const unsigned long int *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
106 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
113 int cx_cmp_ulonglong(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
114 unsigned long long a = *((const unsigned long long *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
115 unsigned long long b = *((const unsigned long long *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
117 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
119 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
120 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
121 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
122
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
123 int cx_cmp_uint16(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
124 uint16_t a = *((const uint16_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
125 uint16_t b = *((const uint16_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
130 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
132
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
133 int cx_cmp_uint32(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
134 uint32_t a = *((const uint32_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
135 uint32_t b = *((const uint32_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
136 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
137 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
138 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
139 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
141 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
142
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
143 int cx_cmp_uint64(const void *i1, const void *i2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
144 uint64_t a = *((const uint64_t *) i1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
145 uint64_t b = *((const uint64_t *) i2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
146 if (a == b) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
147 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
148 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
149 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
150 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
151 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
152
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
153 int cx_cmp_float(const void *f1, const void *f2) {
678
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
154 float a = *((const float *) f1);
78f943d76f50 reformat code
Mike Becker <universe@uap-core.de>
parents: 650
diff changeset
155 float b = *((const float *) f2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
156 if (fabsf(a - b) < 1e-6f) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
157 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
158 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
159 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
160 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
161 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
162
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
163 int cx_cmp_double(
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
164 const void *d1,
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
165 const void *d2
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
166 ) {
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
167 double a = *((const double *) d1);
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
168 double b = *((const double *) d2);
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
169 if (fabs(a - b) < 1e-14) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
170 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
171 } else {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
172 return a < b ? -1 : 1;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
173 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
174 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
175
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
176 int cx_cmp_intptr(
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
177 const void *ptr1,
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
178 const void *ptr2
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
179 ) {
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
180 intptr_t p1 = *(const intptr_t *) ptr1;
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
181 intptr_t p2 = *(const intptr_t *) ptr2;
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
182 if (p1 == p2) {
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
183 return 0;
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
184 } else {
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
185 return p1 < p2 ? -1 : 1;
601
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
186 }
95ba6014041b add compare functions
Mike Becker <universe@uap-core.de>
parents:
diff changeset
187 }
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
188
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
189 int cx_cmp_uintptr(
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
190 const void *ptr1,
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
191 const void *ptr2
631
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
192 ) {
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
193 uintptr_t p1 = *(const uintptr_t *) ptr1;
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
194 uintptr_t p2 = *(const uintptr_t *) ptr2;
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
195 if (p1 == p2) {
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
196 return 0;
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
197 } else {
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
198 return p1 < p2 ? -1 : 1;
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
199 }
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
200 }
406376e64fd8 tests for compare functions
Mike Becker <universe@uap-core.de>
parents: 601
diff changeset
201
762
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
202 int cx_cmp_ptr(
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
203 const void *ptr1,
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 762
diff changeset
204 const void *ptr2
762
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
205 ) {
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
206 uintptr_t p1 = (uintptr_t) ptr1;
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
207 uintptr_t p2 = (uintptr_t) ptr2;
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
208 if (p1 == p2) {
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
209 return 0;
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
210 } else {
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
211 return p1 < p2 ? -1 : 1;
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
212 }
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 678
diff changeset
213 }

mercurial