docs/Writerside/topics/compare.h.md

Thu, 06 Feb 2025 20:26:31 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 06 Feb 2025 20:26:31 +0100
branch
docs/3.1
changeset 1167
feab7c1e80d4
parent 1146
151c057faf7c
permissions
-rw-r--r--

add documentation for compare.h

relates to #451

1143
0559812df10c assign proper names to the documentation topics
Mike Becker <universe@uap-core.de>
parents: 1142
diff changeset
1 # Compare Functions
1141
a06a2d27c043 create new page structure
Mike Becker <universe@uap-core.de>
parents:
diff changeset
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(
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
15 cxDefaultAllocator, // use the default stdlib allocator
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
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
35 // Value Flavour
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
36 cx_vcmp_double
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
37 cx_vcmp_float
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
38 cx_vcmp_int
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
39 cx_vcmp_int16
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
40 cx_vcmp_int32
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
41 cx_vcmp_int64
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
42 cx_vcmp_intptr
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
43 cx_vcmp_longint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
44 cx_vcmp_longlong
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
45 cx_vcmp_uint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
46 cx_vcmp_uint16
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
47 cx_vcmp_uint32
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
48 cx_vcmp_uint64
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
49 cx_vcmp_uintptr
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
50 cx_vcmp_ulongint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
51 cx_vcmp_ulonglong
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
52
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
53 // Pointer Flavour
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
54 cx_cmp_double
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
55 cx_cmp_float
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
56 cx_cmp_int
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
57 cx_cmp_int16
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
58 cx_cmp_int32
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
59 cx_cmp_int64
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
60 cx_cmp_intptr
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
61 cx_cmp_longint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
62 cx_cmp_longlong
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
63 cx_cmp_ptr
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
64 cx_cmp_uint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
65 cx_cmp_uint16
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
66 cx_cmp_uint32
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
67 cx_cmp_uint64
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
68 cx_cmp_uintptr
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
69 cx_cmp_ulongint
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
70 cx_cmp_ulonglong
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
71 ```
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
72
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
73 <seealso>
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
74 <category ref="apidoc">
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
75 <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
76 </category>
feab7c1e80d4 add documentation for compare.h
Mike Becker <universe@uap-core.de>
parents: 1146
diff changeset
77 </seealso>

mercurial