Saturday, June 1, 2013

la4j-0.4.0 is here!

I'm proud to announce that la4j is perfectly ready for releasing version 0.4.0. This is another huge step for such a small project like la4j. It took me 6 month to prepare la4j for new version. I've done loads of work: rewrote 50% of sources and added ~5k loc of new functionality.

So, I've decided to tell you about how many interesting things are happed to me in this period of development. I've got several positive feedbacks from people about la4j. I'm so glad that pople enjoy it. I've got several awesome pull-request to la4j from Russia, Italy, USA. Thank you guys for a wonderful job!

I've bumped in the fact that people from business use la4j as competitor for their products. They used version 0.3.0 and it was realy slow. So, I did some optimizations and new version realy flies!

And the last thing. Recently, I've read awesome book about genius physicist Richard Feynman. One of its chapter describes scientific laboratory of Los-Alamos, where he worked on Manhattan project. So, I was so excited about this laboratory and pople working there. You can imagine now, what I was feeling when I've found the line "los alamos national laboratory" in's visitors log.

The changelog for new version (the huges changelog in the history of la4j):
  •  Up to 2x performance improvement of sparse entries (binary search power)
  •  Performance improvement for matrix-by-matrix multiply algorithm (3x for dense, 11x for sparse)
  •  New matrix method `rank()` (contributed by Evgenia Krivova)
  •  New fast implementation of `determinant()` method
  •  New method `update()` (as compound operator replacement)
  •  Matrices are unsafe by default (new corresponding methods `safe()` and `unsafe()`)
  •  New method `slice()`
  •  New method for `kronecker()` product
  •  Support map-reduce approach by method pair `transform()` and `fold()`
  •  New matrices and vectors sources that handles IO streams
  •  Support of building a constant matrix in factories
  •  Matrices and vectors are immutable in terms of dimension
  •  Sparse entities are self-clearing (no memory leaks)
  •  Support vector-by-matrix multiplication
  •  Bug fix in `MatrixDecFunction`
  •  Bug fix in `MatrixMatketStream` (contributed by Alessio Placitelli)
  •  Bug fix in matrix-to-vector multiplication (contributed by Pavel Kalaidin)
  •  Bug fix in `align()` method (contributed by Chandler May)
  •  But fix in `QRDecompositor`

No comments:

Post a Comment