{"id":19377226,"url":"https://github.com/acgetchell/cdt-plusplus","last_synced_at":"2025-04-07T06:11:48.662Z","repository":{"id":9729877,"uuid":"11688464","full_name":"acgetchell/CDT-plusplus","owner":"acgetchell","description":"Causal Dynamical Triangulations in C++ using CGAL","archived":false,"fork":false,"pushed_at":"2024-11-14T07:44:32.000Z","size":132853,"stargazers_count":63,"open_issues_count":3,"forks_count":25,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-03-31T05:05:21.497Z","etag":null,"topics":["causal-dynamical-triangulations","cgal-library","cpp","quantum-gravity"],"latest_commit_sha":null,"homepage":"https://www.adamgetchell.org/CDT-plusplus/index.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"lins05/slackbot","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acgetchell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-26T15:13:23.000Z","updated_at":"2025-03-01T04:55:06.000Z","dependencies_parsed_at":"2023-12-21T01:41:27.906Z","dependency_job_id":"3c98ef76-edc2-4710-856e-2c597bf9faa2","html_url":"https://github.com/acgetchell/CDT-plusplus","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgetchell%2FCDT-plusplus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgetchell%2FCDT-plusplus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgetchell%2FCDT-plusplus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgetchell%2FCDT-plusplus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acgetchell","download_url":"https://codeload.github.com/acgetchell/CDT-plusplus/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["causal-dynamical-triangulations","cgal-library","cpp","quantum-gravity"],"created_at":"2024-11-10T08:47:04.254Z","updated_at":"2025-04-07T06:11:48.639Z","avatar_url":"https://github.com/acgetchell.png","language":"C++","readme":"# CDT-plusplus\n**Quantize spacetime on your laptop.**\n\n[![Linux Clang](https://github.com/acgetchell/CDT-plusplus/actions/workflows/linux-clang.yml/badge.svg)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/linux-clang.yml)\n[![Linux GCC](https://github.com/acgetchell/CDT-plusplus/actions/workflows/linux-gcc.yml/badge.svg)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/linux-gcc.yml)\n[![macOS](https://github.com/acgetchell/CDT-plusplus/actions/workflows/macos.yml/badge.svg)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/macos.yml)\n[![Build status](https://ci.appveyor.com/api/projects/status/qjvbk6u86sp6cm59?svg=true\u0026passingText=Windows)](https://ci.appveyor.com/project/acgetchell/cdt-plusplus)\n[![CodeQL](https://github.com/acgetchell/CDT-plusplus/actions/workflows/codeql-analysis.yml/badge.svg?branch=develop)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/codeql-analysis.yml)\n[![codecov](https://codecov.io/gh/acgetchell/CDT-plusplus/branch/develop/graph/badge.svg)](https://codecov.io/gh/acgetchell/CDT-plusplus)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=acgetchell_CDT-plusplus\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=acgetchell_CDT-plusplus)\n[![cpp-linter](https://github.com/acgetchell/CDT-plusplus/actions/workflows/cpp-linter.yml/badge.svg)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/cpp-linter.yml)\n[![Whitespace](https://github.com/acgetchell/CDT-plusplus/actions/workflows/whitespace.yml/badge.svg)](https://github.com/acgetchell/CDT-plusplus/actions/workflows/whitespace.yml)\n[![Open Issues](https://img.shields.io/github/issues-raw/acgetchell/CDT-plusplus.svg)](https://github.com/acgetchell/CDT-plusplus/issues)\n[![Join the chat at https://gitter.im/acgetchell/CDT-plusplus](https://img.shields.io/badge/gitter-join%20chat%20→-brightgreen.svg)](https://gitter.im/acgetchell/CDT-plusplus)\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/acgetchell/CDT-plusplus)\n\n![Small foliated Delaunay triangulation](docs/images/S3-7-27528-I1-R1.png \"7 timeslices 27528 simplices\")\n\n## Table of contents\n\n- [CDT-plusplus](#cdt-plusplus)\n    - [Introduction](#introduction)\n    - [Roadmap](#roadmap)\n    - [Quickstart](#quickstart)\n    - [Setup](#setup)\n        - [Short](#short)\n        - [Long](#long)\n    - [Build](#build)\n        - [Project Layout](#project-layout)\n        - [Run](#run)\n    - [Usage](#usage)\n    - [Documentation](#documentation)\n    - [Testing](#testing)\n        - [Static Analysis](#static-analysis)\n        - [Sanitizers](#sanitizers)\n    - [Optimizing Parameters](#optimizing-parameters)\n    - [Visualization](#visualization)\n    - [Contributing](#contributing)\n    - [Issues](#issues)\n\n## Introduction\n\nFor an introduction to [Causal Dynamical Triangulations](https://github.com/acgetchell/CDT-plusplus/wiki),\nincluding the foundations and recent results, please see the [wiki](https://github.com/acgetchell/CDT-plusplus/wiki).\n\n[Causal Dynamical Triangulations][CDT] in [C++] uses the\n[Computational Geometry Algorithms Library][CGAL], [Boost], [TBB], and [Eigen].\nArbitrary-precision numbers and functions are by [MPFR] and [GMP].\n[Melissa E. O'Neill's Permuted Congruential Generators][PCG] library provides high-quality RNGs that pass L'Ecuyer's\n[TestU01] statistical tests.\n[doctest] provides [BDD]/[TDD].\n[vcpkg] provides library management and building.\n[Doxygen] provides automated document generation.\n[{fmt}] provides a safe and fast alternative to `iostream`.\n[spdlog] provides fast, multithreaded logging.\n[PVS-Studio] and [CodeQL] provide commercial-grade static analysis and security checks.\n[CometML] provides machine learning for model building.\n\n## Roadmap\n\n- [x] Cross-platform support on Linux, macOS (x64 \u0026 arm64), and Windows\n- [x] Cross-compiler support on gcc, clang, and MSVC\n- [x] Develop with [literate programming] using [Doxygen]\n- [x] [Efficient Pure Functional Programming in C++ Using Move Semantics][functional]\n- [x] Test using [CTest]\n- [x] Develop using Behavior-driven development ([BDD]) with [doctest]\n- [x] Continuous integration by [Travis-CI] on macOS and Linux with [gcc]/[Clang]\n- [x] Continuous integration by [AppVeyor] on Windows with [MSVC]\n- [x] Continuous integration by [Github Actions] on the leading edge\n- [x] 3D Simplex\n- [x] 3D Spherical triangulation\n- [x] 2+1 foliation\n- [x] S3 Bulk action\n- [x] 3D Ergodic moves\n- [x] High-quality Random Number Generation with M.E. O'Neill's [PCG] library\n- [x] Multithreading via [TBB]\n- [x] Automated code analysis with [LGTM]\n- [x] Build/debug with [Visual Studio 2019]\n- [x] Use [{fmt}] library (instead of `iostream`)\n- [x] Static code analysis with [PVS-Studio]\n- [x] 3D Metropolis algorithm\n- [x] Multithreaded logging with [spdlog]\n- [x] Visualization with [Qt]\n- [ ] Output via [HDF5]\n- [ ] 4D Simplex\n- [ ] 4D Spherical triangulation\n- [ ] 3+1 foliation\n- [ ] S4 Bulk action\n- [ ] 4D Ergodic moves\n- [ ] Initialize two masses\n- [ ] The shortest path algorithm\n- [ ] Einstein tensor\n- [ ] Complete test coverage\n- [ ] Complete documentation\n- [ ] Quantize Spacetime!\n\n## Quickstart\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/acgetchell/CDT-plusplus)\n\n## Setup\n\nThis project uses [CMake]+[Ninja] to build and [vcpkg] to manage C++ libraries. Using [C++20] features, it successfully\nbuilds with [AppleClang-14], [gcc-12], [clang-15], and [Visual Studio 2019].\n\n### Short\n\nIf you use [Docker]:\n\n```bash\ndocker pull acgetchell/cdt-plusplus\ndocker run -it --name cdt cdt-plusplus\n```\nBinaries will be in `/CDT-plusplus/build/src`.\nProceed to [Use](#usage).\n\n### Long\n\nOn macOS or Linux, you will first need to install some prerequisites using your favorite\npackage manager (e.g. [homebrew] or [apt]):\n\n- build-essential (Linux only)\n- automake\n- autoconf\n- autoconf-archive\n- libtool (macOS) or libtool-bin (Linux)\n- pkg-config\n- texinfo\n- yasm\n- ninja (macOS) or ninja-build (Linux)\n- pkg-config (macOS)\n\nNext, install [vcpkg]:\n\n```bash\ngit clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n./bootstrap-vcpkg.sh\n./vcpkg integrate install\n```\n\n[vcpkg] is then invoked by CMake in [vcpkg manifest] mode and install the project dependencies\nlisted in [vcpkg.json] into a local `vcpkg_installed` directory.\n\nProceed to [Build](#build).\n\n## Build\n\nYou'll need a reasonably modern compiler that supports [C++20] features.\n\nClone the repo:\n\n~~~\ngit clone https://github.com/acgetchell/CDT-plusplus.git\n~~~\n\nTo get [CMake] and the build scripts to run correctly, you'll need to set `$VCPKG_ROOT` to wherever you cloned\n[vcpkg], e.g.\n\n```bash\nexport VCPKG_ROOT=\"$HOME/vcpkg\"\n```\n\nThis will set the `CMAKE_TOOLCHAIN_FILE` option for [CMake].\n\nYou may also need to set `VCPKG_DEFAULT_TRIPLET` to your platform [triplet], e.g.\n\n```bash\nexport VCPKG_DEFAULT_TRIPLET=\"x64-linux\"\n```\n\nYou can optionally pre-build the project dependencies (100+ packages) by running at the top level of the project:\n\n```\nvcpkg install\n```\n\nAt this point, you can build via the scripts in `scripts`, which will build the project and install\nthe dependencies into `vcpkg_installed`.\n\n### Project Layout\n\nThe project is similar to [PitchFork Layout], as follows:\n\n- .github - GitHub specific settings\n- build - Ephemeral out-of-source build directory\n- cmake - Cmake configurations\n- docs - Documentation\n- external - Includes submodules of external projects (none so far, all using [vcpkg])\n- include - Header files\n- scripts - Build, test, and run scripts\n- src - Source files\n- tests - Unit tests\n\n### Run\nRun one of the following in `scripts`, depending on your operating system and environment:\n\n- No unit tests, `Release` mode - `fast-build.sh` or `fast-build.bat`\n- Unit tests, `RelWithDebInfo` mode - `build.sh` or `build.bat`\n- On an HPC cluster with [SLURM], [modules], and [spack] - `slurm.sh`\n- Full debugging mode with asserts and tests, `debug.sh` (this will take some time, ~280 seconds on my current laptop)\n\nThis should result in the main program executable, `cdt` in `build/src` or `build\\Debug`,\nalong with several others.\n\n- `cdt-opt` is a simplified version with hard-coded inputs, mainly useful for debugging and scripting\n- `cdt-viewer` (macOS only) is a simple Qt-based viewer for the output of `cdt`\n- `initialize` is used by [CometML] to run [parameter optimization](#optimizing-parameters)\n\n## Usage\n\nCDT-plusplus uses [program_options] to parse options from the help message, and so\nunderstands long or short argument formats, provided the short argument given\nis an unambiguous match to a longer one. The help message should be instructive:\n\n~~~text\n./build/src/cdt --help\nCausal Dynamical Triangulations in C++ using CGAL.\n\nCopyright (c) 2013 Adam Getchell\n\nA program that generates d-dimensional triangulated spacetimes\nwith a defined causal structure and evolves them according\nto the Metropolis algorithm. Specify the number of passes to control\nhow much evolution is desired. Each pass attempts a number of ergodic\nmoves equal to the number of simplices in the simulation.\n\nUsage:./cdt (--spherical | --toroidal) -n SIMPLICES -t TIMESLICES\n            [-d DIM]\n            [--init INITIAL RADIUS]\n            [--foliate FOLIATION SPACING]\n            -k K\n            --alpha ALPHA\n            --lambda LAMBDA\n            [-p PASSES]\n            [-c CHECKPOINT]\n\nOptional arguments are in square brackets.\n\nExamples:\n./cdt --spherical -n 32000 -t 11 --alpha 0.6 -k 1.1 --lambda 0.1 --passes 1000\n./cdt -s -n32000 -t11 -a.6 -k1.1 -l.1 -p1000\n\nOptions:\n  -h [ --help ]                 Show this message\n  -v [ --version ]              Show program version\n  -s [ --spherical ]            Spherical topology\n  -e [ --toroidal ]             Toroidal topology\n  -n [ --simplices ] arg        Approximate number of simplices\n  -t [ --timeslices ] arg       Number of timeslices\n  -d [ --dimensions ] arg (=3)  Dimensionality\n  -i [ --init ] arg (=1)        Initial radius\n  -f [ --foliate ] arg (=1)     Foliation spacing\n  -a [ --alpha ] arg            Negative squared geodesic length of 1-d\n                                timelike edges\n  -k [ --k ] arg                K = 1/(8*pi*G_newton)\n  -l [ --lambda ] arg           K * Cosmological constant\n  -p [ --passes ] arg (=100)    Number of passes\n  -c [ --checkpoint ] arg (=10) Checkpoint every n passes\n~~~\n\nThe dimensionality of the spacetime is such that each slice of spacetime is\n`d-1`-dimensional, so setting `d=3` generates 2 spacelike dimensions and one\ntimelike dimension, with a defined global time foliation. A\n`d`-dimensional simplex will have some `d-1` sub-simplices that are purely\nspacelike (all on the same timeslice) as well as some that are timelike\n(span two timeslices). In [CDT] we actually care more about the timelike\nlinks (in 2+1 spacetime), and the timelike faces (in 3+1 spacetime).\n\n## Documentation\n\nOnline documentation is at \u003chttps://adamgetchell.org/CDT-plusplus/\u003e.\n\nIf you have [Doxygen] installed you can generate the same information\nlocally using the configuration file in `docs\\Doxyfile` by simply typing at the top\nlevel directory ([Doxygen] will recursively search):\n\n~~~bash\ndoxygen ./docs/Doxyfile\n~~~\n\nThis will generate a `docs/html/` directory containing\ndocumentation generated from CDT++ source files. `USE_MATHJAX` has been enabled\nin [Doxyfile] so that the LaTeX formulae can be rendered in the html\ndocumentation using [MathJax]. `HAVE_DOT` is set to **YES** which allows\nvarious graphs to be autogenerated by [Doxygen] using [GraphViz].\nIf you do not have GraphViz installed, set this option to **NO**\n(along with `UML_LOOK`).\n\n## Testing\n\nIn the `scripts` directory, run `build.sh` or `build.bat` depending on your operating system.\n\nUnit tests run (in `build/tests` or `build\\tests\\Debug`) via `CDT_unit_tests`, the [doctest] executable:\n\n~~~bash\n./CDT_unit_tests\n~~~\n\nor (Windows):\n\n~~~cmd\nCDT_unit_tests.exe\n~~~\n\nYou can also run both [CTest] integration and [doctest] unit tests in the `build` directory with:\n\n~~~bash\ncmake --build . --target test\n~~~\n\nor (Windows):\n\n~~~\nctest -C Debug\n~~~\n\nIn addition to the command line output, you can see detailed results in the\n`build/Testing` directory which is generated thereby.\n\nDeactivate Unit tests with `-D ENABLE_TESTING:BOOL=FALSE`, e.g. `scripts/fast-build.sh`.\n\n### Static Analysis\n\nThis project follows the [CppCore Guidelines][guidelines] as enforced by [ClangTidy], which you can install\nand then run using the [clang-tidy.sh] script:\n\n~~~bash\nsudo apt-get install clang-tidy\ncd scripts\n./clang-tidy.sh\n~~~\n\n(Or use your favorite linter plugin for your editor/IDE.)\n\nThe [cppcheck.sh] script runs a quick static analysis using [cppcheck].\n\n~~~bash\nbrew install cppcheck\ncd scripts\n./cppcheck-build.sh\n~~~\n\n[Clang] comes with [scan-build] which can run a much more thorough,\nbut slower static analysis integrated with [CMake] and [Ninja].\n\n~~~bash\ncd scripts\n./scan.sh\n~~~\n\n[PVS-Studio] - static analyzer for C, C++, C#, and Java code.\n\n~~~bash\ncd scripts\n./pvs-studio.sh\n~~~\n\n### Sanitizers\n\n[AddressSanitizer] + [UndefinedBehaviorSanitizer], [LeakSanitizer], [MemorySanitizer],\nand [ThreadSanitizer] are run with `scripts/asan.sh`, `scripts/lsan.sh`, `scripts/msan.sh`,\nand `scripts/tsan.sh`. They are also checked by [Travis-CI] during commits.\n\n## Optimizing Parameters\n\n[CometML] is used to record [Experiments] which conduct [Model Optimization]. The script to do\nthis is `optimize-initialize.py`. In order for this to work, you must install the following\ninto your Python [virtual environment].\n\n~~~bash\npip install tensorflow\npip install comet-ml\n~~~\n\nYou can then run experiments and look at results on https://www.comet.ml!\n\n## Visualization\n\n[Qt] is used to visualize 3D triangulations via `cdt-viewer`.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md] and our [CODE_OF_CONDUCT.md].\n\nYour code should pass Continuous Integration:\n\n- Whitespace formatting (`git diff --check HEAD^`)\n\n- [clang-format] with project settings ([.clang-format])\n\n- [cppcheck] test with [cppcheck.sh]\n\n- [Valgrind] be sure to look at the results to ensure you're not leaking memory\n\n- [AddressSanitizer] and [UndefinedBehaviorSanitizer]; test with [asan.sh]\n\n- [LeakSanitizer] (if supported by your platform); test with [lsan.sh]\n\n- [MemorySanitizer] (if supported by your platform); test with [msan.sh]\n\n- [ThreadSanitizer] test with [tsan.sh]\n\n- [Sonarcloud] provides a lot of good suggestions.\n\nOptional:\n\n- [ClangTidy] on all changed files\n\n- [PVS-Studio] using [pvs-studio.sh] if you have it installed\n\n## Issues\n\n- [vcpkg]'s version of [date] has an unfixed bug [#23637] which produces `use-of-uninitialized-value` in [MemorySanitizer].\n- [vcpkg] has issues with `fontconfig:arm64-osx` [#40623].\n\n[#40623]: https://github.com/microsoft/vcpkg/issues/40623\n[#23637]: https://github.com/microsoft/vcpkg/issues/23637\n[CDT]: https://arxiv.org/abs/hep-th/0105267\n[CGAL]: https://www.cgal.org\n[CMake]: https://www.cmake.org\n[Clang]: https://clang.llvm.org\n[gcc]: https://gcc.gnu.org/\n[doctest]: https://github.com/doctest/doctest\n[guidelines]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines\n[clang-tidy.sh]: https://github.com/acgetchell/CDT-plusplus/blob/master/clang-tidy.sh\n[CTest]: https://gitlab.kitware.com/cmake/community/wikis/doc/ctest/Testing-With-CTest\n[Travis-CI]: https://travis-ci.com/getting_started\n[literate programming]: http://www.literateprogramming.com\n[Doxygen]: http://www.doxygen.org\n[Homebrew]: https://brew.sh\n[Ninja]: https://ninja-build.org\n[program_options]: https://www.boost.org/doc/libs/1_85_0/doc/html/program_options/tutorial.html\n[Mathjax]: https://www.mathjax.org\n[GraphViz]: https://www.graphviz.org\n[Eigen]: http://eigen.tuxfamily.org/index.php?title=Main_Page\n[CMakeLists.txt]: https://github.com/acgetchell/CDT-plusplus/blob/master/CMakeLists.txt\n[MPFR]: https://www.mpfr.org\n[GMP]: https://gmplib.org\n[HDF5]: https://www.hdfgroup.org\n[scan-build]: https://clang-analyzer.llvm.org/scan-build.html\n[scan.sh]: https://github.com/acgetchell/CDT-plusplus/blob/master/scan.sh\n[cppcheck]: http://cppcheck.sourceforge.net\n[cppcheck.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/cppcheck.sh\n[functional]: https://blog.knatten.org/2012/11/02/efficient-pure-functional-programming-in-c-using-move-semantics/\n[TBB]: https://www.threadingbuildingblocks.org\n[CDT++]: https://github.com/acgetchell/CDT-plusplus\n[.travis.yml]: https://github.com/acgetchell/CDT-plusplus/blob/master/.travis.yml\n[Doxyfile]: https://github.com/acgetchell/CDT-plusplus/blob/master/Doxyfile\n[Boost]: https://www.boost.org\n[contrib]: https://github.com/acgetchell/CDT-plusplus/blob/master/CONTRIBUTING.md\n[ClangTidy]: https://releases.llvm.org/6.0.1/tools/clang/tools/extra/docs/clang-tidy/index.html\n[Valgrind]: http://valgrind.org/docs/manual/quick-start.html#quick-start.mcrun\n[conduct]: https://github.com/acgetchell/CDT-plusplus/blob/master/CODE_OF_CONDUCT.md\n[date]: https://howardhinnant.github.io/date/date.html\n[AppVeyor]: https://www.appveyor.com\n[BDD]: https://en.wikipedia.org/wiki/Behavior-driven_development\n[TDD]: https://en.wikipedia.org/wiki/Test-driven_development\n[.appveyor.yml]: https://github.com/acgetchell/CDT-plusplus/blob/master/.appveyor.yml\n[CometML]: https://www.comet.ml/\n[Experiments]: https://www.comet.ml/acgetchell/cdt-plusplus\n[Model Optimization]: https://www.comet.ml/parameter-optimization\n[virtual environment]: https://docs.python.org/3/tutorial/venv.html\n[vcpkg]: https://github.com/Microsoft/vcpkg\n[clang-15]: https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html\n[gcc-12]: https://gcc.gnu.org/gcc-12/\n[C++]: https://isocpp.org/\n[C++20]: https://en.cppreference.com/w/cpp/20\n[development]: https://github.com/acgetchell/CDT-plusplus\n[Pitchfork Layout]: https://api.csswg.org/bikeshed/?force=1\u0026url=https://raw.githubusercontent.com/vector-of-bool/pitchfork/develop/data/spec.bs#tld.docs\n[PCG]: http://www.pcg-random.org/paper.html\n[TestU01]: http://simul.iro.umontreal.ca/testu01/tu01.html\n[apt]: https://wiki.debian.org/Apt\n[ms-gsl]: https://github.com/microsoft/GSL\n[yasm-tool:x86-windows]: https://github.com/microsoft/vcpkg/issues/15956#issuecomment-782370823\n[MSVC]: https://docs.microsoft.com/en-us/cpp/build/reference/compiling-a-c-cpp-program?view=vs-2019\n[m4]: https://www.gnu.org/software/m4/\n[1]: https://github.com/microsoft/vcpkg/issues/9082\n[2]: https://github.com/microsoft/vcpkg/issues/9087\n[3]: https://github.com/microsoft/vcpkg/issues/8627\n[CONTRIBUTING.md]: https://github.com/acgetchell/CDT-plusplus/blob/develop/.github/CONTRIBUTING.md\n[CODE_OF_CONDUCT.md]: https://github.com/acgetchell/CDT-plusplus/blob/develop/.github/CODE_OF_CONDUCT.md\n[Github Actions]: https://github.com/features/actions\n[Visual Studio 2019]: https://visualstudio.microsoft.com/vs/\n[{fmt}]: https://github.com/fmtlib/fmt\n[AddressSanitizer]: https://github.com/google/sanitizers/wiki/AddressSanitizer\n[LeakSanitizer]: https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer\n[ThreadSanitizer]: https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual\n[MemorySanitizer]: https://github.com/google/sanitizers/wiki/MemorySanitizer\n[UndefinedBehaviorSanitizer]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\n[clang-format]: https://releases.llvm.org/10.0.0/tools/clang/docs/ReleaseNotes.html#clang-format\n[.clang-format]: https://github.com/acgetchell/CDT-plusplus/blob/develop/.clang-format\n[asan.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/asan.sh\n[lsan.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/lsan.sh\n[msan.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/msan.sh\n[tsan.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/tsan.sh\n[PVS-Studio]: https://pvs-studio.com/en/pvs-studio/?utm_source=github\u0026utm_medium=organic\u0026utm_campaign=open_source\n[pvs-studio.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/scripts/pvs-studio.sh\n[CLion]: https://www.jetbrains.com/clion/\n[Docker]: https://www.docker.com/\n[GitPod]: https://gitpod.io\n[vcpkg manifest]: https://github.com/microsoft/vcpkg/blob/master/docs/users/manifests.md\n[vcpkg.json]: https://github.com/acgetchell/CDT-plusplus/blob/develop/vcpkg.json\n[Sonarcloud]: https://sonarcloud.io/project/overview?id=acgetchell_CDT-plusplus\n[spdlog]: https://github.com/gabime/spdlog\n[triplet]: https://vcpkg.readthedocs.io/en/latest/users/triplets/#additional-remarks\n[AppleClang-14]: https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes\n[spack]: https://spack.io\n[modules]: https://hpc-wiki.info/hpc/Modules\n[SLURM]: https://hpc-wiki.info/hpc/SLURM\n[Qt]: https://www.qt.io\n[CodeQL]: https://codeql.github.com\n[CodeCov]: https://app.codecov.io/gh/acgetchell/CDT-plusplus\n[gcov]: https://gcc.gnu.org/onlinedocs/gcc/Gcov.html","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facgetchell%2Fcdt-plusplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facgetchell%2Fcdt-plusplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facgetchell%2Fcdt-plusplus/lists"}