Awesome
OCaml Math Library
%%VERSION%%
A collection of OCaml Math and Statistics functions. The API is available online.
Goals
- Perform simple and sophisticated mathematical and statistical analysis inside of (mostly) OCaml. Please see Oml_full section for details.
- Have a descriptive, simple, and typed approach to those algorithms.
- descriptive: what a function does should be easy to understand from the type and name.
- simple: don't worry about the corner cases of the algorithms, until you have to.
- typed: obviously.
- Well tested. There are a subtle dependency between
float
capabilities and these algorithms. The test suite aims to provide bounds as well as a benchmark for comparing algorithms. - Informative examples.
Building
make setup
willopam install
the necessary packages for Oml_full.make build
will compile source.make test
for tests. - We use Kaputt as the testing framework. Tests are found in*.mlt
files and are joined with their respective source files only when building a test target. -make TEST={ModuleName} test
will run the test inModuleName
, exmake TEST=Descriptive test
-make setup_test
will install packages necessary for testing.make covered_test
for Bisect_ppx instrumented test coverage.
<a name="oml_full">Oml_full</a>
Oml_full is a superset of Oml that includes C
and/or Fortran
dependencies.
It is generally more useful and incorporates Oml
in a typed equivalent way.
The goal is to provide a flexible end-user target for those who don't need
C
dependent functionality.
Dependencies
For the "full" Oml package make setup
will opam install
these:
- Lacaml for BLAS/LAPACK bindings.
- LBFGS for bindings to LBFGS optimization routines.
- ocephes for special functions.
And for testing:
- Kaputt for testing.
- Bisect_ppx for code coverage.
Contributing
Anything within the problem domain is welcome.
Questions, Bugs, Issues
The best place to discuss Oml is within Github's issues (even for questions).
Guideline
"Favor readers over writers" and Favor users over readers.