Imagine there's a sequence of operations you need to perform on a dataset, and this dataset is very large. There is absolutely no way the entire dataset could fit in…

Continue ReadingIntroducing BatchNode

With ojAlgo v51.2.0 the IntegerSolver gained support for Gomory Mixed Integer (GMI) cuts. Details of what they are and how they're derived is described in many publications. Just google it.…

Continue ReadingGomory Mixed Integer Cuts

With v51.1.0 the IntegerSolver got redesigned in terms of how it multi-threads as well as how it can be configured. With most, if not all, tests the new design performs…

Continue ReadingMIP Strategy Configuration

Late last year (December 2021) new results were published over at the Java Matrix Benchmark web site. ojAlgo performed well, as always, but this time there seemed to be some…

Continue ReadingJava Matrix Benchmark

Nowadays you can get your JDK from many different sources. In most cases they only differ on license and support, but there are also alternatives with real technical differences. Two…

Continue ReadingJDK17 Benchmark

First published in October 2021, then updated in February 2022. ojAlgo contains pure Java LP, QP and MIP solvers. That's something very unique. There are very few pure Java alternatives…

Continue ReadingPure Java LP Solver Benchmark

Browsing through code that uses ojAlgo it's quite common to see it being used inefficiently or at least not the intended way. Here's an example code line, seen in the…

Continue ReadingCommon Mistake

Almost everything in ojAlgo makes use of or interacts with some array based data structure. To always code directly against raw arrays like double[], float[] or Number[] would be awkward.…

Continue ReadingWorking With Arrays