3

我有一个通过 R 运行但使用 BLAS 例程的程序。它正确运行了大约 8 次,但随后抛出错误:

BLAS/LAPACK 例程“DGEMV”给出错误代码 -6

这个错误代码是什么意思?

4

2 回答 2

3

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 文件。

dgemv.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 错误代码的负数,我认为这会引起很多混乱。我认为这回答了我的问题,但不是我的问题,因为它在抛出错误之前使用相同的参数多次工作。

于 2010-06-16T23:42:21.980 回答
0

DGEMV不返回任何错误代码。

错误意味着错误来自R自身。

也许您应该针对R.

于 2010-06-16T20:59:43.780 回答