Eigen 3.4.90
Go to the documentation of this file.
11 #ifndef EIGEN_CORE_MODULE_H
12 #define EIGEN_CORE_MODULE_H
26 #if defined(EIGEN_CUDACC)
27 #include <cuda_runtime.h>
28 #elif defined(EIGEN_HIPCC)
29 #include <hip/hip_runtime.h>
33 #ifdef EIGEN_EXCEPTIONS
39 #if EIGEN_COMP_MINGW && EIGEN_GNUC_STRICT_LESS_THAN(6,0,0)
40 #pragma GCC optimize ("-fno-ipa-cp-clone" )
46 #if EIGEN_COMP_ICC && defined(EIGEN_GPU_COMPILE_PHASE) \
47 && !defined(_OVERRIDE_COMPLEX_SPECIALIZATION_)
48 #define _OVERRIDE_COMPLEX_SPECIALIZATION_ 1
57 #if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
58 #define EIGEN_HAS_GPU_FP16
61 #if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
62 #define EIGEN_HAS_GPU_BF16
65 #if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
66 #define EIGEN_HAS_OPENMP
69 #ifdef EIGEN_HAS_OPENMP
75 #if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
76 #define EIGEN_HAS_ERRNO
79 #ifdef EIGEN_HAS_ERRNO
101 #include <type_traits>
104 #ifdef EIGEN_DEBUG_ASSIGN
110 #if EIGEN_COMP_MSVC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM64) && !EIGEN_OS_WINCE
114 #if defined(EIGEN_USE_SYCL)
120 #include <CL/sycl.hpp>
125 #ifndef EIGEN_SYCL_LOCAL_THREAD_DIM0
126 #define EIGEN_SYCL_LOCAL_THREAD_DIM0 16
128 #ifndef EIGEN_SYCL_LOCAL_THREAD_DIM1
129 #define EIGEN_SYCL_LOCAL_THREAD_DIM1 16
134 #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
136 #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
145 using std::ptrdiff_t;
159 #ifdef EIGEN_USE_LAPACKE
161 #include "mkl_lapacke.h"
191 #if defined EIGEN_VECTORIZE_AVX512
192 #if defined EIGEN_VECTORIZE_AVX512FP16
208 #elif defined EIGEN_VECTORIZE_AVX
218 #elif defined EIGEN_VECTORIZE_SSE
223 #elif defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
228 #elif defined EIGEN_VECTORIZE_NEON
233 #elif defined EIGEN_VECTORIZE_SVE
237 #elif defined EIGEN_VECTORIZE_ZVECTOR
241 #elif defined EIGEN_VECTORIZE_MSA
247 #if defined EIGEN_VECTORIZE_GPU
253 #if defined(EIGEN_USE_SYCL)
255 #if !defined(EIGEN_DONT_VECTORIZE_SYCL)
279 #ifdef EIGEN_VECTORIZE_NEON
298 #ifndef EIGEN_PARSED_BY_DOXYGEN
368 #if defined(EIGEN_VECTORIZE_VSX)
370 #elif defined EIGEN_VECTORIZE_NEON
374 #if defined(EIGEN_VECTORIZE_AVX512)
387 #ifdef EIGEN_USE_BLAS
398 #ifdef EIGEN_USE_MKL_VML