oj! Algorithms v49.0.0 Release Notes
Release Date: 2021-08-07 // over 2 years ago-
- ๐ 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 vector-terable in the same way it was already matrix-iterable โ 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, re-tuned, 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.