作者DrStein (交換關聯)
看板Fortran
標題[問題] C 呼叫lapack..
時間Fri Oct 3 01:29:59 2008
參考這Code :
http://www.openmx-square.org/zero_fermi/zero_fermi.c
注意到他呼叫lapack(既dsygv_ )前 做了下面的事:
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];
}
}
把二維array轉成一維,並且放置方式比造fortran(column base)
dsygv裡面是
http://www.netlib.org/lapack/double/dsygv.f
關於 a,b的輸入也沒有限制為幾維array,只是若自己程式直接用fortran
通常是2D array。
請問是否C call lapack只要參考此例,將2D-array轉為1-D array後既可?
thx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.70.62
1F:推 XMARTY:如果只是要call lapack 就像你說的這樣 如同c一般call c的 10/03 12:56
2F:→ XMARTY:subroutine, 大概只有兩個要注意:1. 函數後面要加底線 XXX_ 10/03 12:56
3F:→ XMARTY:然後 C這邊要傳址過去 不能傳值 10/03 12:57