| 
 
	积分2127贡献 精华在线时间 小时注册时间2013-6-12最后登录1970-1-1 
 | 
 
| 
参考文献:张林波 《并行计算导论》
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 参数顺序LAPACK 程序中的参数按如下顺序出现:
 (1) 选项参数,
 (2) 问题规模参数,
 (3) 输入数组或标量参数,有些可能被结果覆盖,
 (4) 输出数组或标量参数,
 (5) 工作数组及相应的规模参数,
 (6) 返回信息 (INFO)。
 值得注意的是并非每种参数都在一个子程序中出现。
 
参数说明下面的例子展示了 LAPACK 中参数的说明格式。
 TRANS         (输入) 字符型;“’N’”表示对原矩阵进行操作, “’T’”表示对原矩阵的转置进行操作。
 M                  (输入) 整型; 矩阵 A 的行数; M 或 -M 等于 A的行数。
 A                   (输入/输出) 双精度实型;维数为 (LDA, N);输入为 A(mxn);如果 M>=0,输出时 A 被程序DGEQRF 返回的 QR 分解覆盖, 如果 M<0, 输出时 A 被程序 DGELQF 返回的 LQ 分解覆盖。
 LDA              (输入) 整型;矩阵 A 第一维的大小;LDA>=M。
 INFO            (输出) 整型;0 表示成功,<0 表示第 -INFO个参数有违法值, >0 则表示 U(INFO, INFO) 的值为零,即三角分解可以完成但上三角矩阵 U是奇异的,因而不能用以求解线性方程组。
 每个参数的描述按如下顺序排列:
 (1) 参数的分类:(输入),(输出),(输入/输出),(输入或输出),(工作数组),(工作数组/输出);
 (2) 参数数据类型;
 (3) 若参数是数组,其大小;
 (4) 该参数所需的或将要提供的数据的描述,或二者都有。对于后者,在描述中以 “On entry” 和 “On exit” 开头;
 (5) 若该参数是输入的标量, 对其值的限制(如上例中的“LDA>=M”)。
 
选项参数一些选项的参数是 CHARACTER*1 型的, 这样的选项在 LAPACK中有 SIDE,TRANS,UPLO,DIAG。
 SIDE在调用时的用法如下:
 输入值                含义
 ’L’          在矩阵的左边乘以一个对称或三角阵
 ’R’         在矩阵的右边乘以一个对称或三角阵
 TRANS在调用时的用法如下:
 输入值                含义
 ’N’                对原矩阵进行操作
 ’T’     对原矩阵的转置进行操作
 ’C’     对原矩阵的共轭转置进行操作
 UPLO参数用于 Hermitian、对称和三角阵的情形,用于指示对
 矩阵的上或下三角进行操作,如下所示:
 输入值                含义
 ’U’                    上三角
 ’L’                     下三角
 DIAG在对三角阵进行操作的程序中用于指明该三角阵是否对角
 线元素为 1,如下所示:
 输入值                含义
 ’U’                  单位三角阵
 ’N’                 非单位三角阵
 当 DIAG 被指定为 'U' 值时,对应的对角元素将不被引用。
 以上参数也可以用小写字母,但任何其他值都是非法的。为了增强程序的可读性,程序员也可以使用更长的字符串,但只有第一个字符有效。例如:
 CALL DPOTRS('Upper',...)
 
工作数组很多 LAPACK 程序需要一个或多个工作数组作为参数。这种数组的名字一般是 WORK,有时可以是 IWORK 和 RWORK,以区别不同的数据类型。紧随其后的是声明工作数组大小的 LWORK、LIWORK或 LRWORK 参数。工作数组的第一个元素总是返回为了完成计算任务所需的最小空间。若用户提供的工作数组不够大,则程序会赋值给 INFO 并把正确的数组大小存在 WORK(1) 中,最后调用 XERBLA 程序报错。因此建议用户最好每次都检查程序返回的 INFO 值。
 若用户对于该工作组需要多大的空间有疑虑,不妨将 LWORK 设为 -1,然后进行调用,再把 WORK(1) 中返回的值作为 LWORK 的正确值。把 LWORK 设为 -1 不会引发任何错误信息, 而是被作为一个查询请求来处理。
 
错误处理所有程序都返回错误指示信息INFO, 告诉用户计算成功或失败。因而推荐用户每次调用都检查返回的 INFO 值。INFO 值的定义如下所示:
 INFO = 0 成功完成计算任务;
 INFO < 0 一个或多个参数有错,无法进行计算;
 INFO > 0 在计算过程中失败。
 如果使用标准的 XERBLA 程序,当程序出错时,LAPACK 将打印一条错误信息,并且当 INFO<0 时终止程序运行,所以 LAPACK的所有函数通常不会返回 INFO<0。但是,对于非标准的 XERBLA,这种情况则有可能发生。
 
 
 | 
 评分
查看全部评分
 |