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
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
-
support for Eigen in the EasyBuilders repository. The procedure might be more complicated then needed as a custom EasyBlock is used which given the simplicity of the installation process seems overkill.
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.