However, SLOC is a poor metric for the quality of a codebase, especially scientific ones. I've certainly found many instances where longer line counts are more performant, for instance with hand-unrolling loops (very rare edge case, not suggesting doing this as a rule!).
Unless you intend to become involved in development of the library, I see no reason you would care about the lines of code. Even at that point, design philosophy, features, etc. are more likely to be major factors in your choice.
FYI: Computational Scientist here. I am neither affiliated with Blaze nor Eigen.
.. Unless it's written in a completely uncomprehensible way of course (such as some meta c++ stuff), but in languages with good metaprogramming.
A common example is matrix multiply. For smaller matrices it's faster to use naive O(n^3) multiply because of the large constant factor with Strassen's algorithm. At some point n^3 will dominate the constant factor, and Strassen's becomes better. To get the best performance in all cases, both algorithms need to be implemented, which increases the code size.
HN mods: could someone change the discussion to point to this link? It has working pictures.
Off-topic: I like bitbucket better, so it is nice to see some projects going over there.
From my experience, there are currently no good distributed-memory open source sparse-direct solvers.
No good distributed-memory ILU implementation, either. Scalability is almost non-existant beyond 100 cores.
http://thread.gmane.org/gmane.comp.lib.eigen/3423
The main critique at the time was that Blaze always assumes perfectly aligned data, including inside(!) the matrix, and pads the data with zeros if that is not the case. Of course, this makes it impossible to map external data, which is a huge downside. I'm not sure if that is still the case, but from skimming through the docs it doesn't look to me like this has changed.
That's rather generous. If you're going to do serious work with Eigen, or Armadillo, or Blaze, you're going to include a BLAS library like OpenBLAS or Intel MKL (if you can afford it). Not including them is dubious, at best.
https://bitbucket.org/blaze-lib/blaze/src/e09d62ee714745b297...
Of course, if you're seriously going to use this library, you're going to use an established BLAS library like OpenBLAS or Intel MKL.