Eigen is a C++ template library for linear algebra (vectors, matrices, and related algorithms).
* It supports tiny, dense, and sparse matrices (the latter is still experimental), fully integrated with one another.
* It takes full advantage of
... [More]
expression templates to provide a great API. For example, m.row(i)+=m.row(j) just works.
* Expression templates are also the basis for many optimizations: automatic determination of which temporaries to remove, and intelligent explicit vectorization (SSE and ALtiVec).
* Performance is on par with the best BLAS implementations (see http://eigen.tuxfamily.org/index.php?title=Benchmark).
* It keeps in mind the real needs of apps, for example the geometry features needed for 3D graphics [Less]