- Update to v55.1.0 * Added ~ org.ojalgo.data + New package org.ojalgo.data.cluster with k-means and greedy clustering algorithms implemented, as well as generalisations, specialisations and combinations of those. + DataProcessors now has a method Transformation2D newRowsTransformer(Function<SampleSet, UnaryFunction>) to complement the existing newColumnsTransformer. ~ org.ojalgo.random + SampleSet gained a couple of methods; getMidrange() and getRange(). * Changed ~ org.ojalgo.array + Sorting is no longer parallel/multi-threaded. The previous implementations made use of the common ForkJoinPool. ~ org.ojalgo.data + Creating a JMX bean (to monitor throughput) with BatchNode is now optional, and the default is to not create them. (Used to always create them.) ~ org.ojalgo.netio + The FromFileReader and ToFileWriter interfaces and their implementations used to extend and delegate to code in the org.ojalgo.type.function package. Much of what was in that package has been moved to and merged with stuff in the org.ojalgo.netio package. + The FromFileReader.Builder and ToFileWriter.Builder builders now use generic "file" types. They used to be implemented in terms of Java's File, but can now be anything like Path or ojAlgo's own SegmentedFile, ShardedFile or InMemoryFile. + The DataInterpreter gained some additional standard interpreters, as well as utilities to convert back and forth between byte[]. ~ org.ojalgo.random + SamleSet no longer makes use of parallel/multi-threaded sorting – to avoid making use of the common ForkJoinPool. ~ org.ojalgo.type + The AutoSupplier and AutoConsumer interfaces are removed. They used to provide abstract/generalised functionality for FromFileReader and ToFileWriter in the org.ojalgo.netio package. All features and functionality still exists, but in terms of the more specific/concrete FromFileReader and ToFileWriter. If you directly referenced any of the various utility methods in AutoSupplier or AutoConsumer they're now gone. They primarily existed so that FromFileReader and ToFileWriter could access them (from another package). The features and functionality they provided are now available through other classes in the org.ojalgo.netio package – like FromFileReader.Builder and ToFileWriter.Builder. * Fixed ~ org.ojalgo.data + In DataProcessors, the CENTER_AND_SCALE transformation didn't do exactly what the documentation said it. That's been fixed. - Update to v55.0.2 * Added ~ org.ojalgo.type + A new cache implementation named ForgetfulMap. To save you adding a dependency on Caffeine or similar. ~ org.ojalgo.optimisation + There is a new OptimisationService implementation with which you can queue up optimisation problems to have them solved. This service is (will be) configurable regarding how many problems to work on concurrently, and how many threads the solvers can use, among other things. * Changed ~ org.ojalgo.optimisation + Refactoring and additions to what's in the org.ojalgo.optimisation.service package. They're breaking changes, but most likely no one outside Optimatika used this. + Minor internal changes to how the IntegerSolver works. There's now an equal number of worker threads per worker-strategy. * Deprecated ~ org.ojalgo.type + TypeCache is replaced by ForgetfulMap.ValueCache. - Update to v55.0.1 * Added ~ org.ojalgo.concurrent + Addition to ProcessingService that simplify concurrently taking items from a BlockingQueue. * Changed ~ org.ojalgo.random + Refactored SampleSet (internally) to be better aligned with recent changes to other parts of the library. Primarily the class now uses int indices for all internal calculations. Also added a new java.util.stream.Collector implementation to simplify SampleSet creation from streams. * Fixed ~ org.ojalgo.optimisation + Fixed a bug where the (new) LP solver would fail to recognise unbounded problems and instead return a solution with infinite values, stating it to be optimal. OBS-URL: https://build.opensuse.org/request/show/1237955 OBS-URL: https://build.opensuse.org/package/show/Java:packages/ojalgo?expand=0&rev=6
287 lines
13 KiB
Plaintext
287 lines
13 KiB
Plaintext
-------------------------------------------------------------------
|
||
Wed Jan 15 00:19:43 UTC 2025 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Update to v55.1.0
|
||
* Added
|
||
~ org.ojalgo.data
|
||
+ New package org.ojalgo.data.cluster with k-means and greedy
|
||
clustering algorithms implemented, as well as
|
||
generalisations, specialisations and combinations of those.
|
||
+ DataProcessors now has a method Transformation2D
|
||
newRowsTransformer(Function<SampleSet, UnaryFunction>) to
|
||
complement the existing newColumnsTransformer.
|
||
~ org.ojalgo.random
|
||
+ SampleSet gained a couple of methods; getMidrange() and
|
||
getRange().
|
||
* Changed
|
||
~ org.ojalgo.array
|
||
+ Sorting is no longer parallel/multi-threaded. The previous
|
||
implementations made use of the common ForkJoinPool.
|
||
~ org.ojalgo.data
|
||
+ Creating a JMX bean (to monitor throughput) with BatchNode
|
||
is now optional, and the default is to not create them.
|
||
(Used to always create them.)
|
||
~ org.ojalgo.netio
|
||
+ The FromFileReader and ToFileWriter interfaces and their
|
||
implementations used to extend and delegate to code in the
|
||
org.ojalgo.type.function package. Much of what was in that
|
||
package has been moved to and merged with stuff in the
|
||
org.ojalgo.netio package.
|
||
+ The FromFileReader.Builder and ToFileWriter.Builder
|
||
builders now use generic "file" types. They used to be
|
||
implemented in terms of Java's File, but can now be
|
||
anything like Path or ojAlgo's own SegmentedFile,
|
||
ShardedFile or InMemoryFile.
|
||
+ The DataInterpreter gained some additional standard
|
||
interpreters, as well as utilities to convert back and
|
||
forth between byte[].
|
||
~ org.ojalgo.random
|
||
+ SamleSet no longer makes use of parallel/multi-threaded
|
||
sorting – to avoid making use of the common ForkJoinPool.
|
||
~ org.ojalgo.type
|
||
+ The AutoSupplier and AutoConsumer interfaces are removed.
|
||
They used to provide abstract/generalised functionality for
|
||
FromFileReader and ToFileWriter in the org.ojalgo.netio
|
||
package. All features and functionality still exists, but
|
||
in terms of the more specific/concrete FromFileReader and
|
||
ToFileWriter. If you directly referenced any of the various
|
||
utility methods in AutoSupplier or AutoConsumer they're now
|
||
gone. They primarily existed so that FromFileReader and
|
||
ToFileWriter could access them (from another package). The
|
||
features and functionality they provided are now available
|
||
through other classes in the org.ojalgo.netio package –
|
||
like FromFileReader.Builder and ToFileWriter.Builder.
|
||
* Fixed
|
||
~ org.ojalgo.data
|
||
+ In DataProcessors, the CENTER_AND_SCALE transformation
|
||
didn't do exactly what the documentation said it. That's
|
||
been fixed.
|
||
- Update to v55.0.2
|
||
* Added
|
||
~ org.ojalgo.type
|
||
+ A new cache implementation named ForgetfulMap. To save you
|
||
adding a dependency on Caffeine or similar.
|
||
~ org.ojalgo.optimisation
|
||
+ There is a new OptimisationService implementation with
|
||
which you can queue up optimisation problems to have them
|
||
solved. This service is (will be) configurable regarding
|
||
how many problems to work on concurrently, and how many
|
||
threads the solvers can use, among other things.
|
||
* Changed
|
||
~ org.ojalgo.optimisation
|
||
+ Refactoring and additions to what's in the
|
||
org.ojalgo.optimisation.service package. They're breaking
|
||
changes, but most likely no one outside Optimatika used
|
||
this.
|
||
+ Minor internal changes to how the IntegerSolver works.
|
||
There's now an equal number of worker threads per
|
||
worker-strategy.
|
||
* Deprecated
|
||
~ org.ojalgo.type
|
||
+ TypeCache is replaced by ForgetfulMap.ValueCache.
|
||
- Update to v55.0.1
|
||
* Added
|
||
~ org.ojalgo.concurrent
|
||
+ Addition to ProcessingService that simplify concurrently
|
||
taking items from a BlockingQueue.
|
||
* Changed
|
||
~ org.ojalgo.random
|
||
+ Refactored SampleSet (internally) to be better aligned with
|
||
recent changes to other parts of the library. Primarily the
|
||
class now uses int indices for all internal calculations.
|
||
Also added a new java.util.stream.Collector implementation
|
||
to simplify SampleSet creation from streams.
|
||
* Fixed
|
||
~ org.ojalgo.optimisation
|
||
+ Fixed a bug where the (new) LP solver would fail to
|
||
recognise unbounded problems and instead return a solution
|
||
with infinite values, stating it to be optimal.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Oct 6 20:21:39 UTC 2024 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Update to v55.0.0
|
||
* Changed
|
||
~ org.ojalgo.function
|
||
+ The BigDecimal valued constants in BigMath for E, PI and
|
||
GOLDEN_RATIO are redefined with more decimal digits.
|
||
+ The BigDecimal valued functions in BigMath for EXP, LOG,
|
||
SIN and COS are re-implemented to produce much more
|
||
accurate results.
|
||
~ org.ojalgo.optimisation
|
||
+ The new LP solver implementation is now the default
|
||
alternative.
|
||
+ The two classes LinearSolver.GeneralBuilder and
|
||
LinearSolver.StandardBuilder are replaced by a common
|
||
LinearSolver.Builder. Consequently the methods
|
||
newGeneralBuilder() and newStandardBuilder() are deprecated
|
||
and replaced by newBuilder().
|
||
~ org.ojalgo.scalar
|
||
+ Re-implemented Quadruple's divide method using primitives
|
||
only. (Previously delegated to BigDecimal.)
|
||
* Deprecated
|
||
~ org.ojalgo.data
|
||
+ Everything related to downloading (historical) financial
|
||
data is deprecated. It's already broken (due to changes in
|
||
the external "service") and we're not going to try fix it.
|
||
* Removed
|
||
~ org.ojalgo.structure
|
||
+ Removed a bunch of stuff that was deprecated in Factory1D,
|
||
Factory2D and FactoryAnyD and/or some of their
|
||
sub-interfaces.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Jun 13 17:18:48 UTC 2024 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Update to v54.0.0
|
||
* Added
|
||
~ org.ojalgo.matrix
|
||
+ Added the ability to specify the initial capacity of a
|
||
SparseStore.
|
||
+ More efficient sparse to sparse copying of SparseStore.
|
||
+ New option to use a builder when initially setting the
|
||
elements of a SparseStore.
|
||
+ When setting (or adding to) elements there used to be
|
||
internally synchronized code. This is no longer the case.
|
||
Instead you must call synchronised() to get a synchronized
|
||
mutating wrapper. This should make common single threaded
|
||
usage faster.
|
||
+ The sparse BasicMatrix builder no longer has all the
|
||
methods that really only made sense with dense
|
||
implementation. The sparse builder implementation changed
|
||
to use that new SparseStore.Builder.
|
||
~ org.ojalgo.structure
|
||
+ There are new methods fillCompatile(...),
|
||
modifyCompatile(...) and onCompatile(...) to complement the
|
||
already existing "fill", "modify" and "on" methods.
|
||
(Inspired by MATLAB's concept of compatible array sizes for
|
||
binary operation.)
|
||
+ The factory interfaces got methods to construct instances
|
||
of compatible sizes/shapes. (Inspired by MATLAB's concept
|
||
of compatible array sizes for binary operation.)
|
||
* Changed
|
||
~ org.ojalgo.matrix
|
||
+ The classes Primitive64Store and Primitive32Store have been
|
||
renamed R064Store and R032Store. These classes are central
|
||
to ojAlgo. The effect of this name change is widespread.
|
||
ojAlgo has been transitioning to a new naming scheme over
|
||
several versions now, but these classes were left untouched
|
||
so far (in part because of how central they are). Now, to
|
||
complete the work, it's done! No deprecations, just did it.
|
||
Apart from the name change the classes are identical.
|
||
+ Vector space method like "add" and "subtract" have been
|
||
redefined to no longer throw exceptions if dimensions are
|
||
not equal, but instead broadcast/repeat rows or columns.
|
||
(Inspired by MATLAB's concept of compatible array sizes for
|
||
binary operation.)
|
||
~ org.ojalgo.optimisation
|
||
+ Refactored, cleaned up deprecations, primarily regarding
|
||
how model variables are created. They can no longer be
|
||
instantiated independent of a model. You have to first
|
||
create the model, and then use that as the variable (and
|
||
expression) factory.
|
||
~ org.ojalgo.structure
|
||
+ Refactored the builder/factory interfaces to better support
|
||
creating immutable 1D, 2D or AnyD structures. This has
|
||
implications for most ojAlgo data structures. There are
|
||
deprecations in all factory classes, but everything that
|
||
worked before still works (I believe).
|
||
+ The Structure*D, Access*D, Mutate*D and Factory*D
|
||
interfaces have all been refactored to make working with
|
||
int indices (rather than long) the primary alternative.
|
||
Huge data structures, that require long indices, are still
|
||
suported – no change in this regard. In reality only a few
|
||
implementations actually allowed to create such large
|
||
instances. This change is to allow all the other classes to
|
||
be implemented using int and not bother (so much) with
|
||
long. Users of the various classes in ojAlgo should see no
|
||
difference. If you have created your own classes
|
||
implementing some of ojAlgo's interfaces you will probably
|
||
need to implement some additional methods in those classes.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri May 24 09:45:31 UTC 2024 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Update to v53.3.0
|
||
* Added
|
||
~ org.ojalgo.function
|
||
+ Some additional PowerOf2 utilities.
|
||
~ org.ojalgo.netio
|
||
+ SegmentedFile that divides a large file in segments to
|
||
enable reading those in parallel using memory mapped files
|
||
(memory mapped file segments).
|
||
~ org.ojalgo.type
|
||
+ New primitive number parsers in NumberDefinition. They take
|
||
CharSequence rather than String as input and do not create
|
||
any intermediate objects. In particular the parseDouble
|
||
performs much better than its counterpart in Double. The
|
||
downside is that it only handles a limited plain format.
|
||
* Changed
|
||
~ org.ojalgo.concurrent
|
||
+ The reduce(...) methods of ProcessingService are renamed
|
||
(deprecated) reduceMergeable(...). In addition there are
|
||
now also reduceCombineable(...).
|
||
~ org.ojalgo.data
|
||
+ The processMapped(...) method of BatchNode is renamed
|
||
(deprecated) processMergeable(...). In addition there is
|
||
now also processCombineable(...).
|
||
+ The reduceMapped(...) method of BatchNode is renamed
|
||
(deprecated) reduceByMerging(...). In addition there is now
|
||
also reduceByCombining(...).
|
||
~ org.ojalgo.type
|
||
+ The merge(Object) method of TwoStepMapper has been removed.
|
||
Instead there are two new sub-interfaces
|
||
TwoStepMapper.Mergeable and TwoStepMapper.Combineable.
|
||
- Update to v53.2.0
|
||
* Added
|
||
~ org.ojalgo.data
|
||
+ There is a new package org.ojalgo.data.transform that (so
|
||
far) contain implementations of the ZTransform and the
|
||
DiscreteFourierTransform. Most notably ojAlgo now contains
|
||
an implementation of the FFT algorithm.
|
||
+ ImageData has been extended with features to work with
|
||
Fourier transforms of images, as well as a Gaussian blur
|
||
function.
|
||
~ org.ojalgo.function
|
||
+ The PolynomialFunction interface now extends
|
||
org.ojalgo.algebra.Ring which means it is now possible to
|
||
add and multiply polynomials. There’s also been some
|
||
refactoring of the internals of the polynomial
|
||
implementations.
|
||
+ Two new PrimitiveFunction.Unary implementations
|
||
PeriodicFunction and FourierSeries. It is now possible to
|
||
take any (periodic) function and, via FFT, get a Fourier
|
||
series approximation of it (1 method call).
|
||
~ org.ojalgo.scalar
|
||
+ Some minor additions to ComplexNumber. It is now possible
|
||
to do complex number multiplication without creating new
|
||
instances (calculate the real and imaginary parts
|
||
separately). Added utilities to get the unit roots.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jan 20 10:35:19 UTC 2024 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Update to v53.1.1
|
||
* Added
|
||
~ org.ojalgo.data
|
||
+ New ImageData class that wraps a
|
||
java.awt.image.BufferedImage and implements MatrixStore.
|
||
Further it adds a few utility methods to simplify working
|
||
with image data - convert to grey scale, re-sample (change
|
||
size), separate the colour channels…
|
||
~ org.ojalgo.matrix
|
||
+ It is now possible to create a matrix decomposition
|
||
instance and calculate the decomposition with 1 method
|
||
call. Previously you had to first call make on the factory
|
||
instance and then decompose on the decomposition instance.
|
||
Now it is possible to call decomposed directly on the
|
||
factory instance.
|
||
+ The SingularValue interface now defines a method to
|
||
reconstruct a matrix using a specified number of singular
|
||
values.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Sep 26 12:29:58 UTC 2023 - Anton Shvetz <shvetz.anton@gmail.com>
|
||
|
||
- Initial packaging with v52.0.1
|