This is a copy of the GMM++ library.

Homepage: http://www-gmm.insa-toulouse.fr/getfem/gmm_intro

FAQ:

Q: What's GMM++ ?

A: GMM++ is a pure C++ template library (only .h files) for advanced
linear algebra. It supports both dense and sparse representations
of matrices and vectors, and provides many algorithms.

Q: What parts of KDE use it ?

A: New advanced Krita image filters. However, linear algebra is
ubiquitous in applied math, so we expect more uses to emerge.

Q: How does it compare/relate to Eigen?

A: Eigen is for simple stuff, GMM is for complicated stuff.
Eigen does the simple things in a simple way, and very fast. Unfortunately
it can't do everything, for instance it doesn't handle sparse matrices.
For such advanced stuff, one needs GMM.

Q: Why have both GMM++ and Eigen? Isn't one linear algebra library enough?

A: We tried very hard to find a solution with a single library, like
merging parts of GMM into Eigen. Turns out that's a bad idea. Eigen
and GMM address different needs, have different approaches.

Q: How big is the overlap between GMM++ and Eigen?

A: Pretty little actually. The only thing that's handled by both Eigen
and GMM is dynamic-size dense matrices/vectors.
Even there, each library has features the other one doesn't have.
GMM allows rectangular matrices and provides more algorithms, but
Eigen provides a much easier/nicer API with more convenience features.

Q: Won't this copy get quickly outdated ?

A: GMM developers have been very collaborative, have isolated what we
needed to copy into a self-contained subdirectory of their own SVN tree,
and have agreed to adapt GMM to our needs so that we're happy with the
plain vanilla GMM and don't need in-house modifications.
As a result, syncing with them is very easy and could even be scripted.
Additionally, this is a plain-C++ math library, a kind of software that
doesn't outdate very quickly and that contains few bugs because it is
suitable for unit-testing.

Q: Does GMM throw exceptions ?

A: GMM can only throw exceptions if __EXCEPTIONS is defined.
For instance, if you compile with -fno-exceptions, GMM won't throw any
exception. 
