我有一个程序通过R运行但使用BLAS例程。它正确运行大约8次,但然后抛出错误:
BLAS / LAPACK例程'DGEMV'给出了错误代码-6
此错误代码的含义是什么?
答案 0 :(得分:2)
R将XERBLA函数定义为
void F77_NAME(xerbla)(const char *srname, int *info)
{
/* srname is not null-terminated. It should be 6 characters. */
char buf[7];
strncpy(buf, srname, 6);
buf[6] = '\0';
error(_("BLAS/LAPACK routine '%6s' gave error code %d"), buf, -(*info));
}
来自src / main / print.c文件。
dlmv.f的Netlib版本显示只检查输入参数。代码6显示LDA或M参数的问题。
*...
ELSE IF (LDA.LT.MAX(1,M)) THEN
INFO = 6
*...
END IF
IF (INFO.NE.0) THEN
CALL XERBLA('DGEMV ',INFO)
RETURN
所以看起来R采用了BLAS错误代码的否定,我认为这会造成很多混乱。我认为这回答了我的问题而不是我的问题,因为它在抛出错误之前使用相同的参数工作了好几次。
答案 1 :(得分:0)