Eigen (C++ library)

{{Short description|Open-source linear algebra library}}

{{third-party|date=January 2016}}

{{Infobox software

| name = Eigen

| logo = Eigen Silly Professor 135x135.png

| developer = {{plainlist|

  • Benoît Jacob
  • Gaël Guennebaud

}}

| latest release version = {{wikidata|property|reference|edit|P348}}

| latest release date = {{start date and age|df=yes|paren=yes|{{wikidata|qualifier|P348|P577}}}}

| latest preview version =

| latest preview date =

| programming language = C++

| operating system = Cross-platform

| genre = Library

| license = MPL 2.0

}}

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.{{cite web

| title = Eigen License

| url = http://eigen.tuxfamily.org/index.php?title=Main_Page#License

| publisher = tuxfamily.org

| access-date = 19 Jan 2021

}} Version 1.0 was released in Dec 2006.{{cite web|url=https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2006/12/threads.html|title=[eigen] Release 1.0}}

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.{{cite conference |title=Eigen: A C++ linear algebra library |first=Gaël |last=Guennebaud |year=2013 |conference=Eurographics/CGLibs |url=http://downloads.tuxfamily.org/eigen/eigen_CGLibs_Giugno_Pisa_2013.pdf}} Eigen itself can provide BLAS and a subset of LAPACK interfaces.{{cite web |title=Todo - Eigen |url=http://eigen.tuxfamily.org/index.php?title=Todo |website=eigen.tuxfamily.org |quote=The eigen_blas library is complete. The eigen_lapack currently implements cholesky and lu decomposition. Contact us if you want to help.}}

See also

References