Owl is built on top of an enormous amount of previous work. Without the efforts of these projects and the intellectual contribution of these people, it will be very difficult for us to continue developing Owl.
In designing and developing the various components in Owl, we have been studying many systems and keep learning from them. Here is a list to show the contributions from various individuals/projects/software. The credit goes to them.
Because Owl is always under active development, there might be a lag between the development code and the list here. In case you think there is something/someone missing in the list, please do contact me. I will try to make this list up-to-date.
-
Tremendous support and help from my colleagues in OCaml Labs.
-
The interface design are heavily influenced by Numpy, SciPy, Julia, Matlab.
-
The early versions heavily relied on Markus Mottl and Christophe Troestler's projects: Lacaml, Gsl. Even now, the pretty printing function of matrices still uses Markus' code.
-
Ben Catterall did excellent theoretical work for Owl's underlying distributed computation engine. He also contributed to the NLP module.
-
Interfacing to other C/C++ libraries (e.g., BLAS and Eigen) relies on Jeremy Yallop's ocaml-ctypes.
-
The plot module is built on top of Hezekiah M. Carty's project: ocmal-plplot.
-
The [Algodiff] module partly uses the design of DiffSharp by Atilim Gunes Baydin, Barak A. Pearlmutter, and et al., [techreport].
-
Sergei Lebedev and bagmanas have been contributing to various hypothesis test functions in Stats module.
-
Many functions rely on Eigen and its OCaml binding. The binding also contains some functions (e.g., convolution functions) from Google's Tensorflow.
-
Other projects which have been providing useful insights: Oml, pareto.