Имам програма, която работи през R, но използва рутинните процедури BLAS. Той преминава правилно около 8 пъти, но след това извежда грешка:
BLAS/LAPACK рутина 'DGEMV' даде код на грешка -6
Какво означава този код за грешка?
Имам програма, която работи през R, но използва рутинните процедури BLAS. Той преминава правилно около 8 пъти, но след това извежда грешка:
BLAS/LAPACK рутина 'DGEMV' даде код на грешка -6
Какво означава този код за грешка?
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, което според мен причинява много объркване. Мисля, че това отговаря на въпроса ми, но не и на моя проблем, тъй като работи няколко пъти с едни и същи параметри, преди да бъде изведена грешката.
DGEMV не връща никакви кодове за грешка.
Тази бъг предполага, че грешката идва от самия R
.
Може би трябва да подадете сигнал за грешка срещу R
.