3636#include <new>
3737#endif
3838
39+ // Disable the ipa-cp-clone optimization flag with MinGW 6.x or older (enabled by default with -O3)
40+ // See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
41+ #if EIGEN_COMP_MINGW && EIGEN_GNUC_STRICT_LESS_THAN(6, 0, 0)
42+ #pragma GCC optimize("-fno-ipa-cp-clone")
43+ #endif
44+
3945// Prevent ICC from specializing std::complex operators that silently fail
4046// on device. This allows us to use our own device-compatible specializations
4147// instead.
4753// this include file manages BLAS and MKL related macros
4854// and inclusion of their respective header files
4955#include "src/Core/util/MKL_support.h"
50- #include "src/Core/util/AOCL_Support.h"
51-
5256
53- // EIGEN_HAS_GPU_FP16 is now always true when compiling with CUDA or HIP.
54- // Use EIGEN_GPUCC (compile-time) or EIGEN_GPU_COMPILE_PHASE (device phase) instead.
55- // TODO: Remove EIGEN_HAS_GPU_BF16 similarly once HIP bf16 guards are cleaned up.
57+ #if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
58+ #define EIGEN_HAS_GPU_FP16
59+ #endif
5660
5761#if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
5862#define EIGEN_HAS_GPU_BF16
6771#include <omp.h>
6872#endif
6973
70- #if !EIGEN_COMP_ARM
74+ // MSVC for windows mobile does not have the errno.h file
75+ #if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
7176#define EIGEN_HAS_ERRNO
7277#endif
7378
96101// for std::is_nothrow_move_assignable
97102#include <type_traits>
98103
99- // for std::move, std::forward, std::declval
100- #include <utility>
101-
102104// for std::this_thread::yield().
103105#if !defined(EIGEN_USE_BLAS) && (defined(EIGEN_HAS_OPENMP) || defined(EIGEN_GEMM_THREADPOOL))
104106#include <thread>
121123
122124// required for __cpuid, needs to be included after cmath
123125// also required for _BitScanReverse on Windows on ARM
124- #if EIGEN_COMP_MSVC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM64)
126+ #if EIGEN_COMP_MSVC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM64) && !EIGEN_OS_WINCE
125127#include <intrin.h>
126128#endif
127129
128- // Required for querying cache sizes on Linux and macOS.
129- #if EIGEN_OS_LINUX
130- #include <unistd.h>
131- #elif EIGEN_OS_MAC
132- #include <sys/types.h>
133- #include <sys/sysctl.h>
134- #endif
135-
136130#if defined(EIGEN_USE_SYCL)
137131#undef min
138132#undef max
142136#include <CL/sycl.hpp>
143137#include <map>
144138#include <thread>
139+ #include <utility>
145140#ifndef EIGEN_SYCL_LOCAL_THREAD_DIM0
146141#define EIGEN_SYCL_LOCAL_THREAD_DIM0 16
147142#endif
150145#endif
151146#endif
152147
148+ #if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || \
149+ defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || \
150+ defined EIGEN2_SUPPORT
151+ // This will generate an error message:
152+ #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
153+ #endif
154+
153155namespace Eigen {
154156
157+ // we use size_t frequently and we'll never remember to prepend it with std:: every time just to
158+ // ensure QNX/QCC support
155159using std::size_t;
160+ // gcc 4.6.0 wants std:: for ptrdiff_t
156161using std::ptrdiff_t;
157162
158163} // namespace Eigen
@@ -170,8 +175,6 @@ using std::ptrdiff_t;
170175#ifdef EIGEN_USE_LAPACKE
171176#ifdef EIGEN_USE_MKL
172177#include "mkl_lapacke.h"
173- #elif defined(EIGEN_LAPACKE_SYSTEM)
174- #include <lapacke.h>
175178#else
176179#include "src/misc/lapacke.h"
177180#endif
@@ -202,13 +205,6 @@ using std::ptrdiff_t;
202205#include "src/Core/arch/Default/BFloat16.h"
203206#include "src/Core/arch/Default/GenericPacketMathFunctionsFwd.h"
204207
205- #if defined(EIGEN_VECTORIZE_GENERIC) && !defined(EIGEN_DONT_VECTORIZE)
206- #include "src/Core/arch/clang/PacketMath.h"
207- #include "src/Core/arch/clang/TypeCasting.h"
208- #include "src/Core/arch/clang/Complex.h"
209- #include "src/Core/arch/clang/Reductions.h"
210- #include "src/Core/arch/clang/MathFunctions.h"
211- #else
212208#if defined EIGEN_VECTORIZE_AVX512
213209#include "src/Core/arch/SSE/PacketMath.h"
214210#include "src/Core/arch/SSE/Reductions.h"
@@ -274,18 +270,6 @@ using std::ptrdiff_t;
274270#include "src/Core/arch/SVE/PacketMath.h"
275271#include "src/Core/arch/SVE/TypeCasting.h"
276272#include "src/Core/arch/SVE/MathFunctions.h"
277- #elif defined EIGEN_VECTORIZE_RVV10
278- #include "src/Core/arch/RVV10/PacketMath.h"
279- #include "src/Core/arch/RVV10/PacketMath4.h"
280- #include "src/Core/arch/RVV10/PacketMath2.h"
281- #include "src/Core/arch/RVV10/TypeCasting.h"
282- #include "src/Core/arch/RVV10/MathFunctions.h"
283- #if defined EIGEN_VECTORIZE_RVV10FP16
284- #include "src/Core/arch/RVV10/PacketMathFP16.h"
285- #endif
286- #if defined EIGEN_VECTORIZE_RVV10BF16
287- #include "src/Core/arch/RVV10/PacketMathBF16.h"
288- #endif
289273#elif defined EIGEN_VECTORIZE_ZVECTOR
290274#include "src/Core/arch/ZVector/PacketMath.h"
291275#include "src/Core/arch/ZVector/MathFunctions.h"
@@ -313,8 +297,6 @@ using std::ptrdiff_t;
313297#endif
314298#endif
315299
316- #endif // #ifndef EIGEN_VECTORIZE_GENERIC
317-
318300#include "src/Core/arch/Default/Settings.h"
319301// This file provides generic implementations valid for scalar as well
320302#include "src/Core/arch/Default/GenericPacketMathFunctions.h"
@@ -358,12 +340,13 @@ using std::ptrdiff_t;
358340#include "src/Core/DenseStorage.h"
359341#include "src/Core/NestByValue.h"
360342
343+ // #include "src/Core/ForceAlignedAccess.h"
344+
361345#include "src/Core/ReturnByValue.h"
362346#include "src/Core/NoAlias.h"
363347#include "src/Core/PlainObjectBase.h"
364348#include "src/Core/Matrix.h"
365349#include "src/Core/Array.h"
366- #include "src/Core/StructuredBindings.h"
367350#include "src/Core/Fill.h"
368351#include "src/Core/CwiseTernaryOp.h"
369352#include "src/Core/CwiseBinaryOp.h"
@@ -424,28 +407,23 @@ using std::ptrdiff_t;
424407#include "src/Core/CoreIterators.h"
425408#include "src/Core/ConditionEstimator.h"
426409
427- #if !defined(EIGEN_VECTORIZE_GENERIC)
428410#if defined(EIGEN_VECTORIZE_VSX)
429411#include "src/Core/arch/AltiVec/MatrixProduct.h"
430412#elif defined EIGEN_VECTORIZE_NEON
431413#include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
432414#elif defined EIGEN_VECTORIZE_LSX
433415#include "src/Core/arch/LSX/GeneralBlockPanelKernel.h"
434- #elif defined EIGEN_VECTORIZE_RVV10
435- #include "src/Core/arch/RVV10/GeneralBlockPanelKernel.h"
436416#endif
437417
438418#if defined(EIGEN_VECTORIZE_AVX512)
439419#include "src/Core/arch/AVX512/GemmKernel.h"
440420#endif
441- #endif
442421
443422#include "src/Core/Select.h"
444423#include "src/Core/VectorwiseOp.h"
445424#include "src/Core/PartialReduxEvaluator.h"
446425#include "src/Core/Random.h"
447426#include "src/Core/Replicate.h"
448- #include "src/Core/ConcatOp.h"
449427#include "src/Core/Reverse.h"
450428#include "src/Core/ArrayWrapper.h"
451429#include "src/Core/StlIterators.h"
@@ -465,10 +443,6 @@ using std::ptrdiff_t;
465443#include "src/Core/Assign_MKL.h"
466444#endif
467445
468- #ifdef EIGEN_USE_AOCL_VML
469- #include "src/Core/Assign_AOCL.h"
470- #endif
471-
472446#include "src/Core/GlobalFunctions.h"
473447// IWYU pragma: end_exports
474448
0 commit comments