首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中与此同时使用Eigen和CLAPACK

2013-11-02 
C++中同时使用Eigen和CLAPACK最近因为在写算法较慢的软件,其中用到矩阵运算,所以最后选择同时使用Eigen和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



热点排行