Sun, 23 Nov 2025 13:15:19 +0100
optimize sorted insertion by using the infimum instead of the supremum
The reason is that the supremum returns the equal element with the smallest index, and we want the largest.
Therefore, we use the infimum, which already gives us the largest index when there are equal elements, and increase the index by one. The infimum is also guaranteed to exist in that case.
| 1141 | 1 | # Memory Management |
|
1170
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
2 | |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
3 | With the `CxAllocator` interface UCX provides the possibility to use custom allocator functions for different purposes. |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
4 | Many UCX functions support the use of specialized allocators or provide a second function suffixed with `_a`. |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
5 | |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
6 | For convenience, functions that are not explicitly requesting an allocator - like e.g. `cx_strdup_a()` - also accept |
|
1318
12fa1d37fe48
allow changing the cxDefaultAllocator - resolves #669
Mike Becker <universe@uap-core.de>
parents:
1210
diff
changeset
|
7 | `NULL` as an allocator, in which case the [default allocator](allocator.h.md#default-allocator) is used. |
|
1170
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
8 | |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
9 | Additionally, UCX also provides a [memory pool](mempool.h.md) implementation of the allocator interface. |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
10 | |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
11 | > Although not part of the public API, UCX is also implementing the allocator interface |
|
49cc0bbea6a9
add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents:
1141
diff
changeset
|
12 | > in its own test suite: `CxTestingAllocator`. This allocator keeps track of memory allocations |
|
1210
2ad0cf0f314b
complete the printf documentation and fix code formatting
Mike Becker <universe@uap-core.de>
parents:
1170
diff
changeset
|
13 | > and deallocations with the goal to detect memory management errors. |