A comprehensive OCaml library for mathematical and statistical analysis with typed, descriptive APIs.
Oml (OCaml Math Library) is a collection of mathematical and statistical functions designed for use within OCaml applications. It provides a pure OCaml core for self-contained analyses and an extended package (Oml_full) that integrates external C/Fortran dependencies for advanced capabilities like BLAS/LAPACK bindings and optimization routines.
OCaml developers and data scientists who need to perform mathematical or statistical computations within OCaml applications, ranging from simple analyses to sophisticated algorithms.
Developers choose Oml for its descriptive, typed API that prioritizes clarity and reliability, along with the flexibility of a pure OCaml core or enhanced performance via external dependencies in Oml_full.
OCaml Math Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Functions are designed to be understandable from their type signatures and names, as emphasized in the README's goals for clarity and simplicity.
Provides a self-contained set of math and statistics routines without external dependencies, ideal for lightweight or dependency-sensitive projects.
Integrates BLAS/LAPACK bindings through Lacaml, optimization routines via LBFGS, and special functions from ocephes, enabling advanced use cases like linear algebra and numerical optimization.
Uses Kaputt framework and Bisect_ppx for code coverage, ensuring reliability across floating-point edge cases, as highlighted in the testing section.
Oml_full requires installing external C/Fortran dependencies like Lacaml, LBFGS, and ocephes via opam, which can be more involved than pure OCaml installations.
Being OCaml-specific, it has a smaller user base and fewer third-party extensions compared to mainstream math libraries in Python or R, potentially limiting support and integrations.
Relies on CPU-bound libraries without native support for GPU acceleration or parallel computing, which might hinder performance for high-throughput numerical tasks.