当前位置:编程学习 > C/C++ >>

C++中同时使用Eigen和CLAPACK

最近因为在写算法较慢的软件,其中用到矩阵运算,所以最后选择同时使用Eigen和CLAPACK(lapack的C实现),并且在windows下和linux下都成功使用。下边分系统说明两个库在两个操作系统下的安装和使用,最后说一下如何利用Eigen的易用性和CLAPACK的速度同时结合,其实也蛮简单的。
1.linux中使用CLAPACK
在Redhat系统中确定可用。
(1)下载clapack
在http://www.netlib.org/clapack/中下载clapack.tgz。解压到~/clapack当中。
(2)编译安装
按照顺序编译如下四个库,可以参考http://blog.csdn.net/daiyuchao/article/details/2026162博客,亲测可用哦。
(3)编译工程的顺序
如果我有三个文件classes.cpp, classes.hpp和main.cpp,与四个静态库编译的命令应该是
g++ -o a.out classes.cpp main.cpp liblapack.a libblas.a libf2c.a libtmglib.a
(4)代码中的注意事项
#include <f2c.h>
#include <clapakc.h>两个头文件要放在C++库和C库后边
2. windows中用MSVC使用CLAPACK
(1) 32/64 bit version
在http://www.netlib.org/clapack/LIB_WINDOWS/prebuilt_libraries_windows.html下载如下几个静态库。
需要下载使用的静态库有:clapack.lib, BLAS.lib,libf2c.lib,tmglib.lib
具体如何利用MSVC添加包含目录和添加库,我在这里不再赘述了,有很多优秀的帖子已经说明了。
注意的是:
#include "libf2c.h"
#include "clapack.h"
要放在extern "C"{        }当中
3. 在windows/linux中安装Eigen
Eigen 3只要解压,g++ -I Eigen/就可以使用。
 
最后要谈的是Eigen和clapack的混合使用了。我看的是一篇英文的帖子,没有打算翻译过来,大家可以看看这个帖子就知道怎么使用了。
http://eigen.tuxfamily.org/index.php?title=Lapack
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,