oj! Algorithms v51.4.1 Release Notes
Release Date: 2022-08-26 // about 2 years ago-
🛠 Fixed
org.ojalgo.optimisation
- 🛠 Fixed a problem with the
IntegerSolver
where you could get anArrayIndexOutOfBoundsException
when concurrently solving multiple problem instances sharing the sameIntegerStrategy
.
org.ojalgo.random
- 🛠 Fixed a regression with
RandomNumber
where it was no longer possible to set a seed for the underlyingjava.util.Random
instance.
- 🛠 Fixed a problem with the
Previous changes from v51.4.0
-
Last version to target Java 8!
➕ Added
org.ojalgo.data
- 🆕 New class
org.ojalgo.data.domain.finance.series.FinanceDataReader
that implements bothFinanceData
andDataFetcher
. Instead of fetching data from some (web) service it reads and and parses files. Already had some parsers, and since it implements bothFinanceData
andDataFetcher
, it can be used with much of the existing code. In particularDataSource
has been updated to include this reader option. - 🆕 New alternatives to calculate correlations and covariance matrices in
DataProcessors
.
org.ojalgo.function
AggregatorFunction
gained a new methodfilter(PredicateFunction)
that allows to define a filter for which values will be considered in the aggregation.
org.ojalgo.netio
- 🆕 New methods in
BasicLogger
to handle logging of exceptions with stacktrace. - 🏗 With a
TextLineWriter
it is now possible to instantiate a CSV line/row builder to help create "text lines" that are delimited data.
org.ojalgo.random
- 🆕 New package
org.ojalgo.random.scedasticity
containingARCH
andGARCH
models as well as stochatstic processes based on those.
org.ojalgo.series
- 🆕 New class
SimpleSeries
that is the simplest possibleBasicSeries
implementation. - ➕ Added capabilities to do things like
quotients
,log
anddifferences
on aCoordinatedSet
(ofPrimitiveSeries
) as well as possibility to get a correlations or cocariance matrix directly.
🔄 Changed
org.ojalgo.data
- 🔨 Refactoring of the
org.ojalgo.data.domain.finance.series
package. This package very much depends onorg.ojalgo.series
which is extensively refactored. FinanceData
is now generic and thegetHistoricalPrices()
method is now declared to contain a specified subclass ofDatePrice
.- 🗄
DatePrice
now implementsEntryPair.KeyedPrimitive
rather than the deprecatedKeyValue
interface. The publickey
field has been renameddate
(the date is the key). AllDatePrice
subclasses are now immutable. - The
getPriceSeries()
method ofFinanceData
changed the return type fromBasicSeries<LocalDate, Double>
toBasicSeries<LocalDate, PrimitiveNumber>
and theBasicSeries
implementation used is also changed.
org.ojalgo.random
- 🚚 The
Process1D
class is now final. It used to have some subclasses that had been depreceted for a while, they're now removed.
org.ojalgo.series
- 🔨 Extensive refactoring of all
BasicSeries
subinterfaces and implementations, including some breaking name changes. TheBasicSeries.NaturallySequenced
interface still exists, but is not really used for anything. All the useful stuff is inBasicSeries
. All methods that usedlong
keys to interact with entries are removed.
org.ojalgo.type
- The interface
CalendarDate.Resolution
now also extendsStructure1D.IndexMapper
and defines a method toadjustInto
forCalendarDate
.
🛠 Fixed
org.ojalgo.matrix
- 🛠 Fixed problems related to extracting eigenpairs and calculating generalised
Eigenvalue
decompositions for complex matrices (ComplexNumber
elements).
- 🆕 New class