numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
numerical-collection-cpp

A collection of algorithms in numerical analysis implemented in C++.

GitLab Release C++ standard pipeline status pre-commit coverage report

Documentation

Repositories

Installation

This library can be used via vcpkg using following configurations:

  • Add a vcpkg registry https://gitlab.com/MusicScience37Projects/vcpkg-registry in vcpkg-configuration.json.

    Example:

    {
    "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
    "default-registry": {
    "kind": "git",
    "repository": "https://github.com/Microsoft/vcpkg",
    "baseline": "78b61582c9e093fda56a01ebb654be15a0033897"
    },
    "registries": [
    {
    "kind": "git",
    "repository": "https://gitlab.com/MusicScience37Projects/vcpkg-registry",
    "baseline": "f7fcc04f34f351a91796eaa0b386017e961a51b4",
    "packages": ["cpp-hash-tables", "numerical-collection-cpp"]
    }
    ]
    }
  • Add numerical-collection-cpp in vcpkg.json

    Example:

    {
    "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
    "dependencies": ["numerical-collection-cpp"]
    }

How to Build in the Repository

Dependencies

A development environment including dependencies can be created using Devcontainer of VSCode.

To build this repository, you will require following dependencies:

  • Python 3.12
    • You may want to use pyenv.
  • poetry
    • Required Python packages can be installed using poetry. Execute the command poetry install on this directory.
    • pre-commit will be installed via poetry, and used for some checks. Execute poetry run pre-commit install on this directory if you develop this library.
  • CMake
  • C++ 20 Compiler
    • Following compilers are tested in CI:
      • GCC 13
      • Clang 19
      • MSVC 19

Additionally, you will require following dependencies to build documentation.

  • Doxygen
  • Graphviz
  • PlantUML
    • Set PLANTUML_JAR_PATH environment variable to specify the place of plantuml.jar file.
  • Java runtime environment (JRE) for PlantUML.

Build commands

After installation of dependencies, execute the following commands to build:

  1. Start a shell of poetry.

    cd <this-directory>
    poetry install
    poetry shell
  2. Download vcpkg if you haven't already.

    git submodule update --init
  3. Build vcpkg.
    • On Windows:

      .\vcpkg\bootstrap-vcpkg.bat
    • On Linux:

      bash ./vcpkg/bootstrap-vcpkg.sh

  4. Configure.

    mkdir build
    cd build
    cmake .. -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake
  5. Optionally edit options.

    <some-editor> CMakeCache.txt
  6. Build.

    cmake --build .
  7. Optionally run tests.

    ctest

Profiling

This project uses gperftools for profiling. See documentation of profiler in gperftools for usage of the profiler.

License

This project is licensed under Apache License, Version 2.0.