BLAS DGEMV 错误代码 -6 是什么意思?

发布于 2024-09-05 22:49:45 字数 142 浏览 13 评论 0原文

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

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

该错误代码是什么意思?

I have a program that runs through R but uses the BLAS routines. It runs through correctly about 8 times but then throws an error:

BLAS/LAPACK routine 'DGEMV ' gave error code -6

What does this error code mean?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红衣飘飘貌似仙 2024-09-12 22:49:45

定义了 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));
}

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

R defines the XERBLA function as

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));
}

from the src/main/print.c file.

the Netlib version of dgemv.f shows that only the input parameters are checked. A code of 6 shows a problem with either the LDA or M parameter.

*...
  ELSE IF (LDA.LT.MAX(1,M)) THEN
      INFO = 6
*...
  END IF
  IF (INFO.NE.0) THEN
      CALL XERBLA('DGEMV ',INFO)
      RETURN

So it appears that R takes the negative of the BLAS error code, which I think causes lots of confusion. I think this answers my question but not my problem, since it works several times with the same parameters before the error is thrown.

生活了然无味 2024-09-12 22:49:45

DGEMV 不返回任何错误代码。

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

也许您应该针对 R 提交错误。

DGEMV does not return any error codes.

This bug implies that the error is coming from R itself.

Perhaps you should file a bug against R.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文