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

时间:2010-06-16 20:34:31

标签: r lapack blas

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

  

BLAS / LAPACK例程'DGEMV'给出了错误代码-6

此错误代码的含义是什么?

2 个答案:

答案 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)

DGEMV不会返回任何错误代码。

bug表示错误来自R本身。

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