Eigen (C++ library)


Eigen is a high-level C++ library of template headers for linear algebra, matrix and vector operations, geometrical transformations, numerical solvers and related algorithms.
Eigen is open-source software licensed under the Mozilla Public License 2.0 since version 3.1.1. Earlier versions were licensed under the GNU Lesser General Public License.
Eigen is implemented using the expression templates metaprogramming technique, meaning it builds expression trees at compile time and generates custom code to evaluate these. Using expression templates and a cost model of floating point operations, the library performs its own loop unrolling and vectorization.