Skip to content

[package list]

Eigen

License information

The precise wording of the Eigen license can be found on the Eigen web site.

The versions installed on LUMI are licensed under the Mozilla Public License Version 2.0, but some components rely on third-party code licensed under the GNU Lesser Public License. These components have not been disabled in the installation on LUMI!

User documentation

What is Eigen?

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

Eigen is Free Software. Starting from the 3.1.1 version, it is licensed under the MPL2, which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official MPL2 FAQ. Note that currently, a few features rely on third-party code licensed under the LGPL: SimplicialCholesky, AMD ordering, and 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 header name). Of course you have to mind the license of the so-included library when using them. 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.

As this module includes only templates in source form, it can be used with any suitable C++ compiler.

This library was installed without taking care of potential dependencies etc. as it seems that the installation process, despite doing plenty of checks, doesn't do anything to the template library itself. If you would experience problems when using Eigen with your own code, we suggest you install it yourself for your compiler and your combination of mathematical libraries as there are in fact a near infinite number of potential configurations.

Pre-installed modules (and EasyConfigs)

To access module help and find out for which stacks and partitions the module is installed, use module spider Eigen/<version>.

EasyConfig:

Technical documentation

General information

  • Eigen is just a template library for C++. Hence the installation is completelhy compiler-neutral.

  • Eigen moved to GitLab at the end of 2019, so old EasyConfig files will no longer succeed in downloading the files from BitBucket. The move was made because BitBucket dit no longer support mercurial, and if the had to switch to git, they decided they could as well switch to another provider.

  • According to the installation instructions

    • One can simply copy the Eigen subdirectory to any desired location.

    • There is also a CMake installation process. It does install some additional files such as support for pkgconfig and for CMake. That CMake process can produce a lot of warnings, but they are really only relevant to those installing Eigen during the compilation process for an actual application, and not to simply do a source install of Eigen.

EasyBuild

Version 3.3.9 for LUMI/21.08 and LUMI/21.12

  • As this is just a template library it does not make sense to install this for a specific toolchain or specific partition. We recommend to simply use the SYSTEM toolchain and to install in the common virtual partition.

    The installation process does do a lot of checks but it seems that they are only to compile a number of test programs and don't do anything to the Eigen configuration itself.

  • Use downloads from GitLab.

  • Installed using the system toolchain as there is nothing compiler-specific about the whole package.

  • Note that 3.4.0 was out at the time that we made the EasyConfig file, but that one did not install properly. During the installation process an illegal directory name was generated. It is not clear if this is a problem with the EasyBlock or with the Eigen installation process itself.

Version 3.4 for LUMI/22.06 and LUMI/22.08

  • Trivial port of the 3.3.9 EasyConfig.

3.4.0 for 21.12/23.03

  • Looks like the Eigen people returned to a normal version numberins, so adapted the EasyConfig.