[分享] C++呼叫Fortran BLAS的範例
裝好lapack和blas後, 如何在C++程序裡引用矩陣相乘函數dgemm, 我在網路
上都找不到可以編譯成功的範例, 現在測試出來了特此分享.
g++ dgemm_test.cpp -o out -L -llapack -lblas
=====dgemm_test.cpp=======================================
#include <iostream>
extern "C" void dgemm_(const char*,const char*,const int*,const int*,const
int*,const double*,const double*,const int*,const double*,const int*,const
double*,const double*,const int*);//C++程序必須要宣告此行!!!!!
using namespace std;
int main() {
char TransA='N';
char TransB='N';
const int M=4;
const int N=2;
const int K=3;
const double alpha=1;
const bdouble beta=0;
const int lda=M;
const int ldb=K;
const int ldc=M;
const double A[K*M]={1,2,3,4,5,6,7,8,9,8,7,6};
const double B[K*N]={5,4,3,2,1,0};
double C[M*N];
dgemm_(&TransA, &TransB, &M, &N, &K, &alpha, &A[0], &lda, &B[0], &ldb,
&beta, &C[0], &ldc);
for(int i=0;i<M;i++){
for(int j=0;j<N;j++)
{
cout<<C[i*N+j]<<"\t";
}
cout << endl;
}
return 0;
}
==========./out, Output is===========================
52 58
64 70
7 10
13 16
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.76.93.247
→
11/01 21:13, , 1F
11/01 21:13, 1F
推
11/01 21:27, , 2F
11/01 21:27, 2F
推
11/01 22:31, , 3F
11/01 22:31, 3F
推
11/01 22:51, , 4F
11/01 22:51, 4F
推
11/01 22:51, , 5F
11/01 22:51, 5F
→
11/01 22:51, , 6F
11/01 22:51, 6F
→
11/01 22:52, , 7F
11/01 22:52, 7F
→
11/01 22:53, , 8F
11/01 22:53, 8F
推
11/01 22:54, , 9F
11/01 22:54, 9F
→
11/01 23:41, , 10F
11/01 23:41, 10F
→
11/02 04:11, , 11F
11/02 04:11, 11F
→
11/02 10:42, , 12F
11/02 10:42, 12F
→
11/04 03:38, , 13F
11/04 03:38, 13F
→
11/04 03:40, , 14F
11/04 03:40, 14F
→
11/04 03:42, , 15F
11/04 03:42, 15F
→
11/04 03:44, , 16F
11/04 03:44, 16F
→
11/04 03:44, , 17F
11/04 03:44, 17F
→
11/04 03:45, , 18F
11/04 03:45, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章