0
我已將C++程序與AGMG庫中的fortran dagmg.f90例程鏈接起來。最初,稀疏矩陣由CRS格式的Eigen庫構建,然後將其轉換爲fortran例程所需的格式。 AGMG運行並計算非零的數量並顯示未知數量。但之後它突然顯示分段故障。我無法弄清楚背後的原因。運行AGMG中的分段錯誤
int jatest[NNZ];
int iatest[nodes+1];
double bftest[nodes];
double VXtest[nodes];
// code to convert Af into a, ja, ia vectors for AGMG
double *aptr; int* japtr; int* iaptr;
aptr = Af.valuePtr();
japtr = Af.innerIndexPtr();
iaptr = Af.outerIndexPtr();
for (i = 0; i < NNZ ; i++){
atest[i] = aptr[i];
jatest[i] = japtr[i] + 1;
// cout << atest[i] << "\t" << japtr[i] << endl;
}
for (i = 0; i <= nodes; i++){
iatest[i] = iaptr[i] + 1;
}
dagmg_(nodes,atest,jatest,iatest,bftest,VXtest,ijob,iprint,nrest,iter,tol);
輸出看起來是這樣的:
* ENTERING AGMG * ** * ** * ** * ** * ** * * * * ** * ** * ** * ** * ** * **
未知數的數量:17個 **非零元素:51(每行:3.00)
分段故障
爲什麼我得到這個錯誤?
+1爲參考提供了答案。 – Spudley