oj! Algorithms v49.1.0 Release Notes

Release Date: 2021-09-19 // over 2 years ago
  • ๐Ÿ”„ Changed

    org.ojalgo.matrix

    • Slight change in how shifting is done when calculating the EvD for non-symmetric. Not strictly a bug fix but this solved GitHub issue 366 (there is a chance this may introduce problems for other cases).

    org.ojalgo.optimisation

    • ๐Ÿ”จ The hierarchy of solver builders have been refactored. The most important change is that there are now 2 different LinearSolver builders โ€“ StandardBuilder and GeneralBuilder.
    • ๐Ÿšš Some very very small inequality parameters used to be removed (rounded to 0.0) when instantiating ConvexSolver. This is no longer done.
    • The ActiveSetSolver (ConvexSolver) no longer makes use of Lagrange multipliers obtained when finding an initial feasible solution (they're mostly 0.0 anyway).
    • ๐Ÿ”จ Refactoring to reduce copying (memory garbage) when initialising solvers
    • ๐Ÿ”„ Changed the default behaviour when Optimisation.Options.sparse is not set. If you don't set this the dense LinearSolver and the iterative ConvexSolver will be used.

    ๐Ÿ—„ Deprecated

    org.ojalgo.optimisation

    • ๐Ÿ”จ The solver builders have been refactored. All previous public constructors and factory methods are now deprecated. What you should do now is call ConvexSolver.newBuilder, LinearSolver.newStandardBuilder or LinearSolver.newGeneralBuilder. The only thing you absolutely have to change now is if you explicitly/directly called the LinearSolver.Builder constructor. That needs to be replaced by LinearSolver.StandardBuilder. Don't forget! The recommendation is to use ExpressionsBasedModel and let it instantiate the solvers for you. In that case you do not need to worry about any of these changes.