All Versions
30
Latest Version
Avg Release Cycle
64 days
Latest Release
178 days ago

Changelog History
Page 1

  • 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 simply on*(...)

    ๐Ÿ›  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 ojAlgo-test 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 and double values.
    • Various minor additions and changes.

    ๐Ÿ”„ Changed

    org.ojalgo.optimisation

    • ๐Ÿ”„ Changed the default mip_gap from 1E-4 to 1E-6
    • โšก๏ธ Major rewrite/update to the presolver functionality of ExpressionsBasedModel which greatly affects the IntegerSolver.

    org.ojalgo.structure

    • ๐Ÿšš The add methods of the Mutate1D, Mutate2D and MutateAnyD interfaces have been moved to Mutate1D.Modifiable, Mutate2D.Modifiable and MutateAnyD.Modifiable respectively. With most hgher level interfaces or implemenattions this makes no difference as they typically extend or implement both these interfaces.
    • In Access1D the axpy method had an element of its signture (one of the input parameters) changed from Mutate1D to Mutate1D.Modifiable<?>.

    ๐Ÿ—„ Deprecated

    org.ojalgo.equation

    • The public constructors of Equation are replaced by various factory methods.

    โœ‚ Removed

    org.ojalgo.array

    • ๐Ÿšš The NumberList class had the add methods (the ones with a long index parameter) previously specified in the Mutate1D removed.

    org.ojalgo.type

    • ๐Ÿšš The IndexedMap class had the add methods previously specified in the Mutate1D removed.
  • 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 SHA-512 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

  • 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 as L1 and L2 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.
  • 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 check time_suffice.)

    โœ‚ Removed

    org.ojalgo.structure

    • The all int version of the Structure2D.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 that java.lang.Number is NOT Comparable 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> to NullaryFunction<?>.
    • 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".