
A Biblioteca Numérica de Composicional (CNL) é uma biblioteca C ++ de classes numéricas de precisão fixa que aprimora os números inteiros a fornecer tipos aritméticos mais seguros, simples e mais baratos. A documentação pode ser encontrada aqui. Você pode experimentar a CNL no Compiler Explorer aqui.
A CNL é particularmente adequada para:
A versão mais recente do CNL requer uma cadeia de ferramentas compatíveis com 20 compatíveis. (Versão 1.x suporta C ++ 11.) A CNL é continuamente testada nos seguintes sistemas:
Testado:
Testado:
Testado:
Scripts cmake são fornecidos.
mkdir build && cd build
cmake ..
cmake --build . --target install Nota: Você pode precisar de privilégios de usuário para instalar a biblioteca. Como alternativa, você pode instalar no diretório do usuário usando CMAKE_INSTALL_PREFIX :
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX:FILE=/home/username/someplace ..
cmake --build . --target installComo alternativa, a CNL é uma biblioteca somente para cabeçalho, para que você possa simplesmente apontar para o diretório de incluir
c++ -isystem /path/to/cnl/include -std=c++20 my_program.cppou até incluir o cabeçalho da raiz diretamente em seu código:
# include " /path/to/cnl/include/cnl/all.h "O conjunto de testes usa cmake e depende do teste do Google e do Google Benchmark. Testes de integração opcionais usam boost.multiprecision.
Conan pode ser usado para extrair dependências essenciais. Este exemplo assume o GCC, mas outros arquivos da cadeia de ferramentas são fornecidos:
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 ..... e depois configure, construir e executar testes de unidade:
conan build --configure --build --test .. Para executar benchmarks, use --options test=benchmark ...
conan install --build=missing --options test=benchmark ..Em seguida, configure e construa
conan build --configure --build ..e finalmente execute explicitamente para ver os resultados.
./test/benchmark/test-benchmarkA API é exposta através de cabeçalhos no diretório incluído. Adicione isso à sua lista de cabeçalho do sistema e inclua, por exemplo:
// to use a specific type:
# include < cnl/scaled_integer.h >
// or to include all CNL types:
# include < cnl/all.h > Exemplos de projetos usando a CNL:
Todo o feedback é muito apreciado.