Что означает код ошибки BLAS DGEMV -6? - PullRequest
2 голосов
/ 17 июня 2010

У меня есть программа, которая работает через R, но использует подпрограммы BLAS. Он корректно проходит около 8 раз, но затем выдает ошибку:

Программа BLAS / LAPACK 'DGEMV' выдала код ошибки -6

Что означает этот код ошибки?

Ответы [ 2 ]

2 голосов
/ 17 июня 2010

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.

Netlib-версия dgemv.f показывает, что проверяются только входные параметры. Код 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, что, я думаю, вызывает много путаницы. Я думаю, что это отвечает на мой вопрос, но не на мою проблему, поскольку он работает несколько раз с одними и теми же параметрами до появления ошибки.

0 голосов
/ 17 июня 2010

DGEMV не возвращает коды ошибок.

Эта ошибка подразумевает, что ошибка исходит от самого R.

Возможно, вам следует сообщить об ошибке R.

...