Eigen is a high-level C++ library of template headers for linear algebra, matrix and vector operations, geometrical transformations, numerical solvers and related algorithms.
Earlier versions were licensed under the GNU Lesser General Public License.
[3] 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.
[4] Eigen itself can provide BLAS and a subset of LAPACK interfaces.