看板 Programming 關於我們 聯絡資訊
※ [本文轉錄自 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