问题:
- 我需要极高精度的double数计算,目前希望arm double计算与x86 平台执行相同的运算得到相同的结果。因为我需要迭代运算,后面迭代依赖前面的结果。迭代次数多了以后,最终算出来的结果与x86相比diff过大,无法达到预期结果。
期望解决方案:希望提供解决思路,谢谢!我想到了用bisheng-3.1进行尝试
本地测试环境:
- ARM:
- CPU: Kunpeng920
- 编译器:gcc-4.8.4
- 操作系统:openEuler release 20.03 (LTS)
- X86:
- CPU: Intel Xeon Gold 6265 CPU 3.60GHz
- 编译器:gcc-4.8.4
- 操作系统:CentOS 6.7
测试代码:
本地测试结果 
问题:
期望解决方案:希望提供解决思路,谢谢!我想到了用bisheng-3.1进行尝试
本地测试环境:
测试代码:
#include <stdio.h> #include <math.h> int main() { double dVal = 20; double szVal = 0.3; for (int i = 0; i != 64; ++i) { dVal += 1.0 / dVal; szVal *= 1.11; if (i == 3 || i == 9 || i == 15) // 本地这三个数有diff { printf("dVal=%.40e \n cbrt(dVal)=%.40e\n", dVal, cbrt(dVal)); printf("\n"); } return 0; } }本地测试结果