gpt4 book ai didi

c++ - 检查一个复数是否有 NaN

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:23 27 4
gpt4 key购买 nike

我正在尝试检查作为傅立叶变换(使用 http://fftw.org/ )结果的 std::complex 数字是否包含 NaN实部或虚部。

我正在使用 Borland C++,所以我无权访问 std::isnan。我试图通过将其与自身进行比较来检查该数字是否为 NaN:

(n.imag() != n.imag())

但是,一旦调用 n.imag()std::imag(n),我就会得到“浮点无效操作”。

是否有任何方法可以验证 std::complex 是否良好?如果它包含一个 NaN?

最佳答案

这适用于 g++:

#include<iostream>
#include<cmath>
#include<complex>

int main(){

double x=sqrt(-1.);
std::complex<double> c(sqrt(-1.), 2.);

std::cout<<x<<"\n";
std::cout<<c<<"\n";

std::cout<< ( (c!=c) ? "yup" : "nope" )<<"\n";
}

关于c++ - 检查一个复数是否有 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375899/

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