NAN、INF(非收敛)的 C++ std::complex<> 数据类型测试

标签 c++ math double nan

我想测试对复数 (std::complex) 的操作是否会导致 +/- INF 或 NAN 结果。 (非收敛结果。)

例如在映射 z -> z * z + c 下。

对于 float 或 double 数据类型,我相信可以使用 x != x 来测试 NAN。我不确定这是否适用于 +/- INF。

最佳答案

使用std::isfinite .如果其输入既不是 nan 也不是 inf,则此函数返回 true。您还可以使用 std::isnanstd::isinf 检查那些特定的属性。

编辑:对于 std::complex,您可以对 realimag 部分应用相同的检查。您也可以简单地将它应用于 std::complex 对象的 abs

关于NAN、INF(非收敛)的 C++ std::complex<> 数据类型测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330120/

相关文章:

c++ - 平凡的函数给出了意想不到的返回值

java - Jack Shirazi DoubleToString java优化问题

c++ - Windows/C++ : How do I determine the share name associated with a shared drive?

c++ - 多线程应用程序中的最小延迟对象池技术

math - imagemagick 中 1% 模糊度是多少?

python - OpenGL:相机 theta 和缩放

algorithm - 分配玩家到 table

C - 求一个数的立方根

c++ - C++ 中的聚合 : Date inside Class Article

c++ - C++ 中的变量定义,定义 3 个变量?