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.
<?xml version="1.0" encoding="UTF-8"?> <project version="0.4" xmlns="http://unixwork.de/uwproj"> <config> <var name="root_dir" exec="true">pwd</var> <var name="DOXYGEN" exec="true">command -v doxygen</var> </config> <dependency> <make> # library version VERSION=3.2.0 LIBVERSION=6.0.0 LIBVERSION_MAJOR=6 # build directory structure !! do not change or override !! root_dir=${root_dir} build_dir=${root_dir}/build docs_dir=${root_dir}/build/docs dist_dir=${root_dir}/dist </make> </dependency> <dependency> <make> MKDIR=/bin/mkdir -p RMFILE=/bin/rm -f RMDIR=/bin/rm -f -R COPYFILE=/bin/cp -f COPYALL=/bin/cp -f -R SYMLINK=/bin/ln -s </make> </dependency> <dependency platform="macos"> <lang>c</lang> <make> AR=ar ARFLAGS=r STLIB_EXT=.a SHLIB_EXT=.dylib SHLIB_LDFLAGS=-dynamiclib -current_version \$(LIBVERSION) -compatibility_version \$(LIBVERSION) INSTALL_LIB=\$(root_dir)/make/install-lib-macos.sh </make> </dependency> <dependency platform="unix" not="macos"> <lang>c</lang> <make> AR=ar ARFLAGS=cr STLIB_EXT=.a SHLIB_EXT=.so INSTALL_LIB=\$(root_dir)/make/install-lib.sh </make> </dependency> <dependency toolchain="gnuc" not="macos"> <make> SHLIB_LDFLAGS += -Wl,-soname,libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR) </make> </dependency> <dependency toolchain="suncc"> <make> SHLIB_LDFLAGS += -h libucx\$(SHLIB_EXT).\$(LIBVERSION_MAJOR) </make> </dependency> <dependency platform="solaris"> <ldflags>-lm</ldflags> </dependency> <dependency name="cxx"> <lang>cpp</lang> </dependency> <dependency name="doxygen"> <test>test -n "$DOXYGEN"</test> <make>DOXYGEN=$DOXYGEN</make> </dependency> <dependency name="coverage" toolchain="gcc"> <cflags>\${COVERAGE_CFLAGS}</cflags> <ldflags>\${COVERAGE_LDFLAGS}</ldflags> <test>command -v gcovr</test> </dependency> <dependency name="asan" toolchain="gnuc"> <cflags>-fsanitize=address</cflags> <ldflags>-fsanitize=address</ldflags> </dependency> <dependency name="no_coverage"> <test>test -z "$FEATURE_COVERAGE"</test> </dependency> <dependency name="memrchr"> <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null make/test_memrchr.c</test> <cflags>-DWITH_MEMRCHR</cflags> </dependency> <dependency name="memrchr"> <test>$TOOLCHAIN_CC $CFLAGS -o /dev/null -D_GNU_SOURCE make/test_memrchr.c</test> <cflags>-DWITH_MEMRCHR -DMEMRCHR_NEED_GNU</cflags> </dependency> <target> <feature name="api-docs"> <dependencies>doxygen</dependencies> <desc>run Doxygen during build</desc> <make> # Documentation WITH_API_DOCS=yes </make> </feature> <feature name="coverage"> <desc>test coverage with gcov</desc> <dependencies>coverage</dependencies> </feature> <feature name="asan"> <desc>address sanitizer</desc> <dependencies>asan</dependencies> </feature> <feature name="memrchr" default="true"> <dependencies>memrchr</dependencies> </feature> <feature name="cxx-tests" default="true"> <dependencies>cxx</dependencies> <desc>the check-cxx makefile target</desc> <make> # Enable the check-cxx target WITH_CXX_TEST=yes </make> </feature> <feature name="szmul-builtin" default="true"> <dependencies>no_coverage</dependencies> <desc>use custom implementation, instead</desc> <disabled> <define name="CX_NO_SZMUL_BUILTIN"/> </disabled> </feature> </target> </project>