本文介绍了如何从Eigen调用IMKL函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include<iostream>    
#define EIGEN_USE_MKL_ALL    
#include"mkl.h"    
#include<Eigen/Dense>    

using Eigen::MatrixXd;    

int main() 
{    
    MatrixXd m1,m2,m3;    
    m1<<1,2,3,4;    
    m2<<5,6,7,8;    
    m3=m1*m2.Transpose();    
    std::cout<<m3;    
}

我使用IMKL11.2
Eigen 3.2.0
ubuntu 14.04 LTS
英特尔核心处理器
64位os
g ++编译器

i used IMKL11.2 Eigen 3.2.0 ubuntu 14.04 LTS intel core duo processor 64bit os g++ compiler


链接说我们可以使用来自Eigen的IMKL定义宏。但是以下错误在

http://eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html the link says that we can use IMKL from Eigen by defining the macro. But the following error pope up

在来自Eigen / Core的文件中,来自test.cpp
MKL_BLAS在此范围内未被清除

in file included from Eigen/Core from Eigen/Dense from test.cpp MKL_BLAS was not decleared in this scope

推荐答案

此问题已在变更集是最新稳定版本的一部分,即。

This issue has been fixed in changeset 0cc8ceeb7dd1 which is part of the latest stable release, namely Eigen 3.2.6.

这篇关于如何从Eigen调用IMKL函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 17:12