gslcpp is a header-only, modern C++-library intended to wrap all of the
GNU Scientific Library.
- v1.0 covers functions and types related to GSL's vector.
- v1.1 will cover multidimensional minimization.
- v1.2 will cover matrices and expand the capabilities of vectors by way of integration with Eigen.
- v1.3 will cover quadrature (numerical integration).
-
Code-Coverage after Running Unit-Tests
Every push to the repository causes a github-action to regenerate the github-pages site. The rule for this action is here.
The first release is done.
Next up will be support for multidimensional miminization.
A compiler for C++-17 or later is required to use gslcpp.
gslcppis a header-only library.- The only dependencies are Eigen and GSL.
- Because Eigen is also a header-only library, the requirements for linking are the same as those for GSL.
For v1.0, gslcpp assumes that the installed version of GSL is at least 2.7.
clang++ is required to build the unit-tests.
clang++-10or later is known to work.clang++is required because the build-system usesllvm-covfor coverage-analysis performed when running the unit-tests.
The unit-tests are built, run, and reported on for coverage by way of cmake.
- Makefile calls out near the top the default
clangandclang++. - Edit Makefile, if necessary, to specify a version.
- Note that, for coverage-analysis, the cmake-script requires that, if
specified, the version of
clang++must be provided by a numeric suffix (for example,clang++-12) on the name of the executable.
Makefile at the top is not a product of cmake. The default target
- generates a directory,
build, - invokes
cmaketherein, and - invokes the generated file,
build/Makefile- to build the tests for coverage-analysis,
- to run them, and
- to build the reports of coverage.
To get started, just run
make
at the top of the tree.
After that, products of the coverage-analysis end up in
docs/tests_cov-summary.txt,docs/tests_cov.txt, anddocs/tests_cov.html.
In order to build the documentation, one needs Doxygen. Either install the
package from the operating system, or build it from source in case one want a
version newer than that provided by the operating system.
In order to build Doxygen from source against, say, clang-12, one might
first, for example, do
apt install flex bison graphviz libclang12-dev
on a machine like Debian or Ubuntu.
After unpacking Doxygen's source and changing into a build-directory just
under the top-level of the source-tree, do
cmake -DClang_DIR:PATH=/usr/lib/cmake/clang-12 -Duse_libclang=YES -G "Unix Makefiles" ..
on a unix-like machine.
After Doxygen has been installed, one can then, from the top-level of
gslcpp's tree, do
make doc
After that, products of the Doxygen-build end up in the local copy under
docs/html.