All Versions
46
Latest Version
Avg Release Cycle
41 days
Latest Release
92 days ago
Changelog History
Page 2
Changelog History
Page 2

v49.2.0 Changes
October 05, 2021๐ Changed
org.ojalgo.optimisation
 ๐ Changed what alternatives (method signatures) are available to copy and/or relax optimisation models. These are API (behaviour) breaking changes, but of features primarily used within ojAlgo (when writing test cases and such). If you've used methods named
copy
,relax
,snapshot
orsimplify
inExpressionsBasedModel
then be aware. Even if your code still compiles it may not do exactly what it did before.  ๐จ Refactoring of
ExpressionsBasedModel
primarily affecting how presolving deals with integer variables  increased the number of cases when integer rounding will actually occur.
๐ Fixed
org.ojalgo.optimisation
 ๐ Fixed problem with progress/debug logging of
IntegerSolver
. The node id and count were not correct. (Only an issue with log output.)
 ๐ Changed what alternatives (method signatures) are available to copy and/or relax optimisation models. These are API (behaviour) breaking changes, but of features primarily used within ojAlgo (when writing test cases and such). If you've used methods named

v49.1.0 Changes
September 19, 2021๐ Changed
org.ojalgo.matrix
 Slight change in how shifting is done when calculating the EvD for nonsymmetric. 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
andGeneralBuilder
.  ๐ 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
orLinearSolver.newGeneralBuilder
. The only thing you absolutely have to change now is if you explicitly/directly called theLinearSolver.Builder
constructor. That needs to be replaced byLinearSolver.StandardBuilder
. Don't forget! The recommendation is to useExpressionsBasedModel
and let it instantiate the solvers for you. In that case you do not need to worry about any of these changes.

v49.0.3 Changes
September 05, 2021๐ Changed
org.ojalgo.optimisation
 ๐ Changed how the ConvexSolver (with inequality constraints) finds a first feasible solution. It should be both faster and more resilient now.

v49.0.2 Changes
August 24, 2021๐ Changed
org.ojalgo.tensor
 ๐ Changed the TensorFactory API a bit. (This package contains new functionality that may see more changes before the API stabilizes.)
๐ Fixed
org.ojalgo.matrix
 Continued operations on a transposed
ElementsSupplier
in some cases reversed the transposition.

v49.0.1 Changes
August 11, 2021๐ Fixed
org.ojalgo.matrix
 ๐ Sparsesparse matrix multiplication didn't work for nonprimitive matrixes: https://github.com/optimatika/ojAlgo/issues/360

v49.0.0 Changes
August 07, 2021 ๐ Many things that have been deprecated for a while are now actually removed. Not all are mentioned specifically below.
โ Added
org.ojalgo.ann
 Now possible to train and invoke/evaluate neural networks in batches.
org.ojalgo.array
Array2D
andArrayAnyD
are now reshapable
org.ojalgo.concurrent
 โ Additions to
DaemonPoolExecutor
: AThreadFactory
factory method, as well as a set ofExecutorService
factory methods that makes use of that.  ๐ New utility
ProcessingService
standardise/simplify someExecutorService
usage.
org.ojalgo.data
 ๐ New
DataBatch
class. It's a resuable component to help collect 1D data in a 2D structure. Can be used with neural networks (and other things) to batch data.
org.ojalgo.matrix
 ๐ New interface
Matrix2D
common to bothBasicMatrix
(implements it) andMatrixStore
(extends it).  โ Additional matrix multiplication variants implemented.
org.ojalgo.structure
 A few additions to
Structure2D.Logical
likesymmetric(...)
andsuperimpose(...)
 ๐ New interface
Structure2D.Reshapable
andStructureAnyD.Reshapable
AccessAnyD
is now vectorterable in the same way it was already matrixiterable โ it now has a methodvectors()
and there is a new utility classVectorView
.Structure2D
now directlty define theint
valuedgetRowDim()
,getColDim()
,getMinDim()
andgetMaxDim()
methods.
org.ojalgo.tensor
 ๐ฆ This package existed before but didn't really contain anything functional/useful โ now it does. Now it contains 1D, 2D, and AnyD tensor implementations. These are not just (multi dimensional) arrays, but mathematical tensors as used by physicists and engineers. They are instatiated via special factories that implement various tensor products and direct sums. Further these factories are implemented as wrappers of (they delegate to) other 1D, 2D or AnyD factories. This means that just about any other data structure in ojAlgo can be created using the tensor product or direct sum implemenatations of these factories.
๐ Changed
org.ojalgo.ann
 ๐ Internal refactoring to
ArtificialNeuralNetwork
primarily to improve performance.  ๐ The activator RECTIFIER has been deprecated/renamed RELU which is more in line with what users expect.
org.ojalgo.concurrent
 ๐ Changed the
Parallelism
enum. Changed which instances are available but increased flexibility by implemention the newParallelismSupplier
interface.
org.ojalgo.matrix
ElementsSupplier
no longer extendsSupplier<MatrixStore<N>>
and no longer defines the methodPhysicalStore.Factory<N, ?> physical()
. Instead subinterfaces/implementors define corresponding functionality as needed. ๐ According to the docs
ShadingStore
:s (LogicalStore
:s that shade some elements) are not allowed to alter the size/shape of the matrix they shade, but several implementations did that anyway. This is now corrected. Some matrix decomposition implementations relied on that faulty behaviour when constructing various component matrices. That had to be changed as well.  ๐ Changed, retuned, the matrix multiplication concurrency thresholds.
org.ojalgo.structure
 The nested interfaces
