《软件学报杂志》发表论文赏析
作者:许瑾晨,郭绍忠,黄永忠,王磊,周蓓
单位:许瑾晨,解放军信息工程大学, 河南 郑州 450001;数学工程与先进计算国家重点实验室, 江苏 无锡 21412511,郭绍忠,解放军信息工程大学, 河南 郑州 45000102,黄永忠,解放军信息工程大学, 河南 郑州 45000103,王磊,解放军信息工程大学, 河南 郑州 45000104,周蓓,解放军信息工程大学, 河南 郑州 45000105
摘要:异常会造成程序错误,实现完全没有异常的浮点计算软件也很艰难,因此,实现有效的异常处理方法很重要.但现有的异常处理并不针对浮点运算,并且研究重点都集中在整数溢出错误上,而浮点类型运算降低了整数溢出存在的可能.针对上述现象,面向基于汇编实现的数学函数,提出了一种针对浮点运算的分段式异常处理方法.通过将异常类型映射为64位浮点数,以核心运算为中心,将异常处理过程分为3个阶段:输入参数检测(处理INV异常)、特定代码检测(处理DZE异常和INF异常)以及输出结果检测(处理FPF异常和DNO异常),并从数学运算的角度对该方法采用分段式处理的原因进行了证明.实验将该方法应用于Mlib浮点函数库,对库中600多个面向不同平台的浮点函数进行了测试.测试结果表明:该方法能够将出现浮点异常即中断的函数个数从90%降到0%.同时,实验结果验证了该方法的高效性.
关键词:浮点数;数学函数;异常处理
基金资助:国家高技术研究发展计划(863)(2009AA012201)