oj! Algorithms – ojAlgo – is Open Source Java code to do mathematics, linear algebra and optimisation.
High Performance on a Rich Feature Set with Zero Dependencies
ojAlgo is programmed in Java, but is often used by developers programming in other JVM languages like Scala or Kotlin, or targeting a platform like Android. All of this works fine with ojAlgo as it is, but to fully exploit the capabilities of those other languages/platforms some extensions may be desirable.
okAlgo contains thin wrappers of ojAlgo classes that enable idiomatic Kotlin usage. Check it out!
The main news this time is that the finance specific code (the org.ojalgo.finance package) has been moved to its own project/module named ojAlgo-finance. Other than that the most important new features are:
The changelog, covering the latest 10 releases, will give more details on what's new.
As of v38 ojAlgo requires Java 8.
Java 7 users should instead use ojAlgo v37.1.1
Up until v33 Java 5 was enough (effectively developed against Java 6).
About a month ago Yahoo deliberately broke downloading historical data from their web site. This was not a problem with ojAlgo – it broke for everyone. ojAlgo has now adapted to Yahoo's new method. The new code in the master branch of the repository at GitHub, and will of course be part the next release.
With the v42 release the CVS repository at SourceForge will be abandoned. From now on the source code will be maintained at GitHub only.
The author of EJML benchmark his library against several other libraries – ojAlgo is one of them. To do that he created the Java Matrix Benchmark. Executing that benchmark takes about 2 weeks. It doesn't get executed very often! It is almost 2 years since the Java Matrix Benchmark site last published any results. Now, finally the wait is over...
ojAlgo is now available at The Central Repository to be used with your favourite dependency management tool. v38.0, that was released today, is the first official Maven release. The versions currently existing as downloads from SourceForge will also be made available. (Previously v31.0 existed by a third party independent effort.) The intention is that all future releases will be available at The Central Repository.
Much of the development has been motivated by various financial applications. Up until (v44) ojAlgo contained domain (finance) specific code. With v44 this has been moved to its own code repository and will be released as a separate artefact: ojAlgo-finance
It contains code that allow you to:
Everything necessary to do that is in ojAlgo-finance – it has no dependencies other than ojAlgo (the core/base artefact).
BLaadin is a financial market simulation tool. It facilitates market analysis and forecasting as well as making portfolio recommendations. In particular it asserts consistency between forecasts and recommendations. At its core it makes use of the Black-Litterman model.
Information about BLaadin is currently maintained at the BLaadin Edge Financial Systems site.
There is a "public beta" version of BLaadin available on-line as a cloud service. The BLaadin Edge Financial Systems site contains information about how to find and use it.
BLaadin has its origin in a cooperation between Optimatika and the Royal Institute of Technology in Stockholm (KTH). That cooperation aimed to develop a prototype system/application using the Black-Litterman model, and to use that application in a behavioural finance case study. The case study resulted in a PhD thesis.
That was years ago... The prototype died and was revitalised several times until it was finally completely rewritten with a much more ambitious goal. BLaadin is now a full-fledged market simulation and portfolio construction tool.
BLaadin is programmed in Java, and everything related to mathematics and financials is in ojAlgo. BLaadin is NOT open source! ojAlgo is, but not BLaadin. The on-line "public beta" is free for you to try.
ojAlgo has zero dependencies, but through various extension modules it integrates with 3:d party libraries.
ojAlgo is an Open Source project. It is available as source code, and every single source code file contain a copyright statement and a license agreement. All files have the same copyright and license. Optimatika holds the copyright, and the license used is the generous and easy to understand MIT license. Please read and comply with the license agreement – it's not hard.
User documentation with code examples is at the GitHub wiki. Don't forget to check out the various README files in the repositories.
Programming questions related to ojAlgo are best asked at
overflow. Just remember to actually mention ojAlgo and tag the
question using 'ojalgo' and whatever other tags you find suitable.
Bug reports, and to some extent feature requests should be posted at GitHub Issues. (Please do not use GitHub Issues for general discussions or support requests!)
The ojAlgo-user mailing list can be used for just about anything as long as it relates to ojAlgo. Regarding the list:
ojAlgo is Open Source, and you are strongly encouraged to clone or fork the repository and work directly with the source code. The source code is (part of) the documentation, and you should read it.
Optimatika is a software consulting company specialising in decision support systems – particularly optimisation and applied maths related to finance.
In these cases please contact Optimatika directly.
Project and site sponsored by Optimatika
Copyright © 1997 - 2017