Source
Source code lives on github here
To clone from git:
git clone https://github.com/rconybea/xo-ratio
Implementation relies on c++20 features (expanded use of constexpr; class-instances as template arguments). Tested with gcc 13.2
Install
Since xo-ratio is header-only, can incorporate into another project just by copying the include directories to somewhere convenient.
Copy includes
# For example..
cd myproject
mkdir -p ext/xo-ratio
rsync -a -v path/to/xo-ratio/include/ ext/xo-ratio/
Include as git submodule
cd myproject
git submodule add -b main https://github.com/rconybea/xo-ratio ext/xo-ratio
git submodule update --init
This assumes you organize directly-incorporated dependencies under directory myproject/ext
.
You would then add myproject/ext/xo-ratio/include
to your compiler’s include path,
and from c++ do something like
#include <xo/ratio/ratio.hpp>
in c++ source files that rely on xo-ratio
Supported compilers
developed with gcc 13.2.0; github CI using gcc 11.4.0 (asof April 2024)
Building from source
Although the xo-ratio library is header-only, unit tests have some dependencies. Example instructions (github CI) for build starting from stock ubuntu are in ubuntu-main.yml
Unit test dependencies:
catch2 header-only unit-test framework
xo-cmake cmake macros
xo-indentlog logging with call-structure indenting
xo-randomgen fast random-number generator (xoshiro256ss)
To build documentation, will also need:
doxygen c++ documentation
graphviz graph drawing software, used by doxygen
sphinx documentation system, ReST (.rst) format
breathe use doxygen-generated ingredients in sphinx .rst files
sphinx_rtd_theme css for sphinx html output
Can install these