Owl Scientific Computing

With Owl, users can write succinct type-safe numerical applications in a concise functional language without sacrificing performance.

[6] Owl originated from a research project which studied the design of synchronous parallel machines for large-scale distributed computing in July 2016.

After one-year intensive development, Owl was capable of doing many complicated numerical tasks (e.g. image classification).

[8] To further promote OCaml and functional programming in data science, Owl provides abundant learning materials in the form of a details manual.

Compared to other numerical libraries, Owl is unique in many perspectives, e.g. algorithmic differentiation and distributed computing have been included as integral components in the core system to maximise developers' productivity.

The first is core modules contains basic data structures, i.e., N-dimensional array (Ndarray) in both dense and sparse forms.

Also, the core module provide foreign function interfaces to other low level numerical libraries, such as CBLAS and LAPACK.

This part contains basic mathematical and statistical functions, linear algebra, regression, optimisation, plotting, etc.

[14] Two talks are also accepted at the OCaml Workshop of the International Conference on Functional Programming 2019, on the topics of numerical ordinary differential equation solving,[15] and executing Owl computation on GPUs.

[16] An internship in the OCaml Labs investigates the topic of image segmentation and related memory optimisation in Owl.

The architecture of the Owl numerical library.