Warning, file /include/eigen3/Eigen/src/Core/util/MKL_support.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifndef EIGEN_MKL_SUPPORT_H
0034 #define EIGEN_MKL_SUPPORT_H
0035
0036 #ifdef EIGEN_USE_MKL_ALL
0037 #ifndef EIGEN_USE_BLAS
0038 #define EIGEN_USE_BLAS
0039 #endif
0040 #ifndef EIGEN_USE_LAPACKE
0041 #define EIGEN_USE_LAPACKE
0042 #endif
0043 #ifndef EIGEN_USE_MKL_VML
0044 #define EIGEN_USE_MKL_VML
0045 #endif
0046 #endif
0047
0048 #ifdef EIGEN_USE_LAPACKE_STRICT
0049 #define EIGEN_USE_LAPACKE
0050 #endif
0051
0052 #if defined(EIGEN_USE_MKL_VML) && !defined(EIGEN_USE_MKL)
0053 #define EIGEN_USE_MKL
0054 #endif
0055
0056
0057 #if defined EIGEN_USE_MKL
0058 # if (!defined MKL_DIRECT_CALL) && (!defined EIGEN_MKL_NO_DIRECT_CALL)
0059 # define MKL_DIRECT_CALL
0060 # define MKL_DIRECT_CALL_JUST_SET
0061 # endif
0062 # include <mkl.h>
0063
0064 # ifndef INTEL_MKL_VERSION
0065 # undef EIGEN_USE_MKL
0066 # elif INTEL_MKL_VERSION < 100305
0067 # undef EIGEN_USE_MKL
0068 # endif
0069 # ifndef EIGEN_USE_MKL
0070
0071 # undef EIGEN_USE_MKL_ALL
0072 # undef EIGEN_USE_LAPACKE
0073 # undef EIGEN_USE_MKL_VML
0074 # undef EIGEN_USE_LAPACKE_STRICT
0075 # undef EIGEN_USE_LAPACKE
0076 # ifdef MKL_DIRECT_CALL_JUST_SET
0077 # undef MKL_DIRECT_CALL
0078 # endif
0079 # endif
0080 #endif
0081
0082 #if defined EIGEN_USE_MKL
0083
0084 #define EIGEN_MKL_VML_THRESHOLD 128
0085
0086
0087
0088 #ifdef MKL_DOMAIN_ALL
0089 #define EIGEN_MKL_DOMAIN_ALL MKL_DOMAIN_ALL
0090 #else
0091 #define EIGEN_MKL_DOMAIN_ALL MKL_ALL
0092 #endif
0093
0094 #ifdef MKL_DOMAIN_BLAS
0095 #define EIGEN_MKL_DOMAIN_BLAS MKL_DOMAIN_BLAS
0096 #else
0097 #define EIGEN_MKL_DOMAIN_BLAS MKL_BLAS
0098 #endif
0099
0100 #ifdef MKL_DOMAIN_FFT
0101 #define EIGEN_MKL_DOMAIN_FFT MKL_DOMAIN_FFT
0102 #else
0103 #define EIGEN_MKL_DOMAIN_FFT MKL_FFT
0104 #endif
0105
0106 #ifdef MKL_DOMAIN_VML
0107 #define EIGEN_MKL_DOMAIN_VML MKL_DOMAIN_VML
0108 #else
0109 #define EIGEN_MKL_DOMAIN_VML MKL_VML
0110 #endif
0111
0112 #ifdef MKL_DOMAIN_PARDISO
0113 #define EIGEN_MKL_DOMAIN_PARDISO MKL_DOMAIN_PARDISO
0114 #else
0115 #define EIGEN_MKL_DOMAIN_PARDISO MKL_PARDISO
0116 #endif
0117 #endif
0118
0119 #if defined(EIGEN_USE_BLAS) && !defined(EIGEN_USE_MKL)
0120 #include "../../misc/blas.h"
0121 #endif
0122
0123 namespace Eigen {
0124
0125 typedef std::complex<double> dcomplex;
0126 typedef std::complex<float> scomplex;
0127
0128 #if defined(EIGEN_USE_MKL)
0129 typedef MKL_INT BlasIndex;
0130 #else
0131 typedef int BlasIndex;
0132 #endif
0133
0134 }
0135
0136
0137 #endif