用于跟踪最坏情况错误的算术库



(已编辑)
是否有任何库或工具可以了解算术运算中的最大累积误差?

例如,如果我进行一些迭代计算。。。

myVars = initialValues;
while (notEnded) {
    myVars = updateMyVars(myVars)
}

最后,我不仅想知道计算出的值,还想知道潜在的误差(如果每个单独操作的结果都超过了每个操作数的范围限制,则可能值的范围)。

我已经编写了一个名为EADouble.Java(EA for Error Accounting)的Java类,它保存并更新最大正误差和负误差以及计算值,用于一些基本操作,但我担心我可能正在重新发明一个方轮。

有Java中的库吗?有什么建议吗?


  • 7月11日更新:检查了现有库,并添加了示例代码链接
  • 正如同事们所评论的,有区间算术的概念,之前有一个问题(一个好的不确定性(区间)算术库?)关于主题。关于我的意图,只有几个小问题:
    • 比起上限和下限,我更关心"main"值。然而,将该额外值添加到开放库应该是直接的
    • 将误差计算为独立的浮点可能允许更高的精度(例如,对于加法,上限将仅增加一半ULP,而不是整个ULP)
  • 我看过的图书馆:
    • ia_math(Java。只需要添加main值。我迄今为止最喜欢)
    • Boost/numeric/Interval(C++,非常复杂/完整)
    • ErrorProp(Java、accounts value和error作为标准差)
  • 示例代码(TestEADouble.java)可以运行弹道模拟和数字e的计算。然而,这些并不是很苛刻的场景

可能为时已晚,但请查看BIAS/Profile:http://www.ti3.tuhh.de/keil/profil/index_e.html相当完整,简单,说明计算机错误,如果您的错误集中在中心,则可以轻松访问您的标称值(通过Mid(…))。

相关内容

  • 没有找到相关文章

最新更新