https://github.com/rleonid/oml
OCaml Math Library
https://github.com/rleonid/oml
Last synced: 9 months ago
JSON representation
OCaml Math Library
- Host: GitHub
- URL: https://github.com/rleonid/oml
- Owner: rleonid
- License: apache-2.0
- Created: 2015-03-12T22:02:26.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2018-02-01T20:13:56.000Z (almost 8 years ago)
- Last Synced: 2025-04-15T21:48:03.205Z (9 months ago)
- Language: OCaml
- Size: 1.4 MB
- Stars: 120
- Watchers: 17
- Forks: 9
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-machine-learning - Oml - A general statistics and machine learning library. (OCaml / General-Purpose Machine Learning)
- awesome-machine-learning - Oml - A general statistics and machine learning library. (OCaml / General-Purpose Machine Learning)
- fucking-awesome-machine-learning - Oml - A general statistics and machine learning library. (OCaml / General-Purpose Machine Learning)
- awesome-machine-learning - Oml - A general statistics and machine learning library. (OCaml / General-Purpose Machine Learning)
- awesome-machine-learning - Oml - A general statistics and machine learning library. (OCaml / General-Purpose Machine Learning)
README
OCaml Math Library
------------------
%%VERSION%%
[](https://travis-ci.org/hammerlab/oml/)
[](https://coveralls.io/github/hammerlab/oml?branch=HEAD)
[](https://gitter.im/hammerlab/oml?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
A collection of OCaml Math and Statistics functions.
The API is available [online](http://hammerlab.github.io/oml/index.html).
### Goals
1. Perform simple and sophisticated mathematical and statistical analysis
inside of (mostly) OCaml. Please see [Oml_full](#oml_full) section
for details.
2. 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.
3. 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.
4. Informative examples.
### Building
- `make setup` will `opam install` the necessary packages for
[Oml_full](#oml_full).
- `make build` will compile source.
- `make test` for tests.
- We use [Kaputt](http://kaputt.x9c.fr/) 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 in `ModuleName`,
ex `make TEST=Descriptive test`
- `make setup_test` will install packages necessary for testing.
- `make covered_test` for [Bisect_ppx](https://github.com/rleonid/bisect_ppx)
instrumented test coverage.
### Oml_full
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](https://github.com/mmottl/lacaml) for BLAS/LAPACK bindings.
- [LBFGS](https://github.com/Chris00/L-BFGS-ocaml) for bindings to LBFGS
optimization routines.
- [ocephes](https://github.com/rleonid/ocephes) for special functions.
And for testing:
- [Kaputt](http://kaputt.x9c.fr/) for testing.
- [Bisect_ppx](https://github.com/rleonid/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](https://github.com/hammerlab/oml/issues) (even for questions).
#### Guideline
"Favor readers over writers" and _Favor users over readers_.