ERF在Visual Studio MSVC中的准确性是多少

What is the accuracy of erf in Visual Studio MSVC?

本文关键字:准确性 多少 MSVC Visual Studio ERF      更新时间:2023-10-16

我需要在代码中使用erf函数,并且<cmath>中包含标准实现。对我来说,了解结果的准确性很重要。有人知道它是如何在那里实现的(什么算法或近似)?

我正在使用Visual Studio,如果有所不同。

编辑:这不是这个问题的重复,因为我想知道我正在使用的实现的精度(MS Visual Studio),而相关的问题仅表示答案是特定于实施的。

由于您是专门寻找MSVC实现定义的行为,因此要去的地方是MSVC文档:

这些功能被实施以平衡性能与正确性。由于产生正确的圆形结果可能非常昂贵,因此这些功能旨在有效地产生与正确圆形结果的近似值。在大多数情况下,产生的结果在正确的圆形结果的/- 1 ULP之内,尽管可能有些情况下存在更大的不准确性。

解决方案可能不是使用cmath版本(Visual Studio可能不会披露内部实现),而是依靠为您提供所需信息的实现:

例如,提升错误函数,可能还有其他开源实现。

提升实现带有精度表,列出了一些实现的精度,最重要的是,如果提供的信息为,则实际上可以查看源代码还不够。