Documentation

ojAlgo is documented three ways: the API reference on javadoc.io, the source itself, and the posts on this site. This page is the curated reading order through the posts — the ones that are still the best explanation of their topic, grouped so you can start where your problem is.

The example code behind every post is maintained — it is compiled and kept current with each ojAlgo release, so what you copy from a post works with the current version even where the surrounding prose reflects the version it was written for. All of it is collected on the Code Examples page.

Start here

  • Get started — the Maven dependency and where the source lives.
  • Questions, Complaints and Misconceptions — the recurring questions, answered properly. Read this before opening an issue.
  • Common Mistake — the most common way ojAlgo ends up slow: converting to and from double[][] instead of using its own data structures.
  • Changelog — what changed in every release.

Optimisation

Read the Mathematical Optimisation page first for what the solvers are and how ExpressionsBasedModel separates the model from the solver. Then:

Linear algebra

Read the Linear Algebra page first. Then:

Arrays, data and performance

Finance and machine learning

Everything else

The full archive has every post, and Code Examples has every example program. If something here is wrong or missing, Discussions is the place to say so.