Owl is an OCaml library for scientific computing. It enables academic researchers to fast prototype machine learning algorithms and construct deep neural networks with very concise code. It also facilitates industry programmers to develop robust analytical applications using functional language at a large scale.
Currently, Owl supports N-dimensional arrays, both dense and sparse matrix operations, linear algebra, regressions, fast Fourier transforms, and many advanced mathematical and statistical functions (such as Markov chain Monte Carlo methods). Recently, Owl has also implemented algorithmic differentiation, on top of which we have been building a powerful deep neural network module. With its advanced underlying distributed computation engine, Owl is able to support distributed computing to take advantage of the computation power in a computer cluster.
Owl is under active development. It aims to provide a comprehensive set of advanced numerical functions to enable fast development of robust and efficient analytical applications.