# eigen changelog > Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. - Vendor: libeigen - Category: Frameworks & Libraries - Official site: https://gitlab.com/libeigen/eigen - Tracked by: What's New (https://whatsnew.fyi/product/eigen) - Harvested from: GitLab (gitlab.com/libeigen/eigen) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 5.0.1 - Date: 2025-11-11 - Version: 5.0.1 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/5.0.1 - Permalink: https://whatsnew.fyi/product/eigen/releases/5.0.1 - **fixed** — Dirty git state - **fixed** — Failing geo_homogeneous tests - **fixed** — Alignment issues - **fixed** — Missing C++20 header - **fixed** — BLAS/LAPACK build on windows A few bug-fixes from the master branch, including - Dirty git state [#2995] - Failing geo_homogeneous tests [#2977] - Alignment issues [#2982, #2984] - Missing C++20 `` header [#2986] - BLAS/LAPACK build on windows [#2980] See the full lists of [addressed bugs](https://gitlab.com/libeigen/eigen/-/issues?state=all&label_name%5B%5D=release%3A%3A5.0.1) and [merge requests](https://gitlab.com/libeigen/eigen/-/merge_requests?state=all&label_name%5B%5D=release%3A%3A5.0.1) for more details. ### 5.0.0 - Date: 2025-09-30 - Version: 5.0.0 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/5.0.0 - Permalink: https://whatsnew.fyi/product/eigen/releases/5.0.0 - **changed** — Eigen 5.X.X requires C++14; set -std=c++14 or later when building with GNU-compatible compilers - **removed** — Macros such as EIGEN_HAS_CXX11 have been removed - **changed** — CMake build system has been modernized and older properties have been removed - **removed** — All LGPL-licensed code has been removed, including Constrained Conjugate Gradient - **changed** — Eigen::all and Eigen::last have been moved to Eigen::placeholders::all and Eigen::placeholders::last - **changed** — Direct inclusion of internal headers under ../src/.. paths will result in a compilation error - **deprecated** — Runtime SVD options for computing thin/full U/V have been deprecated in favor of compile-time options - **changed** — Scalar non-vectorized comparisons now return masks with values of Scalar(1) rather than having all bits set - **changed** — BLAS return types have been changed to void instead of int for compatibility with other BLAS implementations - **changed** — Eigen::aligned_allocator no longer inherits from std::allocator due to changes in the standard and use of allocate_at_least - **changed** — Euler angles are now returned in a more canonical form, potentially resulting in a change of behavior - **changed** — Eigen's random number generation has changed, resulting in a change of behavior ###### Summary Eigen 5.0 provides many new features, performance enhancements, and bugfixes throughout Eigen’s core template expression infrastructure and linear algebra facilities. The full set of changes and related issues are too large to list here, but can be accessed via the release milestone %"5.0". This is the last major release to support the C++14 language standard. The master branch and subsequent releases will require support for C++17. ###### Versioning This release marks a transition to [Semantic Versioning](https://semver.org/). Previously, Eigen used a WORLD.MAJOR.MINOR scheme. From now on, version numbers will follow the MAJOR.MINOR.PATCH format, indicating breaking changes, new features, and bug fixes, respectively. The WORLD version will remain 3 for this and subsequent releases for posterity. See the table below: ``` ╔═════════╦═════╦═════╗ ║ Release ║ 3.4 ║ 5.0 ║ ╠═════════╬═════╬═════╣ ║ WORLD ║ 3 ║ 3 ║ ║ MAJOR ║ 4 ║ 5 ║ ║ MINOR ║ 0 ║ 0 ║ ║ PATCH ║ - ║ 0 ║ ╚═════════╩═════╩═════╝ ``` ###### Breaking changes * Eigen 5.X.X requires C++14. When building with GNU-compatible compilers, set `-std=c++14` or later. As part of this change, some macros such as `EIGEN_HAS_CXX11` have also been removed. * The CMake build system has been modernized and older properties have been removed - projects relying on CMake may need to update their configurations [!485]. * All LGPL-licensed code has been removed (i.e. Constrained Conjugate Gradient) [!1197]. These were "unsupported" anyways, and weren't widely used. * Due to name conflicts with other projects, `Eigen::all` and `Eigen::last` have been moved to `Eigen::placeholders::all` and `Eigen::placeholders::last` [!649]. * Any direct inclusion of an internal header (i.e. under a `../src/..` path) will result in a compilation error [!631]. * Runtime SVD options for computing thin/full U/V have been deprecated: use compile-time options instead [!826]. * Scalar (i.e. non-vectorized) comparisons now return masks with values of `Scalar(1)` rather than having all bits set to avoid undefined behavior [!1862]. * BLAS return types have been changed for Eigen BLAS to `void` instead of `int` for compatibility with other BLAS implementations [!1497]. * `Eigen::aligned_allocator` no longer inherits from `std::allocator` due to a change in the standard and the use of `allocate_at_least` [!1795]. * Euler angles are now returned in a more canonical form, potentially resulting in a change of behavior [!1301, !1314]. * Eigen's random number generation has changed, resulting in a change of behavior. Please do not rely on specific random numbers from Eigen - these were never guaranteed to be consistent across Eigen versions, nor are they generally consistent across platforms [!1437]. ### 3.4.1 - Date: 2025-09-29 - Version: 3.4.1 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.4.1 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.4.1 - **fixed** — Many bug fixes have been backported from the main branch Many bug fixes have been backported from the main branch. A list of new issues addressed can be found via the [3.4.1](https://gitlab.com/libeigen/eigen/-/issues?state=all&label_name%5B%5D=3.4.1) label on GitLab. Check the [git commit history](https://gitlab.com/libeigen/eigen/-/commits/3.4.1) for the full list of changes. ### 3.4.0 - Date: 2021-08-18 - Version: 3.4.0 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.4.0 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.4.0 - **added** — Support for C++03 will be dropped after the 3.4.x release series - **changed** — This is a new major release of Eigen 3.4.0 Eigen 3.4.0 has been released on August 18, 2021. This is a new major release of Eigen 3.4.0. Notice: 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. ### 3.4-rc1 - Date: 2021-04-19 - Version: 3.4-rc1 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.4-rc1 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.4-rc1 - Labels: Pre-release This is a release candidate for the upcoming 3.4 version. For a list of changes check the [release page](https://eigen.tuxfamily.org/index.php?title=3.4). ### 3.3.9 — Eigen 3.3.9 - Date: 2020-12-04 - Version: 3.3.9 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.3.9 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.3.9 - **fixed** — Fixed minor bugs and compilation issues Eigen 3.3.9 has been released on December 4, 2020. This is a maintenance release fixing minor bugs and compilation issues. ### 3.3.8 — Eigen 3.3.8 - Date: 2020-10-05 - Version: 3.3.8 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.3.8 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.3.8 Eigen 3.3.8 has been released on October 5, 2020. This is a maintenance release fixing minor bugs and compilation issues. ### 3.3.7 — Eigen 3.3.7 - Date: 2018-12-11 - Version: 3.3.7 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.3.7 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.3.7 - **fixed** — Compilation issue introduced in 3.3.6 that occurred for some versions of GCC with compiler optimization turned off Eigen 3.3.7 has been released on December 11, 2018. This is a maintenance release fixing a compilation issue introduced in the previous 3.3.6 release. The compilation issue only occurred for some versions of GCC with compiler optimization turned off. ### 3.3.6 — Eigen 3.3.6 - Date: 2018-12-10 - Version: 3.3.6 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.3.6 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.3.6 Eigen 3.3.6 has been released on December 10, 2018. This is a maintenance release fixing several minor bugs and compilations issues. We plan a beta1 release of the next Eigen 3.4 within the next few days, stay tuned! ### 3.3.5 — Eigen 3.3.5 - Date: 2018-07-23 - Version: 3.3.5 - Original notes: https://gitlab.com/libeigen/eigen/-/releases/3.3.5 - Permalink: https://whatsnew.fyi/product/eigen/releases/3.3.5 - **fixed** — Fixed several minor bugs and compilation issues Eigen 3.3.5 has been released on July 23, 2018. This is a maintenance release fixing several minor bugs and compilations issues.