EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

错误处理

KML_LAPACK会对输入参数进行检查,当出现参数为空指针或数值不合法等错误时会调用LAPACK错误处理函数xerbla_执行错误处理,默认情况下将使用Netlib LAPACK自带的xerbla_实现。

此实现的行为是打印以下错误信息并以错误码0退出进程:

** On entry to FUNC parameter number  N had an illegal value

其中FUNC为出错的LAPACK函数名称,N为参数序号。

用户可以提供自定义的xerbla_()函数实现,避免在出错时直接退出整个程序,示例实现如下:

void xerbla_(const char *func, const int *param, int funcLen)
{
    printf("XERBLA: function %.*s, info %i.\n", funcLen, func, *param);
}

使用上述示例函数时会在参数错误时打印一行错误信息,但不会退出进程。此时会返回函数的调用者,并将info参数设为相应的错误参数值。

请注意:

  1. 当参数中出现多个错误参数时,info可能设为任一错误参数的序号(取反)。
  2. 当输入的矩阵维度过大无法正常计算时,info会设为相关维度参数的序号(取反)。
  3. 用户程序在链接时需要首先链接包含自定义xerbla_实现的文件,再链接liblapack_adapt.a,否则会出现重复定义符号错误或仍然使用了Netlib LAPACK的xerbla_实现。
  4. 若用户提供自定义的xerbla_实现,所有错误处理(包括KML_LAPACK未优化的函数)都会使用此实现。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词