ojAlgo-extensions

ojAlgo has zero dependencies, but through extensions it integrates with various third-party tools and libraries.

All extensions live in a single GitHub repository — ojAlgo-extensions. The individual extensions are submodules. Each module corresponds to a development project and build artifact. Typically each module has two dependencies — ojAlgo and one other.

Module Dependency
ojAlgo-commons-math3 Apache Commons Math
ojAlgo-clarabel4j clarabel4j
ojAlgo-cplex IBM ILOG CPLEX
ojAlgo-gurobi Gurobi
ojAlgo-hipparchus Hipparchus
ojAlgo-jfreechart JFreeChart
ojAlgo-joptimizer JOptimizer
ojAlgo-mosek MOSEK
ojAlgo-ortools Google OR-Tools
ojAlgo-rocksdb RocksDB
ojAlgo-yahoofinance Yahoo Finance API

The ojAlgo-extensions repository is private. The code is Open Source and the artifacts are available at Maven Central, but to get direct access to the code repository you need to be an ojAlgo sponsor. New versions of the artifacts are built on request — sponsorship is also required to make such a request.

ojAlgo-commons-math3

  • Convert, back and forth, between ojAlgo and commons-math matrices. Makes it easy to work with the two libraries interchangeably.
  • Make commons-math’s various (random number) distributions available as ojAlgo RandomNumber instances.
  • Use org.apache.commons.math3.optim.linear.SimplexSolver as a solver with ojAlgo’s ExpressionsBasedModel.
  • Drop-in replacement for org.apache.commons.math3.optim.linear.SimplexSolver based on ojAlgo’s LP solver.

ojAlgo-clarabel4j

  • Use Clarabel, via clarabel4j, as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-cplex

  • Use CPLEX as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-gurobi

  • Use Gurobi as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-hipparchus

Same feature set as ojAlgo-commons-math3. Hipparchus is a fork of Apache Commons Math.

ojAlgo-jfreechart

  • Standardised, simplified builders for charts commonly used (by Optimatika).
  • Integration with ojAlgo data structures, like time series, to simplify the creation of some charts.

ojAlgo-joptimizer

  • Use JOptimizer as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-mosek

  • Use MOSEK as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-ortools

  • Use Google’s OR-Tools as a solver with ojAlgo’s ExpressionsBasedModel.

ojAlgo-rocksdb

  • A RocksDB based Map implementation.

ojAlgo-yahoofinance

  • Download historical financial data from Yahoo Finance using the (unofficial) Yahoo Finance API. ojAlgo has equivalent functionality built in. Historically this has been broken at times, due to changes and restrictions at Yahoo. When ojAlgo’s built-in functionality breaks you may try whether this still works.