【发布时间】:2011-10-19 09:47:44
【问题描述】:
我想用 C++ 表示sqrt(-1),因为我正在尝试实现 FFT 算法。有没有很好的表示方式?
【问题讨论】:
我想用 C++ 表示sqrt(-1),因为我正在尝试实现 FFT 算法。有没有很好的表示方式?
【问题讨论】:
我猜你正在寻找#include <complex> 例如:
std::complex<double> num(0,1);
您实际上可以将std::sqrt 与此complex 类型一起使用来计算sqrt(-1):
#include <complex>
#include <iostream>
int main() {
const std::complex<double> result = std::sqrt(std::complex<double>(-1,0));
std::cout << result << std::endl;
}
对于wn=exp((2*pi*i)/n),您可以这样做:
const double pi = std::acos(-1.0);
const std::complex<double> i(0,1);
std::complex<double> wn = std::exp((2*pi*i)/double(n));
【讨论】:
complex<double> i(0, 1); 是所需的值。
wn 应该是 std::complex<double>,而不是 double。
我相信你应该包含一个 Complex 类:http://www.cplusplus.com/reference/std/complex/
【讨论】: