
La biblioteca numérica compositiva (CNL) es una biblioteca C ++ de clases numéricas de precisión fija que mejoran los enteros para ofrecer tipos aritméticos más seguros, simples y más baratos. La documentación se puede encontrar aquí. Puede probar CNL en Compiler Explorer aquí.
CNL es particularmente adecuado para:
La última versión de CNL requiere una cadena de herramientas compatible con C ++ 20. (La versión 1.x admite C ++ 11.) CNL se prueba continuamente en los siguientes sistemas:
Probado:
Probado:
Probado:
Se proporcionan scripts CMake.
mkdir build && cd build
cmake ..
cmake --build . --target install Nota: Es posible que necesite privilegios de usuario para instalar la biblioteca. Alternativamente, puede instalar en el directorio de usuarios utilizando CMAKE_INSTALL_PREFIX :
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:FILE=/home/username/someplace ..
cmake --build . --target installAlternativamente, CNL es una biblioteca de solo encabezado, por lo que puede simplemente señalar el directorio de incluir
c++ -isystem /path/to/cnl/include -std=c++20 my_program.cppo incluso incluir el encabezado de la raíz directamente en su código:
# include " /path/to/cnl/include/cnl/all.h "La suite de prueba usa CMake y depende de Google Test y Google Benchmark. Las pruebas de integración opcionales usan boost.multiprecision.
Conan se puede usar para atraer dependencias esenciales. Este ejemplo asume GCC, pero se proporcionan otros archivos de cadena de herramientas:
cd build
conan profile new --detect --force default
conan profile update settings.compiler.libcxx=libstdc++11 default # GCC/Clang only
conan profile update env.CONAN_CMAKE_TOOLCHAIN_FILE=../test/toolchain/gcc.cmake default # GCC only
conan install --build=missing --options test=unit ..... y luego configurar, construir y ejecutar pruebas unitarias:
conan build --configure --build --test .. Para ejecutar puntos de referencia, use --options test=benchmark ...
conan install --build=missing --options test=benchmark ..luego configurar y construir
conan build --configure --build ..y finalmente ejecutar explícitamente para ver los resultados.
./test/benchmark/test-benchmarkLa API está expuesta a través de encabezados en el directorio de incluir. Agregue esto a la lista de encabezado de su sistema e incluya, por ejemplo:
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > Ejemplos de proyectos utilizando CNL:
Todos los comentarios se aprecian mucho.