CINXE.COM
Eigen
<!DOCTYPE html> <html lang="en" dir="ltr" class="client-nojs"> <head> <meta charset="UTF-8" /> <title>Eigen</title> <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> <meta name="generator" content="MediaWiki 1.23.1" /> <link rel="shortcut icon" href="Eigen_Silly_Professor_32x32.png" /> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="Eigen (en)" /> <link rel="EditURI" type="application/rsd+xml" href="https://eigen.tuxfamily.org/api.php?action=rsd" /> <link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html" /> <link rel="alternate" type="application/atom+xml" title="Eigen Atom feed" href="/index.php?title=Special:RecentChanges&feed=atom" /> <link rel="stylesheet" href="https://eigen.tuxfamily.org/load.php?debug=false&lang=en&modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.interface%7Cmediawiki.ui.button%7Cskins.vector.styles&only=styles&skin=vector&*" /> <meta name="ResourceLoaderDynamicStyles" content="" /> <link rel="stylesheet" href="https://eigen.tuxfamily.org/load.php?debug=false&lang=en&modules=site&only=styles&skin=vector&*" /> <style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none} /* cache key: eigen_wiki:resourceloader:filter:minify-css:7:7506f501baf64f8093538603280f9e81 */</style> <script src="https://eigen.tuxfamily.org/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=vector&*"></script> <script>if(window.mw){ mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Main_Page","wgTitle":"Main Page","wgCurRevisionId":3202,"wgRevisionId":3202,"wgArticleId":1,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Main_Page","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgIsMainPage":true}); }</script><script>if(window.mw){ mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"vector","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250, "useeditwarning":1,"prefershttps":1,"language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"searchNs100":false,"variant":"en"});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});},{},{}); /* cache key: eigen_wiki:resourceloader:filter:minify-js:7:05c381632dc93eeb56fb500143cf9435 */ }</script> <script>if(window.mw){ mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax","skins.vector.js"]); }</script> <!--[if lt IE 7]><style type="text/css">body{behavior:url("/skins/vector/csshover.min.htc")}</style><![endif]--></head> <body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Main_Page skin-vector action-view vector-animateLayout"> <div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="mw-js-message" style="display:none;"></div> <h1 id="firstHeading" class="firstHeading" lang="en"><span dir="auto">Main Page</span></h1> <div id="bodyContent"> <div id="siteSub">From Eigen</div> <div id="contentSub"></div> <div id="jump-to-nav" class="mw-jump"> Jump to: <a href="#mw-navigation">navigation</a>, <a href="#p-search">search</a> </div> <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><h1 style="border:none;font-style:italic;font-size:1.5em;text-align:center">Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.</h1> <div class="mainpage" style="float:left; margin: 0 0.5em 1em 0; width:13em"> <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Overview"><span class="tocnumber">1</span> <span class="toctext">Overview</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Documentation"><span class="tocnumber">2</span> <span class="toctext">Documentation</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Requirements"><span class="tocnumber">3</span> <span class="toctext">Requirements</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#License"><span class="tocnumber">4</span> <span class="toctext">License</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Compiler_support"><span class="tocnumber">5</span> <span class="toctext">Compiler support</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#Get_support"><span class="tocnumber">6</span> <span class="toctext">Get support</span></a></li> <li class="toclevel-1 tocsection-7"><a href="#Bug_reports"><span class="tocnumber">7</span> <span class="toctext">Bug reports</span></a></li> <li class="toclevel-1 tocsection-8"><a href="#Mailing_list"><span class="tocnumber">8</span> <span class="toctext">Mailing list</span></a></li> <li class="toclevel-1 tocsection-9"><a href="#Discord_Server"><span class="tocnumber">9</span> <span class="toctext">Discord Server</span></a></li> <li class="toclevel-1 tocsection-10"><a href="#Contributing_to_Eigen"><span class="tocnumber">10</span> <span class="toctext">Contributing to Eigen</span></a></li> <li class="toclevel-1 tocsection-11"><a href="#Projects_using_Eigen"><span class="tocnumber">11</span> <span class="toctext">Projects using Eigen</span></a></li> <li class="toclevel-1 tocsection-12"><a href="#Credits"><span class="tocnumber">12</span> <span class="toctext">Credits</span></a></li> </ul> </div> </div> <div style="margin-left:10em"> <table> <tr> <td style="vertical-align:top;padding-right:0.5em"> <h2><a href="https://eigen.tuxfamily.org/index.php?title=Special%3AAllPages&from=&to=&namespace=100"> Announcements </a></h2> <div class="news"> <div class="odd"> <p><a class="title" href="javascript:showHideDiv('news250');">Eigen 3.4.0 released!</a> <span class="date"> (18.08.2021) </span><a href="/index.php?title=News:Eigen 3.4.0 released!"><img src="/extensions/News/document.png" alt="doc"/></a> </p> <div id="news250" style="display: none;" class="box">Eigen 3.4.0 has been released on August 18, 2021. <p><b>Notice:</b> that 3.4.x will be the last major release series of Eigen that will support c++03. The master branch will drop c++03 support after this release. </p><p>The source archive is available at: <a rel="nofollow" class="external free" href="https://gitlab.com/libeigen/eigen/-/releases/3.4.0">https://gitlab.com/libeigen/eigen/-/releases/3.4.0</a> </p> Please check the <a href="/index.php?title=3.4" title="3.4">release page</a> for a list of changes.</div></div><div class="even"> <p><a class="title" href="javascript:showHideDiv('news244');">Eigen 3.4-rc1 released!</a> <span class="date"> (19.04.2021) </span><a href="/index.php?title=News:Eigen 3.4-rc1 released!"><img src="/extensions/News/document.png" alt="doc"/></a> </p> <div id="news244" style="display: none;" class="box">Eigen 3.4-rc1 has been released on April 19, 2021. <p>Depending on the amount of reported issues, 3.4 will be released late April or early May. </p><p>The source archive is available at: <a rel="nofollow" class="external free" href="https://gitlab.com/libeigen/eigen/-/releases/3.4-rc1">https://gitlab.com/libeigen/eigen/-/releases/3.4-rc1</a> </p> Please check the <a href="/index.php?title=3.4" title="3.4">release page</a> for a list of changes.</div></div><div class="odd"> <p><a class="title" href="javascript:showHideDiv('news240');">Eigen 3.3.9 released!</a> <span class="date"> (04.12.2020) </span><a href="/index.php?title=News:Eigen 3.3.9 released!"><img src="/extensions/News/document.png" alt="doc"/></a> </p> <div id="news240" style="display: none;" class="box">Eigen 3.3.9 has been released on December 4, 2020. <p>This is a maintenance release fixing minor bugs and compilation issues. For more details have a look at the <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.3.9">changelog</a>. </p> The sources are available at <a rel="nofollow" class="external free" href="https://gitlab.com/libeigen/eigen/-/releases/3.3.9">https://gitlab.com/libeigen/eigen/-/releases/3.3.9</a>.</div></div><div class="even"> <p><a class="title" href="javascript:showHideDiv('news239');">Eigen on Discord</a> <span class="date"> (16.11.2020) </span><a href="/index.php?title=News:Eigen on Discord"><img src="/extensions/News/document.png" alt="doc"/></a> </p> <div id="news239" style="display: none;" class="box">Join our <a rel="nofollow" class="external text" href="https://discord.gg/2SkEJGqZjR">Discord server</a> to discuss Eigen-related topics with other users and developers.</div></div><div class="odd"> <p><a class="title" href="javascript:showHideDiv('news238');">Eigen 3.3.8 released!</a> <span class="date"> (05.10.2020) </span><a href="/index.php?title=News:Eigen 3.3.8 released!"><img src="/extensions/News/document.png" alt="doc"/></a> </p> <div id="news238" style="display: none;" class="box">Eigen 3.3.8 has been released on October 5, 2020. <p>This is a maintenance release fixing minor bugs and compilation issues. For more details have a look at the <a rel="nofollow" class="external text" href="http://eigen.tuxfamily.org/index.php?title=ChangeLog#Eigen_3.3.8">changelog</a>. </p> The sources are available at <a rel="nofollow" class="external free" href="https://gitlab.com/libeigen/eigen/-/releases/3.3.8">https://gitlab.com/libeigen/eigen/-/releases/3.3.8</a>.</div></div></div> </td> <td style="vertical-align:top;border-left:solid 1px black;padding-left:1em"> <h2>Get it</h2> <p>The <b>latest stable release</b> is Eigen 3.4.0. Get it here: <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2">tar.bz2</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz">tar.gz</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip">zip</a>. <a href="/index.php?title=ChangeLog#Eigen_3.4.0" title="ChangeLog">Changelog.</a> </p><p>The <b>latest 3.3 release</b> is Eigen 3.3.9. Get it here: <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.bz2">tar.bz2</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz">tar.gz</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.zip">zip</a>. <a href="/index.php?title=ChangeLog#Eigen_3.3.9" title="ChangeLog">Changelog.</a> </p><p>The <b>latest 3.2 release</b> is Eigen 3.2.10. Get it here: <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.tar.bz2">tar.bz2</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.tar.gz">tar.gz</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.zip">zip</a>. <a href="/index.php?title=ChangeLog#Eigen_3.2.10" title="ChangeLog">Changelog.</a> </p><p>The <b>unstable</b> source code from the <b>master</b> is there: <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/master/eigen-master.tar.bz2">tar.bz2</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/master/eigen-master.tar.gz">tar.gz</a>, <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/archive/master/eigen-master.zip">zip</a>. </p><p>To check out the Eigen repository using <a rel="nofollow" class="external text" href="https://git-scm.com/">Git</a>, do: </p> <pre>git clone <a rel="nofollow" class="external free" href="https://gitlab.com/libeigen/eigen.git">https://gitlab.com/libeigen/eigen.git</a> </pre> <p><br /> [ <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/releases">other downloads</a> ] [ <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/tree/master">browse the source code</a> ] </p> </td> </tr> </table> </div> <div style="clear: both;"></div> <h2><span class="mw-headline" id="Overview">Overview</span></h2> <ul> <li> <b><a href="/index.php?title=Versatility" title="Versatility">Eigen is versatile</a>.</b> <ul> <li> It supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices. </li> <li> It supports all standard numeric types, including std::complex, integers, and is easily extensible to <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/TopicCustomizing_CustomScalar.html">custom numeric types</a>. </li> <li> It supports various <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html">matrix decompositions</a> and <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/group__TutorialGeometry.html">geometry features</a>. </li> <li> Its ecosystem of <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/unsupported/index.html">unsupported modules</a> provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more. </li> </ul> </li> <li> <b><a href="/index.php?title=Benchmark" title="Benchmark">Eigen is fast</a>.</b> <ul> <li> Expression templates allow intelligently removing temporaries and enable <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/TopicLazyEvaluation.html">lazy evaluation</a>, when that is appropriate. </li> <li> <a href="/index.php?title=FAQ#Vectorization" title="FAQ">Explicit vectorization</a> is performed for SSE 2/3/4, AVX, AVX2, FMA, AVX512, ARM NEON (32-bit and 64-bit), PowerPC AltiVec/VSX (32-bit and 64-bit), ZVector (s390x/zEC13) SIMD instruction sets, and since 3.4 MIPS MSA with graceful fallback to non-vectorized code. </li> <li> Fixed-size matrices are fully optimized: dynamic memory allocation is avoided, and the loops are unrolled when that makes sense. </li> <li> For large matrices, special attention is paid to cache-friendliness. </li> </ul> </li> <li> <b><a href="/index.php?title=Reliability" title="Reliability">Eigen is reliable</a>.</b> <ul> <li> Algorithms are carefully selected for reliability. Reliability trade-offs are <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html">clearly documented</a> and <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html">extremely</a> <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/classEigen_1_1FullPivHouseholderQR.html">safe</a> <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/classEigen_1_1FullPivLU.html">decompositions</a> are available. </li> <li> Eigen is thoroughly tested through its own <a href="/index.php?title=Tests" title="Tests">test suite</a> (over 500 executables), the standard BLAS test suite, and parts of the LAPACK test suite. </li> </ul> </li> <li> <b><a href="/index.php?title=API_Showcase" title="API Showcase">Eigen is elegant</a>.</b> <ul> <li> The API is extremely <a href="/index.php?title=API_Showcase" title="API Showcase">clean and expressive</a> while feeling natural to C++ programmers, thanks to expression templates. </li> <li> Implementing an algorithm on top of Eigen feels like just copying pseudocode. </li> </ul> </li> <li> <b><a href="#Compiler_support">Eigen has good compiler support</a></b> as we run our test suite against many compilers to guarantee reliability and work around any compiler bugs. Eigen up to version 3.4 is standard C++03 and maintains reasonable compilation times. Versions following 3.4 will be C++14. </li> </ul> <h2><span class="mw-headline" id="Documentation">Documentation</span></h2> <ul> <li> <b><a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/">Eigen 3 documentation</a></b>: this includes a <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/GettingStarted.html">getting started guide</a>, a <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html">long tutorial</a>, a <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/group__QuickRefPage.html">quick reference</a>, and page about <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox/Eigen2ToEigen3.html">porting from Eigen 2 to Eigen 3</a>. </li> </ul> <ul> <li> <b><a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox-devel/">Eigen development branch documentation</a></b> </li> </ul> <ul> <li> <b><a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox-2.0/">Eigen 2 documentation</a></b> (old): this includes the <a rel="nofollow" class="external text" href="https://eigen.tuxfamily.org/dox-2.0/TutorialCore.html">Eigen 2 Tutorial</a>. </li> </ul> <ul> <li> <a href="/index.php?title=FAQ" title="FAQ"> FAQ (Frequently asked questions) </a> </li> </ul> <ul> <li> <a href="/index.php?title=Publications" title="Publications">Presentations and talks</a> </li> </ul> <h2><span class="mw-headline" id="Requirements">Requirements</span></h2> <p>Eigen doesn't have any dependencies other than the C++ standard library. </p><p>We use the CMake build system, but only to build the documentation and unit-tests, and to automate installation. If you just want to use Eigen, you can use the header files right away. There is no binary library to link to, and no configured header file. Eigen is a pure template library defined in the headers. </p> <h2><span class="mw-headline" id="License">License</span></h2> <p>Eigen is <a rel="nofollow" class="external text" href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>. Starting from the 3.1.1 version, it is licensed under the <a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/MPL/2.0/">MPL2</a>, which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official <a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/MPL/2.0/FAQ/">MPL2 FAQ</a>. </p><p>Earlier versions were licensed under the LGPL3+. </p><p>Note that currently, a few features rely on third-party code licensed under the LGPL: constrained_cg. Such features can be explicitly disabled by compiling with the EIGEN_MPL2_ONLY preprocessor symbol defined. Furthermore, Eigen provides interface classes for various third-party libraries (usually recognizable by the <Eigen/*Support> header name). Of course you have to mind the license of the so-included library when using them. </p><p>Virtually any software may use Eigen. For example, closed-source software may use Eigen without having to disclose its own source code. Many proprietary and closed-source software projects are using Eigen right now, as well as many BSD-licensed projects. </p><p>See the <b><a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/MPL/2.0/FAQ/">MPL2 FAQ</a></b> for more information, and do not hesitate to <a href="#Mailing_list">contact us</a> if you have any questions. </p> <h2><span class="mw-headline" id="Compiler_support">Compiler support</span></h2> <p>Eigen is standard C++98 and so should theoretically be compatible with any compliant compiler. Whenever we use some non-standard feature, that is optional and can be disabled. </p><p>Eigen is being successfully used with the following compilers: </p> <ul> <li> <a rel="nofollow" class="external text" href="http://gcc.gnu.org">GCC</a>, version 4.8 and newer. Older versions of gcc might work as well but they are not tested anymore. </li> <li> <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Visual_C%2B%2B">MSVC</a> (Visual Studio), 2012 and newer. Be aware that enabling IntelliSense (/FR flag) is known to trigger some internal compilation errors. The old 3.2 version of Eigen supports MSVC 2010, and the 3.1 version supports MSVC 2008. </li> <li> <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Intel_C%2B%2B_Compiler">Intel C++ compiler</a>. Enabling the <tt>-inline-forceinline</tt> option is highly recommended. </li> <li> <a rel="nofollow" class="external text" href="http://clang.llvm.org/cxx_status.html">LLVM/CLang++</a>, version 3.4 and newer. (The 2.8 version used to work fine, but it is not tested with up-to-date versions of Eigen) </li> <li> XCode 7 and newer. Based on LLVM/CLang. </li> <li> <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Mingw">MinGW</a>, recent versions. Based on GCC. </li> <li> QNX's QCC compiler. </li> </ul> <p>Regarding performance, Eigen performs best with compilers based on GCC or LLVM/Clang. See <a href="/index.php?title=FAQ#Compilation" title="FAQ">this page</a> for some known compilation issues. </p> <h2><span class="mw-headline" id="Get_support">Get support</span></h2> <p>Need help using Eigen? Try this: </p> <ul> <li> To get help, <a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/tagged/eigen">stackoverflow</a> is your best resource. </li> <li> Want to discuss something with the developers? Use our <a href="#Mailing_list">mailing list</a>. </li> <li> Want to have an informal chat on Eigen? Use our <a href="#Discord_Server">Discord server</a>. </li> </ul> <h2><span class="mw-headline" id="Bug_reports">Bug reports</span></h2> <p>For bug reports and feature requests, please use the <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/issues">issue tracker on GitLab</a>. </p> <h2><span class="mw-headline" id="Mailing_list">Mailing list</span></h2> <p>Address: <b>eigen@lists.tuxfamily.org</b> </p> <ul> <li> To subscribe, send a mail with subject <i>subscribe</i> to eigen-request@lists.tuxfamily.org </li> <li> To unsubscribe, send a mail with subject <i>unsubscribe</i> to eigen-request@lists.tuxfamily.org </li> </ul> <p>In both cases, you will get a confirmation mail to which you need to reply. If you have any trouble please ask at the <i>eigen-core-team</i> address for help. </p><p>The Eigen mailing list can be used for discussing general Eigen development topics. End-user questions are often better asked on the Use our <a href="#Discord_Server">Discord server</a>. Development of specific features is best tracked and discussed on our <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/issues">issue tracker on GitLab</a>. </p><p>This mailing list is <b>public</b> and has <b><a rel="nofollow" class="external text" href="https://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/">public archives</a></b>. </p><p><b>Important:</b> You must subscribe before you may post. Sorry, this is our only way to prevent spam. </p><p><b>Important:</b> After you sent your subscription request, you will receive a confirmation e-mail. Check your spam folder, as these confirmation e-mails are often filtered as spam! </p><p>There is also a <b>private</b> mailing list which should only be used if you want to write privately to a few core developers (it is read by Gaël, Christoph, Rasmus, Antonio, David, and Constantino). The address is <b>eigen-core-team</b> at the same lists server as for the <a href="#Mailing_list">Eigen mailing list</a>. You do not need to subscribe (actually, subscription is closed). For all Eigen development discussion, use the public mailing list or the <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/issues">issue tracker on GitLab</a> instead. </p> <h2><span class="mw-headline" id="Discord_Server">Discord Server</span></h2> <p>Join our <a rel="nofollow" class="external text" href="https://discord.com/invite/2SkEJGqZjR">Discord server</a>! </p><p>Everybody's welcome to discuss Eigen-related topics or just chat. Bugs should still be reported on the <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/issues">issue tracker on GitLab</a> and formal discussions should happen on the <a href="#Mailing_list">mailing list</a>. Discord is an ideal place to ask other users and developers for help. </p> <h2><span class="mw-headline" id="Contributing_to_Eigen">Contributing to Eigen</span></h2> <p>Eigen is written and maintained by volunteers. You can contribute in many ways to help: give support to new users, write and improve documentation, helping with bugs and other issues in the <a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/issues">issue tracker on GitLab</a>, discussing the design and the API, running tests and writing code. See our page on <a href="/index.php?title=Contributing_to_Eigen" title="Contributing to Eigen">Contributing to Eigen</a> for pointers to get you started. </p> <h2><span class="mw-headline" id="Projects_using_Eigen">Projects using Eigen</span></h2> <p>Feel free to add yourself! If you don't have access to the wiki or if you are not sure about the relevance of your project, ask at the <a href="#Mailing_list">#Mailing list</a>. </p><p><b>Extensions, numerical computation</b> </p> <ul> <li> Google's <a rel="nofollow" class="external text" href="https://www.tensorflow.org">TensorFlow</a> is an Open Source Software Library for Machine Intelligence </li> <li> Google's <a rel="nofollow" class="external text" href="http://ceres-solver.org/">Ceres</a> solver is a portable C++ library that allows for modeling and solving large complicated nonlinear least squares problems. </li> <li> The Manifold ToolKit <a rel="nofollow" class="external text" href="https://openslam-org.github.io/MTK">MTK</a> provides easy mechanisms to enable arbitrary algorithms to operate on manifolds. It also provides a Sparse Least Squares Solver (SLoM) and an Unscented Kalman Filter (UKFoM). </li> <li> <a rel="nofollow" class="external text" href="https://github.com/ethz-adrl/ifopt">IFOPT</a> is a modern, light-weight, Eigen-based C++ interface to Nonlinear Programming solvers, such as Ipopt and Snopt. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/PatWie/CppNumericalSolvers">CppNumericalSolvers</a> is a lightweight header-only library for non-linear optimization including various solvers: CG, L-BGFS-B, CMAes, Nelder-Mead. </li> <li> <a rel="nofollow" class="external text" href="https://gtsam.org/">GTSAM</a> is a library implementing smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks. </li> <li> <a rel="nofollow" class="external text" href="https://openslam-org.github.io/g2o.html">g2o</a> is an open-source C++ framework for optimizing graph-based nonlinear least-square problems. </li> <li> <a rel="nofollow" class="external text" href="https://code.google.com/archive/p/redsvd/">redsvd</a> is a RandomizED Singular Value Decomposition library for sparse or very large dense matrices. </li> <li> <a rel="nofollow" class="external text" href="https://cran.r-project.org/web/packages/trustOptim/">trustOptim</a> is a trust-region based non linear solver supporting sparse Hessians (C++ implementation with R binding). </li> <li> <a rel="nofollow" class="external text" href="https://shogun-toolbox.org/">Shogun</a>: a large scale machine learning toolbox. </li> <li> <a rel="nofollow" class="external text" href="https://mc-stan.org/">Stan</a>: a statistical package based on Eigen that includes a reverse-mode automatic differentiation implementation. </li> <li> <a rel="nofollow" class="external text" href="https://gitlab.com/stochastic-control/StOpt">StOpt</a>, the STochastic OPTimization library aims at providing tools in C++ for solving some stochastic optimization problems encountered in finance or in the industry. </li> <li> <a rel="nofollow" class="external text" href="https://nelson-numerical-software.github.io/nelson-website/">Nelson</a> an open computing environment for engineering and scientific applications using modern C/C++ libraries (Boost, Eigen, FFTW, …) and others state of art numerical libraries. (GPL2) </li> <li> <a rel="nofollow" class="external text" href="https://github.com/marcel-goldschen-ohm/EigenLab">EigenLab</a> is a header only library to parse and evaluate expressions working on Eigen matrices. </li> <li> <a rel="nofollow" class="external text" href="http://spafedte.github.io/">SpaFEDte</a> a C++ library for discontinuous Galerkin discretizations on general meshes. </li> <li> <a rel="nofollow" class="external text" href="https://biicode.github.io/biicode/">biicode</a> a C and C++ dependency manager that #includes the most popular and useful C/C++ libs and frameworks. </li> <li> <a rel="nofollow" class="external text" href="https://mklab.iti.gr/results/aksda/">CERTH's AKSDA</a>: a GPU-accelerated dimensionality reduction and classification method for high-dimensional data. </li> <li> <a rel="nofollow" class="external text" href="https://spectralib.org/">Spectra</a> stands for Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK. It is a header-only C++ library for large scale eigenvalue problems, built on top of Eigen. </li> <li> <a rel="nofollow" class="external text" href="https://www.precice.org/">preCICE</a> is a coupling library for partitioned multi-physics simulations, including, but not restricted to fluid-structure interaction and conjugate heat transfer simulations. It supports OpenFOAM, CalculiX, SU2, and several other well-known, as well as in-house solvers. It is free/open-source software and its code is available on GitHub under the LGPL3 license. <a rel="nofollow" class="external text" href="https://github.com/precice/">Link to source code and documentation</a> </li> </ul> <p><b>Bindings</b> </p> <ul> <li> The <a rel="nofollow" class="external text" href="http://cran.r-project.org/web/packages/RcppEigen/index.html">RcppEigen</a> package provides bindings and more for R. </li> <li> <a rel="nofollow" class="external text" href="https://pypi.org/project/minieigen/">minieigen</a> is small boost::python wrapper for Eigen's core classes (dense fixed and dynamic-sized vectors, matrices, aligned boxes, quaternions; with integer, floating and complex scalars) including operators and subset of Eigen's API methods. </li> <li> <a rel="nofollow" class="external text" href="https://pypi.org/project/eigency/">Eigency</a> is a Cython interface between the numpy arrays and the Matrix/Array classes of the Eigen C++ library. </li> <li> <a rel="nofollow" class="external text" href="https://pythonhosted.org/sparray/">sparray</a>: a python binding of the Sparse module - alpha stage. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/owlbarn/eigen">OCamlEigen</a>, a thin OCaml interface to the Eigen 3 C++ library. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/osidorkin/haskell-eigen">haskell-eigen</a> offers bindings for the Haskell language. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/hughperkins/jeigen">jeigen</a>, a Java wrapper for Eigen. </li> <li> <a rel="nofollow" class="external text" href="https://www.autoitscript.com/forum/files/file/319-eigen4autoit/">Eigen4AutoIt</a>, a wrapper for the AutoIt scripting language. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/ggcrunchy/eigen-lua">eigen-lua</a>, a Lua wrapper around parts of the Eigen numerical library. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/stack-of-tasks/eigenpy">Eigenpy</a>: Efficient bindings between Numpy and Eigen using Boost.Python with support of the Geometry module </li> </ul> <p><b>Science</b> </p> <ul> <li> <a rel="nofollow" class="external text" href="https://www.appliedmaterials.com/semiconductor/products/materials-to-device-simulation">GINESTRA</a>, a semiconductor device simulator with a focus on advanced dielectric materials and interfaces. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/gismo/gismo/wiki">G+Smo</a>, an open-source library for geometric design and numerical simulation with isogeometric analyis. </li> <li> <a rel="nofollow" class="external text" href="https://flexiblesusy.hepforge.org/">FlexibleSUSY</a>, a spectrum generator which calculates the masses of elementary particles. </li> <li> The <a rel="nofollow" class="external text" href="https://home.cern/science/experiments/atlas">ATLAS</a> experiment at the <a rel="nofollow" class="external text" href="https://home.cern/science/accelerators/large-hadron-collider">LHC (Large Hadron Collider)</a> at CERN is using Eigen, as reported in <a rel="nofollow" class="external text" href="http://iopscience.iop.org/article/10.1088/1742-6596/608/1/012047/pdf">this article</a>, noting "Eigen was chosen since it offered the largest performance improvements for ATLAS use cases of the options investigated." </li> <li> The Large Survey Synoptic Telescope (<a rel="nofollow" class="external text" href="http://www.lsst.org/lsst/">website</a>; <a rel="nofollow" class="external text" href="https://dev.lsstcorp.org/trac">trac</a>) is a project to build a 3.2Mpixel camera on an 8.4m telescope and survey the entire visible sky every three days. </li> <li> <a rel="nofollow" class="external text" href="http://gnudatalanguage.sourceforge.net/">Gnu Data Language</a>, a GPL interpretor of IDL syntax codes. </li> <li> <a rel="nofollow" class="external text" href="https://avogadro.cc/">Avogadro</a>, an opensource advanced molecular editor. </li> <li> The 3D astronomical visualization application <a rel="nofollow" class="external text" href="http://www.shatters.net/celestia">Celestia</a> is now using Eigen for all orbital and geometric calculation. </li> <li> <a rel="nofollow" class="external text" href="https://yade-dem.org/doc/">Yade</a>, platform for dynamic particle models, uses Eigen for geometric computations (switched from the <a rel="nofollow" class="external text" href="https://www.geometrictools.com">WildMagic</a> package) </li> <li> <a rel="nofollow" class="external text" href="https://tng.tuxfamily.org">SLangTNG</a>, an application suite for numerical analysis, linear algebra, advanced statistics, FEM, structural dynamics, data visualization, etc. </li> <li> <a rel="nofollow" class="external text" href="http://clip4.sourceforge.net/">Clip</a>, an opensource program for the orientation of Laue exposures. </li> <li> <a rel="nofollow" class="external text" href="https://www.advanpix.com/">Multiprecision Computing Toolbox for MATLAB</a> uses Eigen as core library for matrix computations. </li> <li> <a rel="nofollow" class="external text" href="http://pteros.sourceforge.net/">Pteros</a>, a C++ library for molecular modeling. </li> <li> <a rel="nofollow" class="external text" href="http://cufflinks.cbcb.umd.edu/">Cufflinks</a>, a tool for transcript assembly, differential expression, and differential regulation for RNA-Sequences. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/jbaayen/vortexje">Vortexje</a>: a GPL library for simulation implementing the source-doublet panel method. </li> <li> <a rel="nofollow" class="external text" href="https://woodem.eu">Woo(dem)</a>, particle dynamics software (DEM, FEM); Eigen wrapped using <a rel="nofollow" class="external text" href="https://pypi.org/project/minieigen/">minieigen</a> in Python. </li> <li> <a rel="nofollow" class="external text" href="https://R-nimble.org">NIMBLE</a>, a system for programming statistical algorithms such as Markov chain Monte Carlo from R. NIMBLE includes a compiler for a subset of R to C++ that uses Eigen. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/bjaraujo/ENigMA">ENigMA</a> is a multiphysics numerical library which uses Eigen. </li> <li> <a rel="nofollow" class="external text" href="http://www.imstk.org/">iMSTK</a> is an open source software toolkit written in C++ that aids rapid prototyping of interactive multi-modal surgical simulations. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/mriesch-tum/mbsolve">mbsolve</a> is an open-source solver tool for the Maxwell-Bloch equations, which are used to model light-matter interaction in nonlinear optics. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/spin-scenario/spin-scenario">Spin-Scenario</a>, a flexible scripting environment for realistic magnetic resonance (NMR/MRI) simulations. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/softwareQinc/qpp">Quantum++</a> is a modern C++ general purpose quantum computing library, composed solely of template header files. </li> <li> <a rel="nofollow" class="external text" href="https://ciip.in.tum.de/elsadocs/">elsa</a>, an elegant framework for tomographic reconstruction. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/spinicist/QUIT">Quit</a>, a collection of programs for processing quantitative MRI data. </li> </ul> <p><b>Robotics and engineering</b> </p> <ul> <li> The <a rel="nofollow" class="external text" href="https://yujinrobot.com/">Yujin Robot</a> company uses Eigen for the navigation and arm control of their next gen robots. (switched from blitz, ublas and tvmet) </li> <li> The <a rel="nofollow" class="external text" href="http://www.ros.org">Robotic Operating System (ROS)</a> developed by <a rel="nofollow" class="external text" href="http://www.willowgarage.com">Willow Garage</a>. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/cbecker/openahrs">openAHRS</a> Open Source <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Inertial_Measurement_Unit">IMU</a> / <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Attitude_and_Heading_Reference_Systems">AHRS</a> </li> <li> The <a rel="nofollow" class="external text" href="http://www.dribblers.de/">Darmstadt Dribblers</a> autonomous Humanoid Robot Soccer Team and <a rel="nofollow" class="external text" href="https://www.teamhector.de/">Darmstadt Rescue Robot Team</a> use Eigen for navigation and world modeling. </li> <li> The <a rel="nofollow" class="external text" href="http://www.mrpt.org/">Mobile Robot Programming Toolkit (MRPT)</a>, a set of libraries for SLAM, localization and computer vision, moved to Eigen (switched from home made math classes). </li> <li> <a rel="nofollow" class="external text" href="https://github.com/rbdl/rbdl">RBDL</a>: a C++ library for rigid body dynamics. </li> <li> <a rel="nofollow" class="external text" href="https://www.roboticslibrary.org/">RL</a> a self-contained C++ library for robot kinematics, motion planning and control. </li> <li> <a rel="nofollow" class="external text" href="https://biomechanical-toolkit.github.io/">BTK</a> is a Biomechanical ToolKit, licensed under BSD whose primary goal is to propose a set of tools for the analysis of the human body motion which is independent of any acquisition system. It proposes bindings for Matlab/Octave and Python, and a GUI software called Mokka to visualize/analyze 3D/2D motion capture data. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/ethz-asl/libpointmatcher">libpointmatcher</a> is a "Iterative Closest Point" library for 3D mapping in robotics. </li> <li> <a rel="nofollow" class="external text" href="http://roboptim.net/">RobOptim</a> is a modern, Open-Source, C++ library for numerical optimization applied to robotics. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/ethz-adrl/towr">towr</a> is a light-weight and extensible C++ library for trajectory optimization for legged robots. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/stack-of-tasks/pinocchio">Pinocchio</a>: a fast and efficient Rigid Body Dynamics library </li> <li> <a rel="nofollow" class="external text" href="https://github.com/humanoid-path-planner">The Humanoid Path Planner</a>: a software for Motion and Manipulation Planning </li> <li> <a rel="nofollow" class="external text" href="http://www.mira-project.org">MIRA</a> is a cross-platform framework written in C++ that provides a middleware for the development of complex robotic applications, which consists of distributed software modules. </li> </ul> <p><b>Computer Graphics, Geometry, Visualization</b> </p> <ul> <li> <a rel="nofollow" class="external text" href="http://www.cgal.org">Computational Geometry Algorithms Library (CGAL)</a>, a collaborative effort to develop a robust, easy to use, and efficient C++ software library of geometric data structures and algorithms. </li> <li> <a rel="nofollow" class="external text" href="https://pointclouds.org">Point Cloud Library (PCL)</a>, a large scale, BSD licensed, open project for point cloud processing. Uses Eigen as their math backend. </li> <li> <a rel="nofollow" class="external text" href="http://vcg.sourceforge.net">VcgLib</a>, an opensource C++ template library for the manipulation and processing of triangle and tetrahedral meshes. (switched from home made math classes) </li> <li> <a rel="nofollow" class="external text" href="https://www.meshlab.net/">MeshLab</a>, an opensource software for the processing and editing of unstructured 3D triangular meshes and point cloud. (switched from vcglib's math classes) </li> <li> <a rel="nofollow" class="external text" href="https://github.com/patrikhuber/eos">eos</a>, an opensource and lightweight 3D Morphable Face Model fitting library in modern C++11/14. </li> <li> <a rel="nofollow" class="external text" href="https://topology-tool-kit.github.io/">The Topology ToolKit (TTK)</a>, an open-source library and software collection for topological data analysis in scientific visualization. </li> <li> <a rel="nofollow" class="external text" href="http://www.theia-sfm.org/">Theia</a>, an opensource C++ structure from motion library tailored for researchers, BSD licensed. </li> <li> <a rel="nofollow" class="external text" href="https://developer.blender.org/tag/libmv/">libmv</a>, an opensource structure from motion library. (switched from FLENS) </li> <li> <a rel="nofollow" class="external text" href="http://imagine.enpc.fr/~moulonp/openMVG/">openMVG</a>, a simple library for multiple view geometry. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/ahupowerdns/metronome">metronome</a> , a simple metric storage/graphing engine using Eigen for SVD least squares interpolation & data consolidation </li> <li> <a rel="nofollow" class="external text" href="http://vcg.isti.cnr.it/piccante/">piccante</a>, a C++ imaging library designed for High Dynamic Range (HDR) processing. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/libigl/libigl/">libigl</a> is a simple C++ geometry processing library with wide functionality. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/gabyx/ApproxMVBB">ApproxMVBB</a> is a small library to compute fast approximate oriented bounding boxes of 3D point clouds. </li> <li> <a rel="nofollow" class="external text" href="https://github.com/madplotlib/madplotlib">Madplotlib</a> makes it easier to plot 2D charts on Qt from data created by Eigen::ArrayXf. </li> <li> <a rel="nofollow" class="external text" href="https://www.3dflow.net/3df-zephyr-photogrammetry-software/">3DF Zephyr</a> is a commercial photogrammetry and 3D modeling software, developed by <a rel="nofollow" class="external text" href="https://www.3dflow.net">3Dflow srl</a> </li> </ul> <p><b>Mobile apps</b> </p> <ul> <li> <a rel="nofollow" class="external text" href="https://www.layar.com/">Layar</a>, an augmented reality application for IPhone and Android. </li> <li> <a rel="nofollow" class="external text" href="http://www.redsword.com">Red Sword Studios</a>, maker of the iPhone games <a rel="nofollow" class="external text" href="http://linktoapp.com/Gradient">Gradient</a>, <a rel="nofollow" class="external text" href="http://linktoapp.com/Fortress+Luna">Fortress Luna</a>, <a rel="nofollow" class="external text" href="http://linktoapp.com/Stimulus">Stimulus</a>, and Lustre, uses Eigen extensively. Why roll your own matrix/vector/transformation code when there's Eigen? </li> <li> <a rel="nofollow" class="external text" href="http://mousebird.github.io/WhirlyGlobe/">WhirlyGlobe-Maply</a> an open source geospatial display toolkit for iOS and Android. It implements both a 3D interactive globe and a 2D (slippy) map </li> </ul> <p><b>KDE</b> (our origins!) </p> <ul> <li> <a rel="nofollow" class="external text" href="https://edu.kde.org/step/">Step</a>, an educational physics simulator. </li> <li> <a rel="nofollow" class="external text" href="https://calligra.org/">Calligra Sheets</a>, the spreadsheet module of <a rel="nofollow" class="external text" href="https://kde.org/applications/office">KDE's office suite</a> uses Eigen for matrix functions such as MINVERSE, MMULT, MDETERM. </li> <li> <a rel="nofollow" class="external text" href="https://krita.org/en/">Krita</a>, a professional free and open-source painting program </li> <li> <a rel="nofollow" class="external text" href="https://edu.kde.org/kalzium/">Kalzium</a> uses Eigen indirectly through the aforementioned <a rel="nofollow" class="external text" href="http://avogadro.openmolecules.net">Avogadro</a> library. </li> <li> the Mandelbrot wallpaper plugin, some screensavers, <a rel="nofollow" class="external text" href="https://freehackers.org/~rivo/kgllib/html/">kgllib</a>, <a rel="nofollow" class="external text" href="http://websvn.kde.org/trunk/playground/graphics/solidkreator/">solidkreator</a>, etc. </li> </ul> <p><br /> If you are aware of some interesting projects using Eigen, please send us a message (including a link and short description) or directly edit this wiki page! </p> <h2><span class="mw-headline" id="Credits">Credits</span></h2> <p>The Eigen project was started by Benoît Jacob (founder) and Gaël Guennebaud (guru). Many other people have since contributed their talents to help make Eigen successful. Here's an alphabetical list: (note to contributors: <b>do add yourself!</b>) </p> <table> <tr> <td> Philip Avery </td> <td> Fix bug and add functionality to AutoDiff module </td></tr> <tr> <td> Abraham Bachrach </td> <td> Added functions for cwise min/max with a scalar </td></tr> <tr> <td> Sebastien Barthelemy </td> <td> Fix EIGEN_INITIALIZE_MATRICES_BY_NAN </td></tr> <tr> <td> Carlos Becker </td> <td> Wrote some of the pages of the tutorial </td></tr> <tr> <td> David Benjamin </td> <td> Artwork: the owls </td></tr> <tr> <td> Cyrille Berger </td> <td> Fix error in logic of installation script </td></tr> <tr> <td> Armin Berres </td> <td> Lots of fixes (compilation warnings and errors) </td></tr> <tr> <td> Jose Luis Blanco </td> <td> Build fixes for MSVC and AMD64, correction in docs </td></tr> <tr> <td> Mark Borgerding </td> <td> FFT module </td></tr> <tr> <td> Romain Bossart </td> <td> Updates to Sparse solvers </td></tr> <tr> <td> Kolja Brix </td> <td> Added docs to Householder module, fixes for ARPACK wrapper, KroneckerProduct and GMRES </td></tr> <tr> <td> Gauthier Brun </td> <td> Making a start with a divide-and-conquer SVD implementation </td></tr> <tr> <td> Gabriele Buondonno </td> <td> Vector2d cross product </td></tr> <tr> <td> Philipp Büttgenbach </td> <td> Bug fix when differentiating a one-dimensional spline </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://www.freehackers.org/thomas/">Thomas Capricelli</a> </td> <td> <a rel="nofollow" class="external text" href="https://www.freehackers.org/thomas/2009/05/18/feedback-about-converting-eigen2-to-mercurial/">Migration to mercurial</a>, Non-linear optimization and numerical differentiation, cron-job to update the online dox </td></tr> <tr> <td> Nicolas Carre </td> <td> Making a start with a divide-and-conquer SVD implementation </td></tr> <tr> <td> Jean Ceccato </td> <td> Making a start with a divide-and-conquer SVD implementation </td></tr> <tr> <td> Vladimir Chalupecky </td> <td> CMake fix </td></tr> <tr> <td> Benjamin Chrétien </td> <td> Bug fix for PolynomialSolver (linear polynomials), various typos </td></tr> <tr> <td> Andrew Coles </td> <td> Fixes (including a compilation error) </td></tr> <tr> <td> Jeff "complexzeros" </td> <td> Spline interpolation with derivatives </td></tr> <tr> <td> Everton Constantino </td> <td> General performance enhancements for PowerPC </td></tr> <tr> <td> Marton Danoczy </td> <td> MSVC compilation fix, support for ARM NEON with Clang 3.0 and LLVM-GCC </td></tr> <tr> <td> Jeff Dean </td> <td> Fix in vectorized square root for small arguments </td></tr> <tr> <td> Georg Drenkhahn </td> <td> CMake and STL fixes </td></tr> <tr> <td> Christian Ehrlicher </td> <td> MSVC compilation fix </td></tr> <tr> <td> Martinho Fernandes </td> <td> Make our aligned allocator support C++11 </td></tr> <tr> <td> Daniel Gomez Ferro </td> <td> Improvements in Sparse and in matrix product </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://rpg-314.blogspot.com/">Rohit Garg</a> </td> <td> Vectorized quaternion and cross products, improved integer product </td></tr> <tr> <td> Mathieu Gautier </td> <td> QuaternionMap and related improvements </td></tr> <tr> <td> Anton Gladky </td> <td> Visual Studio 2008 and GCC 4.6 compilation fixes </td></tr> <tr> <td> Stuart Glaser </td> <td> Prevent allocations in LU decomposition </td></tr> <tr> <td> Marc Glisse </td> <td> C++11 compilation issues (suffices for literals) </td></tr> <tr> <td> Frederic Gosselin </td> <td> Improve filter for hidden files in CMake </td></tr> <tr> <td> Christoph Grüninger </td> <td> Add SuperLU 5 support </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://www.labri.fr/perso/guenneba/">Gaël Guennebaud</a> </td> <td> Core developer </td></tr> <tr> <td> Philippe Hamelin </td> <td> Allow CMake project to be included in another project </td></tr> <tr> <td> Marcus D. Hanwell </td> <td> CMake improvements. Marcus is a developer at Kitware! </td></tr> <tr> <td> David Harmon </td> <td> Arpack support module </td></tr> <tr> <td> Chen-Pang He </td> <td> Many improvements to MatrixFunctions and KroneckerProduct modules </td></tr> <tr> <td> Hauke Heibel </td> <td> Extended matrix functions, STL compatibility, Splines, CMake improvements, and more ... </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://robotik.dfki-bremen.de/en/about-us/staff/chhe01.html">Christoph Hertzberg</a> </td> <td> Quaternions, shifts for Cholmod, bug fixes, lots of user support on forums and IRC </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://www.holoborodko.com/pavel/">Pavel Holoborodko</a> </td> <td> Multi-precision support with <a rel="nofollow" class="external text" href="http://www.holoborodko.com/pavel/mpfr/">MPFR C++</a>, bug fixes for non-standard scalar types </td></tr> <tr> <td> Tim Holy </td> <td> Improvements to tutorial, LDLT update and downdate </td></tr> <tr> <td> Intel </td> <td> Back-end to Intel Math Kernel Library (MKL) </td></tr> <tr> <td> Trevor Irons </td> <td> Square root for complex numbers, fix compile errors and mistake in docs </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://people.mozilla.org/~bjacob">Benoît Jacob</a> </td> <td> Core developer </td></tr> <tr> <td> Bram de Jong </td> <td> Improvement to benchmark suite </td></tr> <tr> <td> Kibeom Kim </td> <td> Implement *= /= * / operations for VectorwiseOp </td></tr> <tr> <td> Moritz Klammler </td> <td> Avoid memory leak when constructor of user-defined type throws exception </td></tr> <tr> <td> Claas Köhler </td> <td> Improvements to Fortran and FFTW in CMake </td></tr> <tr> <td> Alexey Korepanov </td> <td> Add RealQZ class </td></tr> <tr> <td> Igor Krivenko </td> <td> Properly cast constants when using non-standard scalars </td></tr> <tr> <td> Marijn Kruisselbrink </td> <td> CMake fixes </td></tr> <tr> <td> Abhijit Kundu </td> <td> Fix compilation errors in OpenGL demos </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://perlgeek.de/">Moritz Lenz</a> </td> <td> Allow solving transposed problem with SuperLU </td></tr> <tr> <td> Rasmus Munk Larsen </td> <td> Core Developer </td></tr> <tr> <td> Bo Li </td> <td> Fix bugs in Spline constructor </td></tr> <tr> <td> Sebastian Lipponer </td> <td> MSVC compilation support </td></tr> <tr> <td> Daniel Lowenberg </td> <td> Add SparseView class </td></tr> <tr> <td> David J. Luitz </td> <td> Bug fix for sparse * dense matrix product </td></tr> <tr> <td> Naumov Maks </td> <td> Bug fix in polynomial solver test </td></tr> <tr> <td> Angelos Mantzaflaris </td> <td> Fix to allow IncompleteLUT to be used with MPFR </td></tr> <tr> <td> D J Marcin </td> <td> Fix operator& precedence bug </td></tr> <tr> <td> Konstantinos A. Margaritis </td> <td> AltiVec/VSX, ARM NEON (32-bit/64-bit) and S390x SIMD (ZVector) vectorization </td></tr> <tr> <td> Roger Martin </td> <td> Component-wise arc tangent function </td></tr> <tr> <td> Ricard Marxer </td> <td> Reverse, redux improvements, the count() method, some dox </td></tr> <tr> <td> Vincenzo Di Massa </td> <td> CMake fix </td></tr> <tr> <td> Christian Mayer </td> <td> Early code review and input in technical/design discussions </td></tr> <tr> <td> Frank Meier-Dörnberg </td> <td> MSVC compatibility fixes </td></tr> <tr> <td> Keir Mierle </td> <td> LDLT decomposition and other improvements, help with MPL relicensing </td></tr> <tr> <td> Laurent Montel </td> <td> CMake improvements. Laurent is (with Alexander) one of the CMake gurus at KDE! </td></tr> <tr> <td> Eamon Nerbonne </td> <td> Compilation fixes for win32 </td></tr> <tr> <td> Alexander Neundorf </td> <td> CMake improvements. Alexander is (with Laurent) one of the CMake gurus at KDE! </td></tr> <tr> <td> Jason Newton </td> <td> Componentwise tangent functions </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://www.maths.leeds.ac.uk/~jitse/">Jitse Niesen</a> </td> <td> Matrix functions, large improvements in the Eigenvalues module and in the docs, and more ... </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://www.irisa.fr/sage/desire">Desire Nuentsa</a> </td> <td> Many improvements to Sparse module: SparseLU, SparseQR, ILUT, PaStiXSupport, … </td></tr> <tr> <td> Jan Oberländer </td> <td> Compatibility with termios.h </td></tr> <tr> <td> Jos van den Oever </td> <td> Compilation fix </td></tr> <tr> <td> Michael Olbrich </td> <td> Early patches, including the initial loop meta-unroller </td></tr> <tr> <td> Simon Pilgrim </td> <td> Optimizations for NEON </td></tr> <tr> <td> Bjorn Piltz </td> <td> Visual C compilation fix </td></tr> <tr> <td> Benjamin Piwowarski </td> <td> Add conservativeResize() for sparse matrices </td></tr> <tr> <td> Zach Ploskey </td> <td> Copy-editing of tutorial </td></tr> <tr> <td> Giacomo Po </td> <td> MINRES iterative solver </td></tr> <tr> <td> Sergey Popov </td> <td> Fix bug in SelfAdjointEigenSolver </td></tr> <tr> <td> Guoqiang QI </td> <td> Several performance improvements for ARM and x86 [<a rel="nofollow" class="external text" href="https://gitlab.com/libeigen/eigen/-/merge_requests?scope=all&state=merged&author_username=guoqiangqi1">MRs</a>]. </td></tr> <tr> <td> Manoj Rajagopalan </td> <td> Introduce middleRows() / middleCols(), bug fix for nonstandard numeric types </td></tr> <tr> <td> Stjepan Rajko </td> <td> MSVC compatibility fix </td></tr> <tr> <td> Jure Repinc </td> <td> CMake fixes </td></tr> <tr> <td> Kenneth Frank Riddile </td> <td> Lots of Windows/MSVC compatibility fixes, handling of alignment issues </td></tr> <tr> <td> Richard Roberts </td> <td> Bug fix in selection of MKL Householder QR </td></tr> <tr> <td> Adolfo Rodriguez </td> <td> Prevent allocations in matrix decompositions </td></tr> <tr> <td> Peter Román </td> <td> Support for SuperLU's ILU factorization </td></tr> <tr> <td> Oliver Ruepp </td> <td> Bug fix in sparse matrix product with row-major matrices </td></tr> <tr> <td> Radu Bogdan Rusu </td> <td> Fix compilation warning </td></tr> <tr> <td> C. Antonio Sanchez </td> <td> Core Developer </td></tr> <tr> <td> Guillaume Saupin </td> <td> Skyline matrices </td></tr> <tr> <td> Olivier Saut </td> <td> Typo in documentation </td></tr> <tr> <td> Benjamin Schindler </td> <td> gdb pretty printers </td></tr> <tr> <td> Michael Schmidt </td> <td> Fix in assembly when identifying CPU, Compilation fix connected to min/max </td></tr> <tr> <td> Dennis Schridde </td> <td> New typedefs like AlignedBox3f </td></tr> <tr> <td> Jakob Schwendner </td> <td> Test for unaligned quaternions, Benchmark for Geometry module </td></tr> <tr> <td> Christian Seiler </td> <td> The Tensor module </td></tr> <tr> <td> Martin Senst </td> <td> Bug fix for empty matrices </td></tr> <tr> <td> Sameer Sheorey </td> <td> Fix gdb pretty printer for variable-size matrices </td></tr> <tr> <td> Andy Somerville </td> <td> Functions to get intersection between two ParametrizedLines </td></tr> <tr> <td> Alex Stapleton </td> <td> Help with tough C++ questions </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://bsteiner.info">Benoit Steiner</a> </td> <td> Faster matrix multiplication, Tensor module, CUDA </td></tr> <tr> <td> Sven Strothoff </td> <td> Add intersects() method to AlignedBox </td></tr> <tr> <td> Leszek Swirski </td> <td> Fix oversight in installation scripts </td></tr> <tr> <td> Adam Szalkowski </td> <td> Bug fix in MatrixBase::makeHouseholder() </td></tr> <tr> <td> Silvio Traversaro </td> <td> Fix for FindEigen3.cmake </td></tr> <tr> <td> Piotr Trojanek </td> <td> QCC compilation fixes </td></tr> <tr> <td> Anthony Truchet </td> <td> Bugfix in QTransform and QMatrix support </td></tr> <tr> <td> Adolfo Rodriguez Tsourouksdissian </td> <td> Version of JacobiSVD that pre-allocates its resources </td></tr> <tr> <td> David Tellenbach </td> <td> General project maintenance, Continuous Integration, various code contributions </td></tr> <tr> <td> James Richard Tyrer </td> <td> CMake fix </td></tr> <tr> <td> Rhys Ulerich </td> <td> Pkg-config support, improved GDB pretty-printer </td></tr> <tr> <td> Henry de Valence </td> <td> Typo in documentation </td></tr> <tr> <td> Ingmar Vanhassel </td> <td> CMake fix </td></tr> <tr> <td> Michiel Van Dyck </td> <td> Multi-threading documentation bug fix </td></tr> <tr> <td> Scott Wheeler </td> <td> Documentation improvements </td></tr> <tr> <td> Freddie Witherden </td> <td> CMake fixes, allow LevenbergMarquardt to work with non-standard types </td></tr> <tr> <td> Urs Wolfer </td> <td> Fixed a serious warning </td></tr> <tr> <td> Manuel Yguel </td> <td> Bug fixes, work on inverse-with-check, the Polynomial module </td></tr> <tr> <td> Pierre Zoppitelli </td> <td> Making a start with a divide-and-conquer SVD implementation </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://www.kth.se/profile/jonasadl/">Jonas Adler</a> </td> <td> Bugfixes for CUDA support </td></tr></table> <p><b>Eigen is also using code that we copied from other sources.</b> They are acknowledged in our sources and in the Mercurial history, but let's also mention them here: </p> <table> <tr> <td> Intel Corporation </td> <td> SSE code for 4x4 matrix inversion <a rel="nofollow" class="external text" href="http://software.intel.com/en-us/articles/optimized-matrix-library-for-use-with-the-intel-pentiumr-4-processors-sse2-instructions/">taken from here</a>. </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="http://www.cise.ufl.edu/~davis">Tim Davis</a> </td> <td> AMD reordering simplicial sparse Cholesky factorization adapted from <a rel="nofollow" class="external text" href="http://www.cise.ufl.edu/research/sparse/SuiteSparse">SuiteSparse</a> </td></tr> <tr> <td> Julien Pommier </td> <td> SSE implementation of exp,log,cos,sin math functions from <a rel="nofollow" class="external text" href="http://download.gna.org/getfem/html/homepage/gmm/index.html">GMM++</a> </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://www-users.cs.umn.edu/~saad/">Yousef Saad</a> </td> <td> IncompleteLUT preconditioner coming from <a rel="nofollow" class="external text" href="https://www-users.cs.umn.edu/~saad/software/ITSOL/">ITSOL</a> </td></tr> <tr> <td> <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/MINPACK">Minpack authors</a> </td> <td> Algorithms for non linear optimization. </td></tr></table> <p><b>Special thanks to</b> <a href="/index.php?title=Tuxfamily" title="Tuxfamily">Tuxfamily</a> for the wonderful quality of their services, and the GCC Compile Farm Project that gives us access to many various systems including ARM NEON. </p><p>If you are looking for a BibTeX entry to use to cite Eigen in academic papers, see the <a href="/index.php?title=BibTeX" title="BibTeX">BibTeX</a> page. </p> <!-- NewPP limit report CPU time usage: 0.110 seconds Real time usage: 0.322 seconds Preprocessor visited node count: 109/1000000 Preprocessor generated node count: 204/1000000 Post‐expand include size: 32/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 2/40 Expensive parser function count: 0/100 --> <!-- Saved in parser cache with key eigen_wiki:pcache:idhash:1-0!*!0!!en!*!* and timestamp 20241124101056 and revision id 3202 --> </div> <div class="printfooter"> Retrieved from "<a href="https://eigen.tuxfamily.org/index.php?title=Main_Page&oldid=3202">https://eigen.tuxfamily.org/index.php?title=Main_Page&oldid=3202</a>" </div> <div id='catlinks' class='catlinks catlinks-allhidden'></div> <div class="visualClear"></div> </div> </div> <div id="mw-navigation"> <h2>Navigation menu</h2> <div id="mw-head"> <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label"> <h3 id="p-personal-label">Personal tools</h3> <ul> <li id="pt-login"><a href="/index.php?title=Special:UserLogin&returnto=Main+Page" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li> </ul> </div> <div id="left-navigation"> <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label"> <h3 id="p-namespaces-label">Namespaces</h3> <ul> <li id="ca-nstab-main" class="selected"><span><a href="/index.php?title=Main_Page" title="View the content page [c]" accesskey="c">Page</a></span></li> <li id="ca-talk"><span><a href="/index.php?title=Talk:Main_Page" title="Discussion about the content page [t]" accesskey="t">Discussion</a></span></li> </ul> </div> <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label"> <h3 id="mw-vector-current-variant"> </h3> <h3 id="p-variants-label"><span>Variants</span><a href="#"></a></h3> <div class="menu"> <ul> </ul> </div> </div> </div> <div id="right-navigation"> <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label"> <h3 id="p-views-label">Views</h3> <ul> <li id="ca-view" class="selected"><span><a href="/index.php?title=Main_Page" >Read</a></span></li> <li id="ca-viewsource"><span><a href="/index.php?title=Main_Page&action=edit" title="This page is protected. You can view its source [e]" accesskey="e">View source</a></span></li> <li id="ca-history" class="collapsible"><span><a href="/index.php?title=Main_Page&action=history" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li> </ul> </div> <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label"> <h3 id="p-cactions-label"><span>Actions</span><a href="#"></a></h3> <div class="menu"> <ul> </ul> </div> </div> <div id="p-search" role="search"> <h3><label for="searchInput">Search</label></h3> <form action="/index.php" id="searchform"> <div id="simpleSearch"> <input type="search" name="search" placeholder="Search" title="Search Eigen [f]" accesskey="f" id="searchInput" /><input type="hidden" value="Special:Search" name="title" /><input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton" /><input type="submit" name="go" value="Go" title="Go to a page with this exact name if exists" id="searchButton" class="searchButton" /> </div> </form> </div> </div> </div> <div id="mw-panel"> <div id="p-logo" role="banner"><a style="background-image: url(/images/Eigen_Silly_Professor_135x135.png);" href="/index.php?title=Main_Page" title="Visit the main page"></a></div> <div class="portal" role="navigation" id='p-navigation' aria-labelledby='p-navigation-label'> <h3 id='p-navigation-label'>Navigation</h3> <div class="body"> <ul> <li id="n-Main-page"><a href="/index.php?title=Main_Page">Main page</a></li> <li id="n-Stackoverflow"><a href="https://stackoverflow.com/questions/tagged/eigen" rel="nofollow">Stackoverflow</a></li> <li id="n-Bugs-.26-feature-requests"><a href="https://gitlab.com/libeigen/eigen/-/issues" rel="nofollow">Bugs & feature requests</a></li> <li id="n-FAQ"><a href="/index.php?title=FAQ">FAQ</a></li> <li id="n-Contributing"><a href="/index.php?title=Contributing_to_Eigen">Contributing</a></li> <li id="n-Benchmark"><a href="/index.php?title=Benchmark">Benchmark</a></li> <li id="n-Publications"><a href="/index.php?title=Publications">Publications</a></li> <li id="n-Recent-changes"><a href="/index.php?title=Special:RecentChanges">Recent changes</a></li> </ul> </div> </div> <div class="portal" role="navigation" id='p-Documentation' aria-labelledby='p-Documentation-label'> <h3 id='p-Documentation-label'>Documentation</h3> <div class="body"> <ul> <li id="n-Eigen-3.4"><a href="https://eigen.tuxfamily.org/dox" rel="nofollow">Eigen 3.4</a></li> <li id="n-Eigen-3.3"><a href="https://eigen.tuxfamily.org/dox-3.3" rel="nofollow">Eigen 3.3</a></li> <li id="n-Eigen-3.2"><a href="https://eigen.tuxfamily.org/dox-3.2" rel="nofollow">Eigen 3.2</a></li> <li id="n-Dev-branch"><a href="https://eigen.tuxfamily.org/dox-devel" rel="nofollow">Dev branch</a></li> </ul> </div> </div> <div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'> <h3 id='p-tb-label'>Tools</h3> <div class="body"> <ul> <li id="t-whatlinkshere"><a href="/index.php?title=Special:WhatLinksHere/Main_Page" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li> <li id="t-recentchangeslinked"><a href="/index.php?title=Special:RecentChangesLinked/Main_Page" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li> <li id="t-specialpages"><a href="/index.php?title=Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li> <li id="t-print"><a href="/index.php?title=Main_Page&printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li> <li id="t-permalink"><a href="/index.php?title=Main_Page&oldid=3202" title="Permanent link to this revision of the page">Permanent link</a></li> <li id="t-info"><a href="/index.php?title=Main_Page&action=info">Page information</a></li> </ul> </div> </div> <div class="body"><a href="https://www.inria.fr"> <img src="https://eigen.tuxfamily.org/inria_logo_rvb.png" width="90%" style="border-width:1px;border-style:solid" /></a></div> <div class="body"><a href="https://eigen.tuxfamily.org/index.php?title=Tuxfamily"> <img src="https://eigen.tuxfamily.org/tuxfamily_logo.png" width="90%" style="border-width:1px;border-style:solid" /></a></div> </div> </div> <div id="footer" role="contentinfo"> <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last modified on 6 August 2024, at 17:40.</li> <li id="footer-info-viewcount">This page has been accessed 21,156,717 times.</li> <li id="footer-info-copyright">Content is available under <a class="external" rel="nofollow" href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License 1.2</a> unless otherwise noted.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="/index.php?title=Eigen:Privacy_policy" title="Eigen:Privacy policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/index.php?title=Eigen:About" title="Eigen:About">About Eigen</a></li> <li id="footer-places-disclaimer"><a href="/index.php?title=Eigen:General_disclaimer" title="Eigen:General disclaimer">Disclaimers</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"> <a href="http://www.gnu.org/copyleft/fdl.html"><img src="/skins/common/images/gnu-fdl.png" alt="GNU Free Documentation License 1.2" width="88" height="31" /></a> </li> <li id="footer-poweredbyico"> <a href="//www.mediawiki.org/"><img src="/skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a> </li> </ul> <div style="clear:both"></div> </div> <script>/*<![CDATA[*/window.jQuery && jQuery.ready();/*]]>*/</script><script>if(window.mw){ mw.loader.state({"site":"loading","user":"ready","user.groups":"ready"}); }</script> <script>if(window.mw){ mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest","skins.vector.collapsibleNav"],null,true); }</script> <script type="text/javascript" src="/extensions/News/scripts/main.js"></script> <script src="https://eigen.tuxfamily.org/load.php?debug=false&lang=en&modules=site&only=scripts&skin=vector&*"></script> <!-- Matomo --> <script type="text/javascript"> var _paq = _paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//stats.sylphide-consulting.com/matomo/"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', '20']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --><script>if(window.mw){ mw.config.set({"wgBackendResponseTime":349}); }</script> </body> </html>