Skip to content

Commit f11b2cb

Browse files
authored
Merge pull request #6176 from hjmjohnson/eigen-5.0.1-update
ENH: Update vendored Eigen3 to 5.0.1+master; verify USE_SYSTEM 3.3/3.4/5.x
2 parents 450baaa + ae833e2 commit f11b2cb

323 files changed

Lines changed: 25749 additions & 21437 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Modules/Core/Common/include/itkMacro.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,14 @@ namespace itk
117117
# define ITK_GCC_SUPPRESS_Warray_bounds
118118
#endif
119119

120+
// -Wmaybe-uninitialized is a real-GCC-only warning name; Apple Clang emits
121+
// -Wunknown-warning-option for it (which ITK's dashboard treats as fatal).
122+
#if defined(__GNUC__) && !defined(__clang__)
123+
# define ITK_GCC_SUPPRESS_Wmaybe_uninitialized ITK_PRAGMA(GCC diagnostic ignored "-Wmaybe-uninitialized")
124+
#else
125+
# define ITK_GCC_SUPPRESS_Wmaybe_uninitialized
126+
#endif
127+
120128
// For Clang only (and not GCC):
121129
#if defined(__clang__) && defined(__has_warning)
122130
# define ITK_CLANG_PRAGMA_PUSH ITK_PRAGMA(clang diagnostic push)

Modules/Core/Common/include/itkSymmetricEigenAnalysis.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,8 +1029,16 @@ class ITK_TEMPLATE_EXPORT SymmetricEigenAnalysisFixedDimension
10291029
}
10301030
}
10311031
using EigenSolverType = Eigen::SelfAdjointEigenSolver<EigenLibMatrixType>;
1032+
// GCC's IPA cannot prove that Eigen 5's analytical 3x3 SelfAdjointEigenSolver
1033+
// fully writes m_eivalues; Eigen's own CMakeLists adds -Wno-maybe-uninitialized
1034+
// for the same reason (see Modules/ThirdParty/Eigen3/.../CMakeLists.txt).
1035+
// clang-format off
1036+
ITK_GCC_PRAGMA_PUSH
1037+
ITK_GCC_SUPPRESS_Wmaybe_uninitialized
10321038
const EigenSolverType solver(inputMatrix, Eigen::EigenvaluesOnly);
10331039
auto eigenValues = solver.eigenvalues();
1040+
ITK_GCC_PRAGMA_POP
1041+
// clang-format on
10341042
if (m_OrderEigenValues == EigenValueOrderEnum::OrderByMagnitude)
10351043
{
10361044
detail::sortEigenValuesByMagnitude(eigenValues, VDimension);

Modules/ThirdParty/Eigen3/UpdateFromUpstream.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,16 @@ shopt -s dotglob
66

77
readonly name="Eigen3"
88
readonly ownership="Eigen Upstream <kwrobot@kitware.com>"
9+
# ITK has applied a small number of post-import patches under itkeigen/
10+
# (e.g., SelfadjointMatrixVector.h pzero init), so the tree no longer
11+
# bytewise matches the previous import commit's tree. Use log-based
12+
# matching instead of exact-tree matching for the previous-import probe.
13+
exact_tree_match=false
914
readonly subtree="Modules/ThirdParty/Eigen3/src/itkeigen"
1015
readonly repo="https://github.com/InsightSoftwareConsortium/eigen"
11-
readonly tag="for/itk-20260305-4c99fca"
16+
readonly tag="for/itk-20260501-879885e1"
1217
readonly paths="
18+
Eigen/AccelerateSupport
1319
Eigen/Cholesky
1420
Eigen/CholmodSupport
1521
Eigen/Core
@@ -20,6 +26,7 @@ Eigen/Geometry
2026
Eigen/Householder
2127
Eigen/IterativeLinearSolvers
2228
Eigen/Jacobi
29+
Eigen/KLUSupport
2330
Eigen/LU
2431
Eigen/MetisSupport
2532
Eigen/OrderingMethods
@@ -38,7 +45,9 @@ Eigen/StdDeque
3845
Eigen/StdList
3946
Eigen/StdVector
4047
Eigen/SuperLUSupport
48+
Eigen/ThreadPool
4149
Eigen/UmfPackSupport
50+
Eigen/Version
4251
Eigen/src
4352
4453
COPYING.BSD
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
*.sh eol=lf
2+
debug/msvc/*.dat eol=crlf
3+
debug/msvc/*.natvis eol=crlf
4+
5+
# ITK fork: relax content-checks for the largest Eigen header so
6+
# UpdateFromUpstream.sh / KWStyle hooks do not reject the import.
17
* -whitespace
28
Eigen/src/misc/lapacke.h hooks-max-size=1500000
39
Eigen/src/misc/lapacke.h hooks.MaxObjectKiB=2048

0 commit comments

Comments
 (0)