项目作者: tueda

项目描述 :
A C++11 header-only implementation of the TinyMT pseudo-random number generator.
高级语言: C++
项目地址: git://github.com/tueda/tinymt-cpp.git
创建时间: 2020-08-03T08:53:12Z
项目社区:https://github.com/tueda/tinymt-cpp

开源协议:BSD 3-Clause "New" or "Revised" License

下载


tinymt-cpp

CI
Documentation Status
Codecov
Language grade: C/C++

A C++11 header-only implementation of the
TinyMT
pseudo-random number generator.

tinymt-cpp is a one-header-file library written in C++11, which implements
a pseudo-random number generator engine based on the TinyMT algorithms. It can
be used in the same way as random number generators in the standard library and
combined with random number distributions.

Example

  1. #include <iostream>
  2. #include <tinymt/tinymt.h>
  3. int main() {
  4. tinymt::tinymt32 rng;
  5. std::cout << rng() << std::endl;
  6. std::cout << rng() << std::endl;
  7. return 0;
  8. }

Development

  1. # Prerequisites (including optional ones)
  2. brew install cmake doxygen gcc lcov llvm pre-commit
  3. # Pre-commit hooks.
  4. pre-commit install
  5. pre-commit install --hook-type commit-msg
  6. # Linters.
  7. pre-commit run --all-files
  8. # Tests.
  9. cmake -S . -B build/debug -DCMAKE_BUILD_TYPE=Debug
  10. cmake --build build/debug --target check
  11. # Documents.
  12. cmake -S . -B build/docs -DBUILD_TESTING=OFF
  13. cmake --build build/docs --target doc
  14. # Code coverage.
  15. cmake -S . -B build/coverage -DCMAKE_BUILD_TYPE=Debug -DUSE_CODE_COVERAGE=ON
  16. lcov -z -d build/coverage
  17. cmake --build build/coverage --target check
  18. lcov -c -d build/coverage -o build/coverage/coverage.info
  19. genhtml -o build/coverage/html build/coverage/coverage.info
  20. # Compiler sanitizers.
  21. cmake -S . -B build/sanitizer -DCMAKE_BUILD_TYPE=Debug -DUSE_SANITIZER=ON
  22. cmake --build build/sanitizer --target check
  23. # Clang-Tidy.
  24. cmake -S . -B build/clang-tidy -DCMAKE_BUILD_TYPE=Debug -DUSE_CLANG_TIDY=ON
  25. cmake --build build/clang-tidy --target check
  26. # Benchmarking.
  27. cmake -S . -B build/release -DCMAKE_BUILD_TYPE=Release -DBUILD_BENCHMARKING=ON
  28. cmake --build build/release --target bench

License

BSD-3-Clause

References