33 #ifndef EIGEN_MKL_SUPPORT_H    34 #define EIGEN_MKL_SUPPORT_H    36 #ifdef EIGEN_USE_MKL_ALL    37   #ifndef EIGEN_USE_BLAS    38     #define EIGEN_USE_BLAS    40   #ifndef EIGEN_USE_LAPACKE    41     #define EIGEN_USE_LAPACKE    43   #ifndef EIGEN_USE_MKL_VML    44     #define EIGEN_USE_MKL_VML    48 #ifdef EIGEN_USE_LAPACKE_STRICT    49   #define EIGEN_USE_LAPACKE    52 #if defined(EIGEN_USE_BLAS) || defined(EIGEN_USE_LAPACKE) || defined(EIGEN_USE_MKL_VML)    56 #if defined EIGEN_USE_MKL    59 #include <mkl_lapacke.h>    60 #define EIGEN_MKL_VML_THRESHOLD 128    64 typedef std::complex<double> dcomplex;
    65 typedef std::complex<float>  scomplex;
    69 template<
typename MKLType, 
typename EigenType>
    70 static inline void assign_scalar_eig2mkl(MKLType& mklScalar, 
const EigenType& eigenScalar) {
    71   mklScalar=eigenScalar;
    74 template<
typename MKLType, 
typename EigenType>
    75 static inline void assign_conj_scalar_eig2mkl(MKLType& mklScalar, 
const EigenType& eigenScalar) {
    76   mklScalar=eigenScalar;
    80 inline void assign_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, 
const dcomplex& eigenScalar) {
    81   mklScalar.real=eigenScalar.real();
    82   mklScalar.imag=eigenScalar.imag();
    86 inline void assign_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, 
const scomplex& eigenScalar) {
    87   mklScalar.real=eigenScalar.real();
    88   mklScalar.imag=eigenScalar.imag();
    92 inline void assign_conj_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, 
const dcomplex& eigenScalar) {
    93   mklScalar.real=eigenScalar.real();
    94   mklScalar.imag=-eigenScalar.imag();
    98 inline void assign_conj_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, 
const scomplex& eigenScalar) {
    99   mklScalar.real=eigenScalar.real();
   100   mklScalar.imag=-eigenScalar.imag();
   109 #endif // EIGEN_MKL_SUPPORT_H