Mutate1D.ModifiableReceiver
,Mutate2D.ModifiableReceiver
andMutateAnyD.ModifiableReceiver
now also extendAccess*D
which makes them aligned with the requirements of theTransformation*D
interfaces.
๐ Fixed
org.ojalgo.ann
 Some
ArtificialNeuralNetwork
input would cause matrix calculation problems. The input is typed asAccess1D<Double>
which essentially means any ojAlgo data structure. In the case where the actual/specific type used mached the internal types, but with wrong shape (transposed), there would be matrix multiplication problems. This no longer happens.
โ Removed
org.ojalgo.function
 ๐
FunctionUtils
, that only contained deprecated (moved) utility functions, has been deleted.
org.ojalgo.matrix
 ๐จ The entire package
org.ojalgo.matrix.geometry
has been removed. Not deprecated, removed directly. It was never finished, not tested, and now it was in the way of refactoring other matrix stuff. Anything it did can just as well be done with the normal matrix classes.  ๐
MatrixUtils
, that only contained deprecated (moved) utility functions, has been deleted.
org.ojalgo.random
 ๐
RandomUtils
, that only contained deprecated (moved) utility functions, has been deleted.
org.ojalgo.structure
 ๐ The interfaces
Stream*D
have been removed โ they were redundant. TheOperate*D
interfaces replace them.

v48.4.2 Changes
April 22, 2021โ Added
org.ojalgo.function
 โ Additional default methods for primitive arguments
๐ Deprecated
org.ojalgo.structure
 ๐ The various
operateOn*(...)
methods have been deprecated and replaced by simplyon*(...)
๐ Fixed
org.ojalgo.matrix
 ๐ Fixed bug in LowerTriangularStore and UpperTriangularStore regarding shape/range information: https://github.com/optimatika/ojAlgo/issues/330
 ๐ Fixed problem regarding extraction of the Q and R matrices from QR decomposition for fat matrices. (One of the QR decomposition implementations had this problem.)

v48.4.1 Changes
March 18, 2021โ Added
 โ Added (moved here) JMH benchmarks
๐ Changed
 Project layout change to match standard Maven
 โก๏ธ Update copyright statement to cover 2021
๐ Fixed
org.ojalgo.optimisation
 ExpressionsBasedModel now calls
dispose
on solvers it created, when done  โ
Optimisation model on file, for test, are now loaded using
getResourceAsStream
which makes it easier to access these from the ojAlgotest jar

v48.4.0 Changes
December 27, 2020โ Added
org.ojalgo.optimisation
 ๐ Better support for building optimisation model with primitive valued parameters  overloaded methods for
long
anddouble
values.  Various minor additions and changes.
๐ Changed
org.ojalgo.optimisation
 ๐ Changed the default mip_gap from 1E4 to 1E6
 โก๏ธ Major rewrite/update to the presolver functionality of
ExpressionsBasedModel
which greatly affects theIntegerSolver
.
org.ojalgo.structure
 ๐ The
add
methods of theMutate1D
,Mutate2D
andMutateAnyD
interfaces have been moved toMutate1D.Modifiable
,Mutate2D.Modifiable
andMutateAnyD.Modifiable
respectively. With most hgher level interfaces or implemenattions this makes no difference as they typically extend or implement both these interfaces.  In
Access1D
theaxpy
method had an element of its signture (one of the input parameters) changed fromMutate1D
toMutate1D.Modifiable<?>
.
๐ Deprecated
org.ojalgo.equation
 The public constructors of
Equation
are replaced by various factory methods.
โ Removed
org.ojalgo.array
 ๐ The
NumberList
class had theadd
methods (the ones with along
index parameter) previously specified in theMutate1D
removed.
org.ojalgo.type
 ๐ The
IndexedMap
class had theadd
methods previously specified in theMutate1D
removed.
 ๐ Better support for building optimisation model with primitive valued parameters  overloaded methods for

v48.3.2 Changes
December 05, 2020โ Added
org.ojalgo.concurrent
 ๐ New set of standard levels of parallelism defined in enum Parallelism.
org.ojalgo.function
 โ Additions to PowerOf2 utilities
๐ Changed
org.ojalgo.matrix
 ๐ Improved the copying to internal representation for iterative equation system solvers (IterativeSolverTask).
org.ojalgo.netio
 Password now encrypts using SHA512 rather than MD5 (existing passwords need to be reset)
org.ojalgo.optimisation
 Slight changes to parameter scaling (presolver functionality in ExpressionsBasedModel)
 Minor numerical tweaks to both LinearSolver and ConvexSolver
๐ Deprecated
org.ojalgo.optimisation
 ๐ MathProgSysModel is deprecated  direct usage of that class. Instead there is a
parse(File)
method in ExpressionsBasedModel
org.ojalgo.type.context
 ๐ Clean up of constructors and factories in NumberContext. Almost all of them are deprecated and replaced by new alternatives.
๐ Fixed
org.ojalgo.optimisation
 GitHUb Issue 300: https://github.com/optimatika/ojAlgo/issues/300