浮点精度异常检测技术

本文介绍了两种关于浮点计算的技术。一种是Ariadne系统,它使用符号执行来检测浮点异常,通过实数算法寻找可能触发异常的输入,有效地定位了GSL库中的浮点异常。另一种是Herbie工具,它能自动化改进浮点表达式的精度,通过启发式搜索和级数展开减少舍入误差,提高计算准确性。
摘要由CSDN通过智能技术生成

1、 Automatic detection of floating-point exceptions
作者:Earl T. Barr Thanh Vo Vu Le Zhendong Su
单位:Department of Computer Science, University of California at Davis
出版:POPL’13
研究方向:浮点异常检测
主要技术点:符号执行
摘要:
设计并实现了一种检测浮点异常的符号执行系统Ariadne。Ariadne系统地对一个数值程序进行变换并检查每一个异常触发条件。Ariadne使用实数算法对变换后的程序进行符号化执行,来发现可能到达或触发异常的候选实数输入集。Ariadne将每一个候选输入转换为浮点数,与原始程序进行对比测试。通常,采用近似浮点算法的实数算法可能将执行路径从可达变为不可达,反之亦然。本工作的关键发现在于,对于浮点异常检测问题,这种近似的方法在实际应用中能够很好地工作,是由于若一个输入产生了异常,很多输入也都可能,并且其中至少一个在浮点计算和实数计算中都会产生异常。为了实现Ariadne,我们设计了一种新型的线性化技术来解决非线性约束。对GSL库中的467个标量函数进行了测试,Ariadne可以定位GSL中大量真实的运行时异常。GSL的开发人员确认了我们的原始发现,并期待Ariadne的公开版本,我们也计划在近期发行。
浮点精度问题的背景:
On June 4, 1996, the European Space Agency’s Ariane 5 rocket veered off course and self-destructed because the assignment of a floating-point number to an integer caused an overflow [40

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值