owlbarn/owl

Owl - OCaml Scientific Computing @ https://ocaml.xyz

What it solves

Owl is a comprehensive system for scientific and engineering computing designed for the OCaml language. It provides a powerful framework for researchers and industry programmers to write concise, fast, and safe analytical code for computation-intensive tasks.

How it works

Owl is built around the n-dimensional array (Ndarray), which serves as the core data structure for numerical computing. The system offers three types of Ndarray implementations:

  • Standard Ndarray: Built on OCaml and C functions/libraries for high performance.
  • Base system Ndarray: A pure OCaml implementation for daily use and normal computing.
  • CGraph-Ndarray: A symbolic style computing approach (similar to TensorFlow v1) that allows for the building and optimization of computation graphs.

These data structures support a wide range of advanced computing modules, including automatic differentiation, optimization, and neural networks.

Who it’s for

It is intended for researchers and industry programmers who use OCaml and need a tool for high-performance scientific computing, linear algebra, and deep learning.

Highlights

  • Broad Functionality: Includes mathematical functions, integration, statistics, probability, linear algebra, and ordinary differential equations.
  • Deep Learning Support: Provides tools for deep neural networks and natural language processing with optional computation graph optimization.
  • Signal Processing: Includes discrete Fourier Transform algorithms.
  • Analytical Tools: Supports algorithmic/automatic differentiation, regression algorithms, and dataframe processing.
  • Visualization: Integration with the external owl-plot package for data visualization.

Related

  • Project
  • Project
  • Project
  • Project
  • Project