作者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