All Versions
46
Latest Version
Avg Release Cycle
41 days
Latest Release
609 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v48.3.1 Changes
October 01, 2020๐ Changed
org.ojalgo.optimisation
- Minor internal change to SimplexSolver regarding when phase 1 is regarded done.
๐ Fixed
org.ojalgo.function
- Aggregator.MAXIMUM was initialised/reset incorrectly which caused wrong results with negative numbers
org.ojalgo.optimisation
- ConvexSolver results now include the Lagrange multipliers.
-
v48.3.0 Changes
September 03, 2020โ Added
org.ojalgo.ann
- ๐ Support for
float
. - Possible to "get" all individual parameters of the network
- Possibility to save trained networks to disk (and then later read them back)
- ๐ Separate between building, training and invoking the network - 3 different classes to do that.
- Possible to have several network invokers used in different threads.
- ๐ Support for
dropouts
as well asL1
andL2
regularisation when training the network.
๐ Changed
org.ojalgo.ann
- ๐ The NetworkBuilder has been split into a NetworkBuilder and a NetworkTrainer. Most of the previous API is still in place, but deprecated, and in many of those cases old code referencing NetworkBuilder needs to instead use the new NetworkTrainer. The new NetworkBuilder primarily enables a better way to construct the network. Most of the previously existing stuff is in the new NetworkTrainer;
๐ Deprecated
org.ojalgo.ann
- ๐ Several things regarding how to build/train and invoke a neural network has been redesigned resulting in deprecations of specific methods.
- ๐ Support for
-
v48.2.0 Changes
June 22, 2020โ Added
org.ojalgo.function
- ๐ New atan2 approximation that is about 10x faster than the ordinary Math.atan2
- The lower/upper incomplete Gamma functions
org.ojalgo.random
- Implemented the ChiSquare distribution
- Implemented the T distribution
org.ojalgo.structure
- ๐ New method repeat(int,int) in Structure2D.Logical implemented in MatrixStore.LogicalBuilder and BasicMatrix.LogicalBuilder.
org.ojalgo.type
- ๐ New array builder and (type) converter class named FloatingPointReceptacle.
- PrimitiveNumber implementations for all primitive number types.
- ๐ New classes EntryPair, EntryList, EntrySet and IndexedMap to deal with key-value pairs in various ways.
๐ Changed
org.ojalgo.optimisation
- ๐ Changed how the IntegerSolver instantiates its ForkJoinPool; using Java 9's more expressive constructor if it's available.
- Modifications to the parameter scaling functionality of ExpressionsBasedModel
๐ Deprecated
org.ojalgo.type
- ๐ฆ Everything, previously existing, in the org.ojalgo.type.keyvalue package has been deprecated. Instead there is a new interface EntryPair, as well as a collection of implementations, that replace it. The functionality of the old and new stuff only partially overlap. There are also matching classes EntryList, EntrySet and others.
๐ Fixed
org.ojalgo.matrix
- ๐ Fixed a problem in SparseStore when concurrently adding different elements
- ๐ Reviewed and potentially fixed various problems regarding matrix multiplication with more Than
Integer.MAX_VALUE
elements.
org.ojalgo.optimisation
- Fixed a problem where
time_abort
would be ignored if the solver had found a feasible solution. (In that case it would only checktime_suffice
.)
โ Removed
org.ojalgo.structure
- The all
int
version of theStructure2D.index(...)
method. With larger 2D structures this would overflow.
-
v48.1.0 Changes
January 15, 2020๐ Changed
- ๐ A number of minor changes to improve interoperability with other JVM languages. Essentially tried to remove all cases with public methods declared in non-public abstract classes.
org.ojalgo.array
- Reviewed equals() and hashCode() implementations for most classes
- Explicitly/correctly implemented doubleValue(long) and floatValue(long) methods in more classes
org.ojalgo.type
- It is now possible to "stop" and "reset" the Stopwatch with a single method call.
๐ Fixed
org.ojalgo.array
- A case of infinitite loop with (some) fillOne(...) methods
-
v48.0.0 Changes
November 24, 2019โ Added
- ๐ Improved support for float throughout the library, and specifically added matrices with float elements.
org.ojalgo.algebra
- ๐ ScalarOperation has been extended with support for float arguments.
org.ojalgo.function
- ๐ New special functions: beta (complete, incomplete and regularized), gamma (logarithmic), Hypergeometric and Pochhammer symbol. Inluding complex valued variants where applicable. The complete gamma function existed previously, and the upper/lower incomplete gamma functions are only implemented for the integer case.
- All the function interaces now have float specific methods.
org.ojalgo.matrix
- There is a new float based matrix store implementation, Primitive32Store.
org.ojalgo.random
- The
getDistribution()
method in the TDistribution is now implemented for the general case. Previously it was only implemented for a few distinct degrees of freedom.
๐ Changed
- โก๏ธ Generic declarations in interfaces and abstract classes (everywhere) that used to be
<N extends Number>
are now<N extends Comparable<N>>
. Code that extends/implements ojAlgo classes and interaces will most likely need to be updated. Simple usage may not require any changes at all. Please note thatjava.lang.Number
is NOTComparable
but all the speciic subclasses are. - Everything (classes/interfaces, constants...) named "Primitive" -something now separates between "Primitive32" and "Primitive64".
org.ojalgo.matrix
- PrimitiveDenseStore has been renamed Primitive64Store (and there is now also a Primitive32Store). GenericDenseStore was also renamed GenericStore. Likewise PrimitiveMatrix is repalced by Primitive64Matrix and Primitive32Matrix.
org.ojalgo.scalar
- ComplexNumber and Quaternion are now final. That means there are no longer special normalised subclasses (no Versor).
org.ojalgo.structure
- The methods in the Mutate*D.Fillable interaces that take a NullaryFunction as input has changed the generic declaration from
NullaryFunction<N>
toNullaryFunction<?>
. - Reftactoring of the Factory*D interfaces.
-
v47.3.1 Changes
September 29, 2019โ Added
org.ojalgo.function
- ๐ New special function utility class PowerOf2. It replaces what was in PrimitiveMath, made some improvements and addition and added support or 'int' (used to be only 'long').
๐ Changed
org.ojalgo.matrix
- ๐ The multithreaded implementations of aggregateAll in PrimkitiveDenseStoree and GenericDenseStore are removed.
org.ojalgo.optimisation
- The iterative version of the ActiveSetSolver now enforce an iterations limit on its internal subsolver.
org.ojalgo.structure
- ๐ The stream(boolean) methods of ElementView, RowView and ColumnView are deprecated and replaced with a simple stream() method. You no longer have the option to use parallel streams.
๐ Deprecated
org.ojalgo.function
- ๐ The merge functionality of AggregatorFunction is deprecated.
- Everything related to "power of 2" has been deprecetd in PrimitiveMath.
- ๐ FunctionUtils has been deprecated. Everything in it has been moved elsewhere โ mostly to MissingMath.
๐ Fixed
- The compareTo method of CalendarDateDuration didn't work when the unit of either instances was "nanos".
-
v47.3.0 Changes
August 08, 2019๐ Changed
org.ojalgo
- The
OjAlgoUtils.ENVIRONMENT
can now be modified to limit the parallelism of ojAlgo.
org.ojalgo.algebra
- โ Added a power(int) method to the Operation.Multiplication interface.
org.ojalgo.array
- ๐ฆ The package org.ojalgo.array.blas has been renamed org.ojalgo.array.operation
- ๐ฆ The utility classes Raw1D, Raw2D and RawAnyD have been removed and their contents moved to various classes in the new package org.ojalgo.array.operation
- ๐ Everything in org.ojalgo.matrix.store.operation has been moved to org.ojalgo.array.operation
org.ojalgo.data
- โ Added a variant of the covariances method in DataProcessors that take
double[]...
as input.
org.ojalgo.function
- ๐จ Refactoring in the org.ojalgo.function.multiary package including (api-breaking) name changes to some interfaces and classes. The previous QuadraticFunction has been renamed PureQuadraticFunction, and CompoundFunction renamed QuadraticFunction. Further there is now both a LinearFunction and an AffineFunction.
org.ojalgo.matrix
- ๐ Various deprecations in MatrixStore.LogicalBuilder and the corresponding LogicalBuilder:s of PrimitiveMatrix, ComplexMatrix & RationalMatrix. Everything in the LogicalBuilder:s are now either defined in org.ojalgo.structure.Structure2D.Logical or deprecated.
- ๐ Tweaked the isSolvable() method implementations of the Cholesky decompositions to return
true
slightly less often. - ๐ฒ The debug logging of the iterative solvers now output the relative error at each iteration.
- Implemented the power(int) method defined in Operation.Multiplication.
- ๐ New method getCovariance in the SingularValue interface
- Q1 and Q2 in the SingularValue decomposition have been renamed U and V to match denominations commonly used elsewhere. In Bidiagonal Q1 and Q2 have been renamed LQ and RQ.
- ๐ New MatrixStore implementation DiagonalStore to be used for diagonal, bidiagonal and tridiagonal matrices. Replaces two different previous (package private) implementations.
- MatrixStore.Factory has a new method makeDiagonal(...)
- MatrixStore.LogicalBuilder has new implementations for the diagonal(), bidiagonal(boolean) and tridiagonal() methods.
- Some improvements to TransposedStore โ more efficient use of the underlying store. Particular in the case when it is a RawStore.
- ๐จ Some general cleanup/refactoring among the Eigenvalue related code.
- โ Added support for generalised eigenvalue problems.
- ๐ Fixed a bug in RawStore - visitRow/Column were interchanged
- ๐ Everything in org.ojalgo.matrix.store.operation has been moved to org.ojalgo.array.operation
org.ojalgo.optimisation
- Minor rounding/precision related change to how ExpressionsBasedModel receives the solution from the solver and then returns it. The
options.solution
property is now enforced. - ๐จ Internal refactoring of ConvexSolver and its subclasses. This includes changes in behaviour (handling of not-so-convex or otherwise difficult problems).
- 0๏ธโฃ The IntegerSolver now uses its own ForkJoinPool instance rather than the default
commonPool()
. The parallelism is derived fromOjAlgoUtils.ENVIRONMENT
. - ๐จ Internal refactoring related to the LinearSolver.Builder as well as the ConvexSolver.Builder.
org.ojalgo.random
- SampleSet can now swap in a
double[]
org.ojalgo.scalar
- Implemented the power(int) method defined in Operation.Multiplication.
org.ojalgo.structure
- โ Additions to Structure2D.Logical (Moved definitions from MatrixStore.LogicalBuilder to here).
- ๐จ Refactoring to Factory1D, Factory2D and FactoryAnyD โ makeZero(...) is renamed make(...) and everything else is moved to a nested subinterface Dense.
- The
-
v47.2.0 Changes
May 03, 2019๐ Changed
org.ojalgo.data
- ๐ Renamed DataPreprocessors to DataProcessors, and added methods to create a covariance matrix from an SVD.
org.ojalgo.function
- โ Added a couple more utilities to MissingMath
org.ojalgo.matrix
- ๐ New LU decomposition implementation that is faster for small matrices.
- ๐ Fixed a bug related to solving equation systems and inverting matrices using SingularValue at certain matrix sizes.
- ๐ Renamed checkAndCompute to checkAndDecompose in the MatrixDecomposition.Hermitian interface
- Extended the MatrixStore.LogicalBuilder rows() and columns() methods to allow for negative indexes that refer to all zero rows/columns.
- ๐ New more efficient implementation of MatrixStore.LogicalBuilder.diagonal() data structure.
- The MatrixDecomposition interface now extends Structure2D so that you can get the size/shape of the original matrix.
- โ Additions to the MatrixDecomposition.RankRevealing interface. It is now possible to estimate the rank using a custom threshold. Also reworked all code related to estimating rank (in all implementations of that interface).
org.ojalgo.netio
- ๐ New funcion to generate random strings of ASCII characters, of specified length.
org.ojalgo.optimisation
- The optimisation model parameter scaling functionality has been tweaked to be more in line with the improved "rank revealing" of matrices.
- Minor improvements to ConvexSolver
org.ojalgo.structure
- The Stream2D interface now has methods operateOnColumns(...) and operateOnRows(...)
-
v47.1.2 Changes
April 23, 2019๐ Changed
org.ojalgo.matrix
- ๐ Fixed bug related to LDL โ stackoverflow if you called isSolvable() on some LDL instances.
- Various tweaks and cleanup with MatrixDecompostion:s
-
v47.1.1 Changes
April 12, 2019๐ Changed
org.ojalgo.constant
- โก๏ธ The stuff that was deprecated with v47.1.0 are now removed. (Keeping it around may cause problems with some IDE:s) Just update your import statements to org.ojalgo.function.constant rather than org.ojalgo.constant.
org.ojalgo.data
- โ Additions and improvements to DataPreprocessors, but they're now column oriented only.
org.ojalgo.matrix
- The ElementsConsumer interface has been renamed TransformableRegion. This is an intermediate definitions interface - subinterfaces and concrete implementations are not affected other than with their implements and extends declarations.
org.ojalgo.structure
- ๐ The interfaces Mutate1D.Transformable, Mutate2D.Transformable and MutateAnyD.Transformable introduced with v47.1.0 are removed again โ bad idea.
- The Stream1D, Stream2D and StreamAnyD each got a new method named operateOnAny that takes a Transformation?D as input.
- The Mutate1D.ModifiableReceiver, Mutate2D.ModifiableReceiver and MutateAnyD.ModifiableReceiver each got a new method named modifyAny that takes a Transformation?D as input.