This version primarily brings changes to the ojAlgo type system. ojAlgo is all about numbers and contains a lot of generic classes and interfaces to deal with various types of numbers. The most commonly used generic type parameter was:

<N extends Number>

but now that’s changed to:

<N extends Comparable<N>>

This is a change that touches almost every single code file in ojAlgo itself, but surprisingly little (if anything at all) needs to be changed in code that makes use of (delegates to) ojAlgo. Although the abstract java.lang.Number is not java.lang.Comparable all its subclasses are.

If you you’ve extended ojAlgo you may have to modify your code to match these changes, but if you simply delegate to ojAlgo you may not have to do anything at all.

float Support

With this release ojAlgo significantly expands its support for float. It now has support for matrices with float elements. This means a few (commonly used) classes have changed names:

PrimitiveDenseStore and PrimitiveMatrix

now needs to be replaced by

Primitive64Store or Primitive32Store and Primitive64Matrix or Primitive32Matrix

These are code change most users of of any previous version will have to make, but it’s a simple search-and-replace.

Complete change-log

There are a few additional changes and additions in v48. Check the ojAlgo change-log for a more complete list of what’s new!

All code examples have been updated to with the necessary changes.