Fri, 23 May 2025 12:44:24 +0200
make test-compile depend on both static and shared
the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build
1143
0559812df10c
assign proper names to the documentation topics
Mike Becker <universe@uap-core.de>
parents:
1142
diff
changeset
|
1 | # Compare Functions |
1141 | 2 | |
1167
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
3 | The `compare.h` header file contains a collection of compare functions for various primitive types. |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
4 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
5 | They come in two flavors: |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
6 | - prefixed with `cx_vcmp` they are taking the values directly as arguments |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
7 | - prefixed with `cx_cmp` the signature is designed to be compatible with the `cx_compare_func` function pointer type. |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
8 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
9 | ## Examples |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
10 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
11 | In the following example we use `cx_cmp_int32` as compare function for a `CxList` of `int32_t` values. |
1146
151c057faf7c
add marker to every incomplete page
Mike Becker <universe@uap-core.de>
parents:
1143
diff
changeset
|
12 | |
1167
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
13 | ```C |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
14 | CxList *list = cxArrayListCreate( |
1318
12fa1d37fe48
allow changing the cxDefaultAllocator - resolves #669
Mike Becker <universe@uap-core.de>
parents:
1174
diff
changeset
|
15 | cxDefaultAllocator, // use the default allocator |
1167
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
16 | cx_cmp_int32, // the compare function for the elements |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
17 | sizeof(int32_t), // the size of one element |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
18 | 256 // reseve space for 256 elements |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
19 | ); |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
20 | ``` |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
21 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
22 | In the next example we simply want to compare two `double` values with rounding tolerance. |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
23 | Note how the use of the `cx_vcmp` flavour makes it unnecessary to store the literal in a variable just to be able to take an address. |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
24 | ```C |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
25 | double x = ... |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
26 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
27 | if (0 == cx_vcmp(x, 47.11)) { |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
28 | // do something when equal (except tolerance) |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
29 | } |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
30 | ``` |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
31 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
32 | ## List of Functions |
1142
9437530176bc
add symbols that need documentation as TODOs
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
33 | |
1167
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
34 | ```C |
1174
ee473780cc0d
add missing documentation about what header to include
Mike Becker <universe@uap-core.de>
parents:
1167
diff
changeset
|
35 | #include <cx/compare.h> |
ee473780cc0d
add missing documentation about what header to include
Mike Becker <universe@uap-core.de>
parents:
1167
diff
changeset
|
36 | |
1167
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
37 | // Value Flavour |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
38 | cx_vcmp_double |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
39 | cx_vcmp_float |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
40 | cx_vcmp_int |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
41 | cx_vcmp_int16 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
42 | cx_vcmp_int32 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
43 | cx_vcmp_int64 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
44 | cx_vcmp_intptr |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
45 | cx_vcmp_longint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
46 | cx_vcmp_longlong |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
47 | cx_vcmp_uint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
48 | cx_vcmp_uint16 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
49 | cx_vcmp_uint32 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
50 | cx_vcmp_uint64 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
51 | cx_vcmp_uintptr |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
52 | cx_vcmp_ulongint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
53 | cx_vcmp_ulonglong |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
54 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
55 | // Pointer Flavour |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
56 | cx_cmp_double |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
57 | cx_cmp_float |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
58 | cx_cmp_int |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
59 | cx_cmp_int16 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
60 | cx_cmp_int32 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
61 | cx_cmp_int64 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
62 | cx_cmp_intptr |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
63 | cx_cmp_longint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
64 | cx_cmp_longlong |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
65 | cx_cmp_ptr |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
66 | cx_cmp_uint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
67 | cx_cmp_uint16 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
68 | cx_cmp_uint32 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
69 | cx_cmp_uint64 |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
70 | cx_cmp_uintptr |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
71 | cx_cmp_ulongint |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
72 | cx_cmp_ulonglong |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
73 | ``` |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
74 | |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
75 | <seealso> |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
76 | <category ref="apidoc"> |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
77 | <a href="https://ucx.sourceforge.io/api/compare_8h.html">compare.h</a> |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
78 | </category> |
feab7c1e80d4
add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents:
1146
diff
changeset
|
79 | </seealso> |