Как представить sqrt (-1) в программировании? - PullRequest
6 голосов
/ 19 октября 2011

Я хочу представить sqrt(-1) в C ++, потому что я пытаюсь реализовать алгоритм FFT. Есть хороший способ представить это?

Ответы [ 2 ]

17 голосов
/ 19 октября 2011

Я думаю, вы ищете #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));
1 голос
/ 19 октября 2011

Я считаю, что есть класс Complex, который вы должны включить: http://www.cplusplus.com/reference/std/complex/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...