windows安装clapack

来源:互联网 发布:虚拟机 ubuntu 屏幕 编辑:程序博客网 时间:2024/04/30 06:38

Lapack库是一个fortran的linear algebra库,Clapack是基f2c库将Lapack库转换为c语言库。所以clapack其实依赖于blas库,lapack库和f2c库。

在windows下面的安装有两种途径,一种是下载预编译的clapack库,一种是自己编译。大部分库还是推荐自己编译一下。


自己编译的话,请参考http://icl.cs.utk.edu/lapack-for-windows/clapack/ 这个网页上的Easy Windows Build那部分。我用的是windows7和vs2015。 第七步的时候你会发现并不是所有的project都会succeed,不过这个并不影响,你会发现打开C:\Program Files (x86),clapack已经安装上了。  另外,一定要以管理员权限打开vs,否知vs没有权限安装到C:\Program Files (x86)文件夹。如果想要下载预编译的库也可以直接从http://icl.cs.utk.edu/lapack-for-windows/clapack/ 下载。


然后我们要在vs中配置project property。

1, Property-》C/C++ -》Additional Include Directories 加入C:\Program Files (x86)\CLAPACK\include

2, Property-》Linker -》General -》Additional Library Directories加入C:\Program Files (x86)\CLAPACK\lib

3, Property-》Linker -》Input -》Additional Dependencies加入blas.lib; lapack.lib; libf2c.lib


然后新建一个win控制台程序来进行测试

#include "stdafx.h"
//author: Zero
#include "iostream"
#include "f2c.h"        
#include "clapack.h"


using namespace std;


int main() {


cout << "Phoebe is an idiot" << endl;


char transa = 'T', transb = 'T';
integer M = 2, N = 2, K = 2, LDA = K, LDB = N, LDC = M;
double alpha = 1.0, A[4] = { 1, 2, 3, 4 }, B[4] = { 5, 6, 7, 8 }, beta = 0.0, C[4]; //下面的函数的意思是C = 1.0 * T(A) * T(B) + 0 * C,其中T()表示将某个矩阵转置
//注意此时得到的C是按列存放的
dgemm_(&transa, &transb, &M, &N, &K, &alpha, A, &LDA, B, &LDB, &beta, C, &LDC);


cout << C[0] << " " << C[2] << endl;
cout << C[1] << " " << C[3] << endl;


return 0;
}


输出为19 22 43 50. 我们的库就弄好啦!


今天搜索别的东西又发现了一个链接http://www.cnblogs.com/cumtb3S/archive/2011/03/12/1982384.html ,如果有别的关于安装clapack库的问题可以参考这位朋友的博客。




0 0