Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Modules/ThirdParty/Eigen3/UpdateFromUpstream.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ readonly ownership="Eigen Upstream <kwrobot@kitware.com>"
exact_tree_match=false
readonly subtree="Modules/ThirdParty/Eigen3/src/itkeigen"
readonly repo="https://github.com/InsightSoftwareConsortium/eigen"
readonly tag="for/itk-20260501-879885e1"
readonly tag="for/itk-eigen-5.0.1"
readonly paths="
Eigen/AccelerateSupport
Eigen/Cholesky
Expand Down
7 changes: 7 additions & 0 deletions Modules/ThirdParty/Eigen3/src/itkeigen/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: The Eigen Authors
# SPDX-License-Identifier: MPL-2.0

# Same version of ITK cmake_minimum_required
cmake_minimum_required(VERSION 3.16.3)

Expand Down Expand Up @@ -965,6 +968,10 @@ target_include_directories (eigen_internal SYSTEM INTERFACE

# Export as title case Eigen
set_target_properties (eigen_internal PROPERTIES EXPORT_NAME Eigen)
# Issue InsightSoftwareConsortium/ITK#6239: ship eigen_internal in ITKTargets.cmake when building inside ITK.
if(DEFINED ITK3P_INSTALL_EXPORT_NAME)
install (TARGETS eigen_internal EXPORT ${ITK3P_INSTALL_EXPORT_NAME})
endif()
install (TARGETS eigen_internal EXPORT ITKInternalEigen3Targets)

set(EIGEN3_TARGETS_FILE ITKInternalEigen3Targets.cmake)
Expand Down
2 changes: 1 addition & 1 deletion Modules/ThirdParty/Eigen3/src/itkeigen/COPYING.MPL2
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Mozilla Public License Version 2.0
means any form of the work other than Source Code Form.

1.7. "Larger Work"
means a work that combines Covered Software with other material, in
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.

1.8. "License"
Expand Down
18 changes: 5 additions & 13 deletions Modules/ThirdParty/Eigen3/src/itkeigen/COPYING.README
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
Eigen is primarily licensed under the Mozilla Public License 2.0.
See LICENSE, COPYING.MPL2, and these links:
https://www.mozilla.org/MPL/2.0/
https://www.mozilla.org/MPL/2.0/FAQ.html
Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:
http://www.mozilla.org/MPL/2.0/
http://www.mozilla.org/MPL/2.0/FAQ.html

Some files contain third-party code under permissive or otherwise
MPL2-compatible licenses, hence the other COPYING.* files here. These
include Apache-2.0, BSD-style notices, the MINPACK license, and the MORSE
CMake module BSD-style notice in cmake/MORSE-Copyright.txt.

Note that some optional external dependencies (e.g. FFTW, MPFR C++)
are distributed under different licenses, including the GPL. Refer to
the individual source files and their respective COPYING files for
details.
Some files contain third-party code under BSD or other MPL2-compatible licenses,
whence the other COPYING.* files here.
2 changes: 2 additions & 0 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Cholesky
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup Cholesky_Module Cholesky module
*
*
*
* This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
* Those decompositions are also accessible via the following methods:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
* For the sake of completeness, this module also propose the two following classes:
* - class CholmodSimplicialLLT
* - class CholmodSimplicialLDLT
* Note that these classes do not bring any particular advantage compared to the built-in
* Note that these classes does not bring any particular advantage compared to the built-in
* SimplicialLLT and SimplicialLDLT factorization classes.
*
* \code
Expand Down
76 changes: 25 additions & 51 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Core
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@
#include <new>
#endif

// Disable the ipa-cp-clone optimization flag with MinGW 6.x or older (enabled by default with -O3)
// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
#if EIGEN_COMP_MINGW && EIGEN_GNUC_STRICT_LESS_THAN(6, 0, 0)
#pragma GCC optimize("-fno-ipa-cp-clone")
#endif

// Prevent ICC from specializing std::complex operators that silently fail
// on device. This allows us to use our own device-compatible specializations
// instead.
Expand All @@ -47,12 +53,10 @@
// this include file manages BLAS and MKL related macros
// and inclusion of their respective header files
#include "src/Core/util/MKL_support.h"
#include "src/Core/util/AOCL_Support.h"


// EIGEN_HAS_GPU_FP16 is now always true when compiling with CUDA or HIP.
// Use EIGEN_GPUCC (compile-time) or EIGEN_GPU_COMPILE_PHASE (device phase) instead.
// TODO: Remove EIGEN_HAS_GPU_BF16 similarly once HIP bf16 guards are cleaned up.
#if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
#define EIGEN_HAS_GPU_FP16
#endif

#if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
#define EIGEN_HAS_GPU_BF16
Expand All @@ -67,7 +71,8 @@
#include <omp.h>
#endif

#if !EIGEN_COMP_ARM
// MSVC for windows mobile does not have the errno.h file
#if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
#define EIGEN_HAS_ERRNO
#endif

Expand Down Expand Up @@ -96,9 +101,6 @@
// for std::is_nothrow_move_assignable
#include <type_traits>

// for std::move, std::forward, std::declval
#include <utility>

// for std::this_thread::yield().
#if !defined(EIGEN_USE_BLAS) && (defined(EIGEN_HAS_OPENMP) || defined(EIGEN_GEMM_THREADPOOL))
#include <thread>
Expand All @@ -121,18 +123,10 @@

// required for __cpuid, needs to be included after cmath
// also required for _BitScanReverse on Windows on ARM
#if EIGEN_COMP_MSVC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM64)
#if EIGEN_COMP_MSVC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM64) && !EIGEN_OS_WINCE
#include <intrin.h>
#endif

// Required for querying cache sizes on Linux and macOS.
#if EIGEN_OS_LINUX
#include <unistd.h>
#elif EIGEN_OS_MAC
#include <sys/types.h>
#include <sys/sysctl.h>
#endif

#if defined(EIGEN_USE_SYCL)
#undef min
#undef max
Expand All @@ -142,6 +136,7 @@
#include <CL/sycl.hpp>
#include <map>
#include <thread>
#include <utility>
#ifndef EIGEN_SYCL_LOCAL_THREAD_DIM0
#define EIGEN_SYCL_LOCAL_THREAD_DIM0 16
#endif
Expand All @@ -150,9 +145,19 @@
#endif
#endif

#if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || \
defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || \
defined EIGEN2_SUPPORT
// This will generate an error message:
#error Eigen2-support is only available up to version 3.2. Please go to "http://eigen.tuxfamily.org/index.php?title=Eigen2" for further information
#endif

namespace Eigen {

// we use size_t frequently and we'll never remember to prepend it with std:: every time just to
// ensure QNX/QCC support
using std::size_t;
// gcc 4.6.0 wants std:: for ptrdiff_t
using std::ptrdiff_t;

} // namespace Eigen
Expand All @@ -170,8 +175,6 @@ using std::ptrdiff_t;
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#elif defined(EIGEN_LAPACKE_SYSTEM)
#include <lapacke.h>
#else
#include "src/misc/lapacke.h"
#endif
Expand Down Expand Up @@ -202,13 +205,6 @@ using std::ptrdiff_t;
#include "src/Core/arch/Default/BFloat16.h"
#include "src/Core/arch/Default/GenericPacketMathFunctionsFwd.h"

#if defined(EIGEN_VECTORIZE_GENERIC) && !defined(EIGEN_DONT_VECTORIZE)
#include "src/Core/arch/clang/PacketMath.h"
#include "src/Core/arch/clang/TypeCasting.h"
#include "src/Core/arch/clang/Complex.h"
#include "src/Core/arch/clang/Reductions.h"
#include "src/Core/arch/clang/MathFunctions.h"
#else
#if defined EIGEN_VECTORIZE_AVX512
#include "src/Core/arch/SSE/PacketMath.h"
#include "src/Core/arch/SSE/Reductions.h"
Expand Down Expand Up @@ -274,18 +270,6 @@ using std::ptrdiff_t;
#include "src/Core/arch/SVE/PacketMath.h"
#include "src/Core/arch/SVE/TypeCasting.h"
#include "src/Core/arch/SVE/MathFunctions.h"
#elif defined EIGEN_VECTORIZE_RVV10
#include "src/Core/arch/RVV10/PacketMath.h"
#include "src/Core/arch/RVV10/PacketMath4.h"
#include "src/Core/arch/RVV10/PacketMath2.h"
#include "src/Core/arch/RVV10/TypeCasting.h"
#include "src/Core/arch/RVV10/MathFunctions.h"
#if defined EIGEN_VECTORIZE_RVV10FP16
#include "src/Core/arch/RVV10/PacketMathFP16.h"
#endif
#if defined EIGEN_VECTORIZE_RVV10BF16
#include "src/Core/arch/RVV10/PacketMathBF16.h"
#endif
#elif defined EIGEN_VECTORIZE_ZVECTOR
#include "src/Core/arch/ZVector/PacketMath.h"
#include "src/Core/arch/ZVector/MathFunctions.h"
Expand Down Expand Up @@ -313,8 +297,6 @@ using std::ptrdiff_t;
#endif
#endif

#endif // #ifndef EIGEN_VECTORIZE_GENERIC

#include "src/Core/arch/Default/Settings.h"
// This file provides generic implementations valid for scalar as well
#include "src/Core/arch/Default/GenericPacketMathFunctions.h"
Expand Down Expand Up @@ -358,12 +340,13 @@ using std::ptrdiff_t;
#include "src/Core/DenseStorage.h"
#include "src/Core/NestByValue.h"

// #include "src/Core/ForceAlignedAccess.h"

#include "src/Core/ReturnByValue.h"
#include "src/Core/NoAlias.h"
#include "src/Core/PlainObjectBase.h"
#include "src/Core/Matrix.h"
#include "src/Core/Array.h"
#include "src/Core/StructuredBindings.h"
#include "src/Core/Fill.h"
#include "src/Core/CwiseTernaryOp.h"
#include "src/Core/CwiseBinaryOp.h"
Expand Down Expand Up @@ -424,28 +407,23 @@ using std::ptrdiff_t;
#include "src/Core/CoreIterators.h"
#include "src/Core/ConditionEstimator.h"

#if !defined(EIGEN_VECTORIZE_GENERIC)
#if defined(EIGEN_VECTORIZE_VSX)
#include "src/Core/arch/AltiVec/MatrixProduct.h"
#elif defined EIGEN_VECTORIZE_NEON
#include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
#elif defined EIGEN_VECTORIZE_LSX
#include "src/Core/arch/LSX/GeneralBlockPanelKernel.h"
#elif defined EIGEN_VECTORIZE_RVV10
#include "src/Core/arch/RVV10/GeneralBlockPanelKernel.h"
#endif

#if defined(EIGEN_VECTORIZE_AVX512)
#include "src/Core/arch/AVX512/GemmKernel.h"
#endif
#endif

#include "src/Core/Select.h"
#include "src/Core/VectorwiseOp.h"
#include "src/Core/PartialReduxEvaluator.h"
#include "src/Core/Random.h"
#include "src/Core/Replicate.h"
#include "src/Core/ConcatOp.h"
#include "src/Core/Reverse.h"
#include "src/Core/ArrayWrapper.h"
#include "src/Core/StlIterators.h"
Expand All @@ -465,10 +443,6 @@ using std::ptrdiff_t;
#include "src/Core/Assign_MKL.h"
#endif

#ifdef EIGEN_USE_AOCL_VML
#include "src/Core/Assign_AOCL.h"
#endif

#include "src/Core/GlobalFunctions.h"
// IWYU pragma: end_exports

Expand Down
12 changes: 0 additions & 12 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Dense
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_DENSE_MODULE_H
#define EIGEN_DENSE_MODULE_H

#include "Core"
#include "LU"
#include "Cholesky"
#include "QR"
#include "SVD"
#include "Geometry"
#include "Eigenvalues"

#endif // EIGEN_DENSE_MODULE_H
12 changes: 0 additions & 12 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Eigen
Original file line number Diff line number Diff line change
@@ -1,14 +1,2 @@
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_EIGEN_MODULE_H
#define EIGEN_EIGEN_MODULE_H

#include "Dense"
#include "Sparse"

#endif // EIGEN_EIGEN_MODULE_H
10 changes: 6 additions & 4 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Eigenvalues
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,16 @@
#include "Core"

#include "Cholesky"
#include "Jacobi"
#include "Householder"
#include "LU"
#include "Geometry"
#include "Sparse" // Needed by ComplexQZ.

#include "src/Core/util/DisableStupidWarnings.h"

/** \defgroup Eigenvalues_Module Eigenvalues module
*
*
*
* This module mainly provides various eigenvalue solvers.
* This module also provides some MatrixBase methods, including:
Expand All @@ -29,6 +32,8 @@
* \endcode
*/

#include "src/misc/RealSvd2x2.h"

// IWYU pragma: begin_exports
#include "src/Eigenvalues/Tridiagonalization.h"
#include "src/Eigenvalues/RealSchur.h"
Expand All @@ -39,14 +44,11 @@
#include "src/Eigenvalues/ComplexSchur.h"
#include "src/Eigenvalues/ComplexEigenSolver.h"
#include "src/Eigenvalues/RealQZ.h"
#include "src/Eigenvalues/ComplexQZ.h"
#include "src/Eigenvalues/GeneralizedEigenSolver.h"
#include "src/Eigenvalues/MatrixBaseEigenvalues.h"
#ifdef EIGEN_USE_LAPACKE
#ifdef EIGEN_USE_MKL
#include "mkl_lapacke.h"
#elif defined(EIGEN_LAPACKE_SYSTEM)
#include <lapacke.h>
#else
#include "src/misc/lapacke.h"
#endif
Expand Down
4 changes: 1 addition & 3 deletions Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Geometry
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include "SVD"
#include "LU"
#include <limits>

#include "src/Core/util/DisableStupidWarnings.h"

Expand Down Expand Up @@ -47,13 +48,10 @@
#include "src/Geometry/AlignedBox.h"
#include "src/Geometry/Umeyama.h"

#ifndef EIGEN_VECTORIZE_GENERIC
// TODO(rmlarsen): Make these work with generic vectorization if possible.
// Use the SSE optimized version whenever possible.
#if (defined EIGEN_VECTORIZE_SSE) || (defined EIGEN_VECTORIZE_NEON)
#include "src/Geometry/arch/Geometry_SIMD.h"
#endif
#endif
// IWYU pragma: end_exports

#include "src/Core/util/ReenableStupidWarnings.h"
Expand Down
2 changes: 1 addition & 1 deletion Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/Householder
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

// IWYU pragma: begin_exports
#include "src/Householder/Householder.h"
#include "src/Householder/BlockHouseholder.h"
#include "src/Householder/HouseholderSequence.h"
#include "src/Householder/BlockHouseholder.h"
// IWYU pragma: end_exports

#include "src/Core/util/ReenableStupidWarnings.h"
Expand Down
2 changes: 1 addition & 1 deletion Modules/ThirdParty/Eigen3/src/itkeigen/Eigen/KLUSupport
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ extern "C" {
* \endcode
*
* In order to use this module, the klu and btf headers must be accessible from the include paths, and your binary must
* be linked to the klu library and its dependencies. The dependencies depend on how KLU has been compiled. For a
* be linked to the klu library and its dependencies. The dependencies depend on how umfpack has been compiled. For a
* cmake based project, you can use our FindKLU.cmake module to help you in this task.
*
*/
Expand Down
Loading
Loading