Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rleonid/oml
OCaml Math Library
https://github.com/rleonid/oml
Last synced: about 2 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 (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-02-01T20:13:56.000Z (over 6 years ago)
- Last Synced: 2024-03-20T16:59:26.323Z (6 months ago)
- Language: OCaml
- Size: 1.4 MB
- Stars: 119
- Watchers: 18
- Forks: 9
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
Awesome Lists containing this project
README
OCaml Math Library
------------------%%VERSION%%
[![Build Status](https://travis-ci.org/hammerlab/oml.svg?branch=master)](https://travis-ci.org/hammerlab/oml/)
[![Coverage Status](https://coveralls.io/repos/hammerlab/oml/badge.svg?branch=HEAD&service=github)](https://coveralls.io/github/hammerlab/oml?branch=HEAD)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](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_.