
Die Kompositionelle Numeric Library (CNL) ist eine C ++-Bibliothek mit numerischen Klassen mit fester Präzision, die Ganzzahlen für sicherere, einfachere, billigere arithmetische Typen verbessert. Dokumentation finden Sie hier. Hier können Sie CNL auf Compiler Explorer ausprobieren.
CNL ist besonders gut geeignet zu:
Die neueste Version von CNL erfordert eine C ++ 20-kompatible Werkzeugkette. (Version 1.x unterstützt C ++ 11.) CNL wird kontinuierlich auf den folgenden Systemen getestet:
Getestet:
Getestet:
Getestet:
CMAKE -Skripte werden bereitgestellt.
mkdir build && cd build
cmake ..
cmake --build . --target install Hinweis: Möglicherweise benötigen Sie Benutzerrechte, um die Bibliothek zu installieren. Alternativ können Sie mit CMAKE_INSTALL_PREFIX im Benutzerverzeichnis installieren:
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:FILE=/home/username/someplace ..
cmake --build . --target installAlternativ ist CNL eine Nur-Header-Bibliothek, sodass Sie einfach auf das inklusive Verzeichnis verweisen können
c++ -isystem /path/to/cnl/include -std=c++20 my_program.cppoder sogar den Root -Header direkt in Ihren Code eingeben:
# include " /path/to/cnl/include/cnl/all.h "Die Testsuite verwendet CMake und hängt von Google Test und Google Benchmark ab. Optionale Integrationstests Verwenden Sie Boost.multipRecision.
Conan kann verwendet werden, um wesentliche Abhängigkeiten zu ziehen. In diesem Beispiel wird GCC vorausgesetzt, aber andere Tool -Kettendateien werden bereitgestellt:
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 ..... und dann konfigurieren, erstellen und führen Sie Unit -Tests aus:
conan build --configure --build --test .. Um Benchmarks auszuführen, verwenden Sie --options test=benchmark ...
conan install --build=missing --options test=benchmark ..Dann konfigurieren und bauen
conan build --configure --build ..und schließlich ausdrücklich ausführen, um die Ergebnisse zu sehen.
./test/benchmark/test-benchmarkDie API wird durch Header im Include -Verzeichnis freigelegt. Fügen Sie dies Ihrer System -Header -Liste hinzu und geben Sie, z. B. ein.
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > Beispiele für Projekte mit CNL:
Alle Feedback wurden sehr geschätzt.