gpt4 book ai didi

c++ - 非常大的 float 会导致不确定性吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:07 24 4
gpt4 key购买 nike

我正在 win32 环境中运行 C++ 优化程序。该程序为 FFTW 和 pthreads 使用预构建的 DLL。

最近,程序发生了变化,可以遇到非常大的数字,甚至可能是无穷大。进行此更改后,这个原本精简而健壮的系统开始产生奇怪的症状 - 最显着的是它在不同的运行中产生不同的数值结果(在同一台计算机上,使用相同的二进制文件),甚至在这里和那里添加 printf 或虚拟分配从根本上改变了行为。

我仔细检查了所有可能的缓冲区溢出、内存分配、线程问题(我现在将线程池大小减少到 1)、堆栈大小,但经过数周的搜索后,我一无所获。在更改之前,该程序没有非确定性或稳定性问题,它经常运行数天。

我想知道问题是否出在 FFTW 模块上?或者这种浮点不稳定性是否源于大数?

最佳答案

float 本身不会导致不确定性,但您可能使用的任何第三方库如果存在错误(例如未正确处理无穷大),则可能会导致不确定性。

您可能还需要考虑您的自己的 代码可能是罪魁祸首的可能性。当第三方库被大量使用时,通常(但不总是)会出现这种情况,因为假设大多数错误已经被其他人发现,这并非超出想象范围。

我不知道 FFTW 是否属于该类别。但它肯定有可能已经被比你自己的代码更多的人测试过:-)

关于c++ - 非常大的 float 会导致不确定性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9579627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com