oj! Algorithms v50.0.0 Release Notes

Release Date: 2022-01-02 // over 2 years ago
  • โž• Added

    org.ojalgo.matrix

    • ๐Ÿ†• New interface Provider2D with a set of nested functional interfaces defining matrix properties and operations.

    org.ojalgo.optimisation

    • ๐Ÿ“œ Possibility to read the QPS file format (QP related extensions to the MPS file format). More precisely added the ability to parse QUADOBJ and QMATRIX sections in "MPS" files.
    • โœ… A bunch of convex test cases from https://www.cuter.rl.ac.uk/Problems/marmes.shtml

    org.ojalgo.random

    • ๐Ÿ†• New FrequencyMap class as well as a factory method in SampleSet that counts occurrences of different values.

    org.ojalgo.structure

    • โž• Added a nonzeros() method to Access2D that returns a ElementView2D<N, ?>.

    ๐Ÿ”„ Changed

    org.ojalgo.function

    • The MIN and MAX BinaryFunction constants of ComplexMath and QuaternionMath are changed to align with the scalar's compareTo methods (that are also changed).

    org.ojalgo.matrix

    • MatrixStore now implements Structure2D.Logical directly. No need to call logical() to get a LogicalBuilder.
    • BasicMatrix now implements Structure2D.Logical as well as Operate2D directly. No need to call logical() to get a LogicalBuilder.
    • ๐Ÿ”จ A lot of refactoring among the package private code.

    org.ojalgo.optimisation

    • Minor change regarding LinearSolver pivot point selection.

    org.ojalgo.scalar

    • ComplexNumber and Quaternion had their compareTo methods changed to first just compare then real part and only if they're equal compare the imaginary parts.

    ๐Ÿ—„ Deprecated

    org.ojalgo.matrix

    • ๐Ÿ—„ The logical() method in MatrixStore is deprecated. No need for it as MatrixStore:s are now "logical".
    • ๐Ÿ—„ The logical() method in BasicMatrix is deprecated. No need for it as BasicMatrix:s are now "logical".

    ๐Ÿ›  Fixed

    org.ojalgo.matrix

    • ๐Ÿ›  Fixed rare multiplication problem when all involved matrices were RawStore instances and the left multiplcation matrix was a vector, but a column vector when a row vector was expected; in that case the multiplication code would fail.

    โœ‚ Removed

    org.ojalgo.matrix

    • ๐Ÿšš The MatrixStore.Factory interface has been removed. Corresponding functionality have instead been added to PhysicalStore.Factory. This also mean that the various static factory instances in MatrixStore have been removed. Instead use the instances available in each of the PhysicalStore instances.
    • ๐Ÿšš The MatrixStore.LogicalBuilder class has been removed. Instead MatrixStore now implements Structure2D.Logical directly. No need to call logical() to get a LogicalBuilder.
    • ๐Ÿšš The BasicMatrix.LogicalBuilder class has been removed...

    org.ojalgo.structure

    • ๐Ÿšš The Factory*D interfaces had their makeZero methods removed. These had been deprecated for while, and are now removed.
    • ๐Ÿšš The Structure*D.Logical interfaces had their get methods removed. Most implementors still have a get method. This is just to make it more flexible regarding what type is returned.