Skip to content
Liang Wang edited this page Oct 9, 2016 · 34 revisions

What is the future plan of Owl?

Owl aims to be a general OCaml numerical library for scientific computing. The library focuses on the following perspective:

  • Dense matrix operations (90% completed)
  • Sparse matrix operations (70% completed)
  • Advanced mathematical functions (90% completed)
  • Advanced statistical functions (70% completed)
  • Linear algebra (30% completed)
  • Regression functions (30% completed)
  • Machine learning (10% completed)
  • Basic Plotting functions (20% completed)

As you can see, Owl is still in its infancy phase. I appreciate any comments and look forward to any help from anyone who want to contribute.

What are the specific TODOs?

There is a list of things (either well-defined or not) in my mind to push the project forward. Bold font marks the task I am currently working on.

  • Extensive tests on Dense matrix module to eliminate bugs.
  • Complete some missing functions in Sparse matrix module.
  • Make Sparse matrix module support "x.{i,j}" to access the elements.
  • Re-design Plot module to support more advanced functions such as subplot, multiple lines in one plot, and various types of plots.
  • Complete all the missing functions in Linalg module for dense matrices.
  • Automate the document generation using ocamldoc.
  • Make a docker image supporting GUI so Plot module can plot in X window.
  • Make Linalg module support sparse matrices.
  • Implement more optimisation algorithms in Optimise module: e.g., coordinate descent, proximal gradient, and etc.
  • Implement more machine learning algorithms (clustering, deep neural networks, and etc.), may introduce a new separate module in Owl.
  • Include a set of approximate algorithms in Owl as a separate module (e.g., approximate k-means, approximate k-nn, and etc.)
  • Improve the documentation and write a series of tutorials (posts) on how to use Owl.
  • Embed a small probabilistic programming language in Stats module.
  • whatever else helpful ...