I've some heard people (including me) asking about matrix
libraries for D, and while there is gl3n it only goes to 4x4
matrices and was written before all the multidimensional indexing
So I was using gl3n for awhile until I needed some 6x6s and threw
together a syntax-sugary sort of wrapper over
std.experimental.ndslice and cblas for matrix math.
You can slice submatrices, assign to them, and perform ops on
them with other matrices or 2-dimensional array slices... though,
for implementation-ish reasons, ops involving 2-d arrays are
elementwise (you'll have to call the Matrix constructor to use
matrix multiplication again).
It was built in kind of an ad-hoc way and I will be adding stuff
to it as the need arises, so there's nothing there yet beyond the
bare basics and you should expect bugs. All the matrices hold
static arrays because I don't want to mess with reference
problems right now. A matrix past a certain size will be more
efficient to store as a dynamic array, of course. But, right now,
I need this to make writing linear algebra code comfortable for
myself rather than try to win at benchmarks.
Bugs/Pull/Feature requests welcome.