Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang 有没有办法保证浮点计算的跨平台回归测试的结果?_Erlang_Floating Point_Ieee 754 - Fatal编程技术网

Erlang 有没有办法保证浮点计算的跨平台回归测试的结果?

Erlang 有没有办法保证浮点计算的跨平台回归测试的结果?,erlang,floating-point,ieee-754,Erlang,Floating Point,Ieee 754,有没有办法保证浮点计算的跨平台回归测试的结果 例如,当将相同的二进制值转换为十进制值时,不同的实现可能会返回不同的结果,如中所述: 我对Erlang/OTP案例感兴趣,但欢迎使用其他语言和环境中的示例。Erlang依赖于底层系统的浮点实现 浮点行为测试相当困难。最为人所知的平台浮点行为测试可能是由编写的,称为“偏执狂” 它被移植到甚至是一个版本的 然而,这只是测试平台的基本浮点行为 您所指的是平台之间的strtod的不同C库行为。 这可能由C标准一致性测试软件进行测试 但是测试并不能保证你所要求

有没有办法保证浮点计算的跨平台回归测试的结果

例如,当将相同的二进制值转换为十进制值时,不同的实现可能会返回不同的结果,如中所述:


我对Erlang/OTP案例感兴趣,但欢迎使用其他语言和环境中的示例。

Erlang依赖于底层系统的浮点实现

浮点行为测试相当困难。最为人所知的平台浮点行为测试可能是由编写的,称为“偏执狂”

它被移植到甚至是一个版本的

然而,这只是测试平台的基本浮点行为

您所指的是平台之间的
strtod
的不同C库行为。 这可能由C标准一致性测试软件进行测试

但是测试并不能保证你所要求的是不可能实现的。浮点软件中总会有细微的错误或差异,甚至


最好的方法是使用模块验证计算结果并编写浮点测试。

原则上,如果我们看看C(在Erlang的引擎盖下使用),乘法、强制转换等基本操作。应在不同环境中保持一致。另一方面,标准库中的函数可能不会

注意,一些编译器,包括gcc,默认情况下会有一点欺骗,但提供了一个命令行选项来遵守规则