在使用 BLAS DGEMM矩阵乘法函数时,我注意到对于未初始化的结果矩阵 C,当我这样调用它时,我会在结果中得到 NaN:
DGEMM('N', 'N', M, N, K, 1.0, A, LDA, B, LDB, 0.0, C, LDC)
但是,如果我事先声明 ALPHA 和 BETA:
REAL*8 ALPHA, BETA
PARAMETER (ALPHA=1.0)
PARAMETER (BETA=0.0)
DGEMM('N', 'N', M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
然后乘法工作正常。有没有人知道为什么声明论点有效?
请注意,我使用的是 Intel Fortran 编译器及其 MKL 库。