※ [本文轉錄自 C_and_CPP 看板]
作者: DrStein (交換關聯) 看板: C_and_CPP
標題: [問題] C 呼叫 lapack...
時間: Wed Aug 20 13:34:11 2008
C是以址傳遞,fortran是以參數傳遞,且C 是先行再列,
fortran是先列再行,小弟已有這觀念了,但是在如下的code中
http://www.openmx-square.org/zero_fermi/zero_fermi.c
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
a[j*n+i] = A[i+1][j+1];
b[j*n+i] = B[i+1][j+1];
}
}
dsygv_( &itype, &jobz, &uplo, &n, a, &lda, b, &ldb, zp, work, &lwork, &info);
呼叫 dsygv這lapack的含數,並不是全都以址傳遞
然後內容如下:
http://www.netlib.org/lapack/explore-html/dsygv.f.html
看似以址傳遞的,是為純input;沒有以址傳遞的,是有(input/)output。
請問是這樣的嗎ꄊ
在來如這例:在lapack中 a,b 是接受一個n*n的matrix(既a[n][n]) 。 可是原本的C
就把 A[][] 轉為a[N*N],是為一維陣列,而非把行列對掉。請問做法上就是C呼叫
lapack,就是要把原本的matrix轉為一維陣列嗎,既使lapack接收matrix也是要如
此做嗎ꄊ
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.13.207
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.154.127