2011-10-19 21 views
6

Quiero representar sqrt(-1) en C++, porque estoy tratando de implementar un algoritmo de FFT. ¿Hay una buena forma de representar esto?¿Cómo se representa sqrt (-1) en la programación?

+1

Fuera de interés, hay una buena razón por la cual usted querría escribir una rutina de FFT usted mismo en lugar de usar algo como [FFTW] (http://www.fftw.org /)? – Flexo

+0

simplemente estoy leyendo libros de algoritmos introducción a los algoritmos (MIT press), por lo que simplemente no hay capacitación –

+0

Siempre se puede preguntar [Marvin] (http://kasmana.people.cofc.edu/MATHFICT/mfview.php?callnumber=mf458) (vea el último texto en mayúsculas grande y amarillo en la parte inferior de la página) – Skizz

Respuesta

17

supongo que estás buscando #include <complex> por ejemplo:

std::complex<double> num(0,1); 

en realidad se puede utilizar con este tipo std::sqrtcomplex para calcular 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; 
} 

Para wn=exp((2*pi*i)/n) que puede hacer:

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

Y 'complejo i (0, 1);' es el valor deseado. – Joren

+1

@Joren: Creo que ya dijo que ... –

+0

una pregunta que sabemos que, en el método FFT wn = exp ((2 * pi * i)/n) entonces, ¿cómo sería? –

Cuestiones relacionadas