📄 asolve.h
字号:
struct NRsparseLinbcg : Linbcg {
NRsparseMat &mat;
Int n;
NRsparseLinbcg(NRsparseMat &matrix) : mat(matrix), n(mat.nrows) {}
void atimes(VecDoub_I &x, VecDoub_O &r, const Int itrnsp) {
if (itrnsp) r=mat.atx(x);
else r=mat.ax(x);
}
void asolve(VecDoub_I &b, VecDoub_O &x, const Int itrnsp) {
Int i,j;
Doub diag;
for (i=0;i<n;i++) {
diag=0.0;
for (j=mat.col_ptr[i];j<mat.col_ptr[i+1];j++)
if (mat.row_ind[j] == i) {
diag=mat.val[j];
break;
}
x[i]=(diag != 0.0 ? b[i]/diag : b[i]);
}
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -