2011-10-19 37 views
6

我想在C++中表示sqrt(-1),因爲我試圖實現一種FFT算法。有沒有一種很好的方式來表達這一點?如何在編程中表示sqrt(-1)?

+1

出於興趣是否有一個很好的理由,你想寫自己的FFT例程,而不是使用像[FFTW](http://www.fftw.org /)? – Flexo

+0

只是我正在閱讀算法書籍介紹算法(麻省理工學院出版社),所以只是沒有培訓 –

+0

你總是可以問[馬文](http://kasmana.people.cofc.edu/MATHFICT/mfview.php?callnumber=mf458 )(請參閱頁面底部的最後一個大號黃色方框文字) – Skizz

回答

17

我猜你正在尋找#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)); 
+0

而'complex i(0,1);'是所需的值。 – Joren

+1

@Joren:我想他已經說過...... –

+0

我們知道一個問題,在FFT方法中wn = exp((2 * pi * i)/ n)那麼它會是怎樣的呢? –

相關問題