2010-06-16 81 views

回答

2

ř定义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 /主/ 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错误代码的否定,我认为原因很多困惑。我认为这回答我的问题,但不是我的问题,因为它在抛出错误之前使用相同的参数工作多次。

0

DGEMV不返回任何错误代码。

bug暗示错误来自R本身。

也许你应该提交一个针对R的错误。

+1

BLAS有一个名为XERBLA的错误处理程序。 R覆盖XERBLA以传递错误消息。从我可以看到的信息变量中调用该错误。 – 2010-06-16 23:33:53

+0

看起来你在那里得到了答案。 – 2010-06-17 01:10:33