我在 win32 环境中运行 C++ 优化程序。该程序为 FFTW 和 pthreads 使用预构建的 DLL。
最近,程序发生了变化,它可以遇到非常大的数字,甚至可能是无穷大。在此更改之后,这个原本精简而强大的系统开始产生奇怪的症状 - 最明显的是它在不同的运行(在同一台计算机上,使用相同的二进制文件)产生不同的数值结果,甚至在这里和那里添加 printf 或虚拟分配从根本上改变了行为。
我仔细检查了所有可能的缓冲区溢出、内存分配、线程问题(我现在将线程池大小减少到 1)、堆栈大小,但经过数周的搜索,我什么也没找到。在更改之前,该程序没有不确定性或稳定性问题,它会定期运行数天。
我想知道问题是否出在 FFTW 模块上?或者这种浮点不稳定性是否源于大量数字?