在LAPACK中频繁出现Leading Dimension(中文翻译为“主维度”),那么它是什么呢?
首先了解行主序(Row-Major)和列主序(Column-Major)的概念:
Given a matrix?A?of shape?(M,N), if it is stored in row-major order, its leading dimension is?N, and if it is stored in column-major order, its leading dimension is?M.
矩阵在内存中存储时是连续地按(某种)顺序存储的,比如下图,A矩阵是列主序,那么A(0,0)和A(0,1)之间其实是不连续的,相隔了ldA个元素。
LAPACK和Fortran的数组默认是列主序的,我们来看一个LAPACK例子,ZLASET是一个生成三对角矩阵的函数:
可以看到,里面的LDA就是A的行数。