Menu
Home

What's in it?

Linear Algebra
Mathematical Programming
Modern Portfolio Theory

License
Download
Documentation
Support
Services

Change Log

ojAlgo currently targets Java 5 (1.5). It is however developed on a Mac that only has Java 6 available. There may be accidental use of some api only available with Java 6. If you discover a problem like that please mention this on the ojalgo-user mailing list. Further the complied jar-files that you download from Source Forge are built using Java 6, and therefore cannot be used on a lesser JVM version. If you need to run ojAlgo on a Java 5 JVM you need to compile it yourself. The source code is available with the download.

Do NOT use anything deprecated - it will be removed very soon! Most of what was deprecated at the time of the last release has already been removed. Removing something that was already deprecated is not mentioned in the change log.

Version 32 (not yet released)

  • org.ojalgo.access.*
    • It is now possible to wrap already existing double[], BigDecimal[] and ComplexNumber[] arrays in ArrayAccess instances. Previously you had to first create the ArrayAccess instance and then extract the "data".
    • Access1D now extends Iterable, and there is a new default implementation Iterator1D of the Iterator interface. This means a whole bunch of ojAlgo classes are now iterable.
  • org.ojalgo.finance.*
    • New class PortfolioSimulator that lets you do multidimensional portfolio simulations (one correlated random process per asset) with periodic rebalancing.
    • Some refactoring and additions to the FinancePortfolio hierarchy.
  • org.ojalgo.machine.*
    • Refactoring and additions...
  • org.ojalgo.matrix.*
    • New/modified implementations of the SingularValue and Eigenvalue decompositions. They should use less memory and (with the largest matrices) be slightly faster than previous implementations.
    • Fixed a bug with complex valued Householder transformations. Complex valued matrix decompositions that used Householder transformations didn't work properly. Now it is fixed.
  • org.ojalgo.optimisation.*
    • The QuadraticSolver has been improved to handle a greater set of problems.
  • org.ojalgo.random.*
  • org.ojalgo.type.*
    • New class CalendarDateDuration. It's expresses durations/intervals like 5 years, 1.567 months 0.5 hours....
    • The parseObject() and formatString() methods in TypeContext has been deprecated/renamed and replaced by methods parse() and format().

Version 31 (latest release)

Version 30

Version 29

Version 28

Version 27

Version 26

  • org.ojalgo.array.*
    • Array1Dim now implements the List interface. This makes the toList() method redundant, and it has therefore been deprecated.
    • There are now two different modifyMatching() methods - varying in which array's elements make up which function arguments - in all classes in this package. There used to be only one variant, and that one wasn't available in some classes.
    • New class ArrayUtils. It contains utility methods to allow you to work with double[][] arrays the same way you use ojAlgo arrays. This simplified the task of making JamaMatrix implement PhysicalStore.
    • Many methods have changed from being public to protected, and from final to "not final". This is largely/entirely an internal change. It doesn't affect the public api of any class that users could instantiate directly.
    • The visit-methods no longer call reset() on the visitor. You are responsibel for resetting. If you get the AggregatorFunction from the threadlocal collection it is reset when you get it.
  • org.ojalgo.function.*
  • org.ojalgo.matrix.*
    • There's been a couple of changes to BasicMatrix. The method getVectorProduct(BasicMatrix) has been renanamed (deprecated) multiplyVectors(BasicMatrix), and the return type of toListOfElements() has been changed from List<BigDecimal> to List<? extends Number>. Further the methods isVector() and isFullrank() has beenadded.
    • Have extensively reworked all the "equals" methods in this package (and others) as well as the TestUtils class in junit tests.
    • Moved (deprecated) some methods from MatrixUtils to ArrayUtils.
    • LU has a new method getRowEchelonForm() that returns [D][U] or [DU] which others often refer to as simply [U].
    • MatrixStore and PhysicalStore has "inherited" much of the functionality in Array2Dim, and as a consequence of this has deprecated many existing methods that became redundant. (There's been quite a bit API cleaning performed.) Further some methods have been moved up from PhysicalStore to MatrixStore. All togeher this is a big change!
    • Found a problem with ojAlgos LU decomposition algorithms. They didn't produce the correct results in some cases. The "RawPrimitive" algorithm has been removed (deprecated) and the "DensePrimitive" algorithm has been rewritten to function properly in all cases.
    • Added a method computeWithoutPivoting(MatrixStore) to the LU interface.
    • PhysicalFactory has a new method named makeEye(int,int).
    • There used to be a package private abstract class (parent to all non physical stores) that cached a PhysicalStore-copy of itself. This behaviour has been removed. Nothing is copied/cached unless you do it.
  • org.ojalgo.optimisation.*
    • The QuadraticSolver and subclasses are heavily refactored There are no API breaking changes, but the internals are all new. In the process the solver gained a pre-solver.
    • The method getContribution (that used to be called getCost) in Objective has been renamed getContributionWeight.
  • org.ojalgo.scalar.*
    • Two new methods in Scalar – equals(Scalar) and round(NumberContext).
  • org.ojalgo.type.*
    • Quite a few additions and changes to NumberContext. The only api breakling change is that the method setRoundingMode doesn't do anything anymore. The rounding mode is now an immutable (final) property of NumberContext. There are now a set of methods named "round" to complement the "enforce" methods. "round" is a more lightweight type specific version of "enforce".

Version 25

  • A couple of minor changes in the org.ojalgo.array package: The enforce or enforceAll methods have been deprecated. The complexity property/method has been renamed rank.
  • Everything in the org.ojalgo.chart.data package has been removed. Instead there is a new abstract ChartBuilder class. Also a couple of additions to the BasicChart interface. You should expect further (probably API breaking) changes to this package sometime in the future.
  • Added a couple of new methods to FinanceUtils, and created (extracted) a new interface FinancePortfolio. (The implementations were already there.) Added the abillity to get financial data (price series) from Google the same way it was already possible to get data from Yahoo.
  • Moved everything that was in org.ojalgo.type.context.gui (and subpackages) to org.ojalgo.gui.
  • Some additions to BasicMatrix; you can now directly get eigenvalues and singular values as well some a collection of norms. (Things you would otherwise have to create some decomposition to get.) JamaMatrix now implements both BasicMatrix and PhysicalStore, and there is a new JamaFactory that implements both MatrixFactory and PhysicalFactory. Made additions to MatrixUtils that operate on 2-dimensional arrays (the double[][] kind).
  • Further improved the ActiveSetSolver's (de)activation strategy. Improved the toString implementations of ModelEntity (and its subclasses) using StringBuilder. Additionally some general (mostly internal) refactoring in the org.ojago.optimisation.quadratic package. Added a solve-method to QuadraticSolver that takes a suggested solution as input. In particular the ActiveSetSolver may be able to jumpstart its algorithm using this suggestion.
  • Additions and improvements to SampleSet. Added things like min, max, median, first, last... Made a couple of changes to DiffusionProcess, and deprecated the BigProcess class.
  • Substantial changes to the org.ojalgo.series package (again). It's better now... If you used/accessed code in this package directly, you'll have to modify your code a bit.
  • Added the abillity to get a NumberContext as a UnaryFunction. Deprecated the Enforcer class.
  • Some classes that implemented java.io.Serializable no longer do so. Generally this interface has been misused - plan to be much more strict in the future.

Version 24

Version 23

Version 22


SourceForge.net LogoProject and site sponsored by Optimatika
Copyright © 2000 - 2011

Using JProfiler from ej-technologies