我必须使用 MKL 来求解线性方程组。该方程组用于求解 2D 泊松问题,因此正好有 5 条对角线与 0 不同。系统 Ax=b 的矩阵 A 是方阵,其大小为 n*n。我检查了英特尔的文档,我对调用顺序有点困惑。原型是:
lapack_int LAPACKE_dgbtrf( int matrix_order, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, <datatype>* ab, lapack_int ldab, lapack_int* ipiv );
1)matrix_order。Afaik矩阵的顺序是行数和列数之间的最大值。图书馆不应该从第二个和第三个参数中找出它吗?
2)m 和 n。这些是指原始矩阵 A 还是带存储中的表示?
3)带存储。鉴于问题的结构,我在主对角线上方有 d 条对角线,在主对角线下方有 d 条对角线,因此,包括分解的额外行,带存储的内存区域应该有 (n*n)*(3*d+ 1)元素。元素是按列的。我对吗?
4)领先的维度。这应该是 (3*d+1)
任何帮助表示赞赏