В результате возникла проблема со способом вычисления абсолютных значений комплексного числа. в библиотеке std :: complex это вычисляло расстояние вектора.

исал простую тестовую программу, в которой я делал Complex to Complex FT, и я просто сгенерировал некоторые данные 1..50 и вставил их в действительную и мнимую части для каждого индекса массива.

Когда я делаю такую ​​операцию, как IFFT (FFT (A)) = A

чтобы проверить их, я получаю разные результаты для каждой библиотеки.

FFTW, я должен разделить вывод по len (A), чтобы вернуть оригинал A

Тем не менее, делая это вперед, а затем возвращая FFT с помощью CUFFT, похоже, что мне нужно разделить на (sqrt (2) * 50), чтобы вернуться к исходным данным.

Откуда этот дополнительный квадратный корень?

согласно документации CUFFT: CUFFT выполняет ненормализованные FFT; то есть выполнение прямого БПФ для входного набора данных, за которым следует обратное БПФ для результирующего набора, дает данные, которые равны входу, масштабированному по количеству элементов. Масштабирование любого преобразования на величину, обратную размеру набора данных, оставлено для пользователя, чтобы он выполнял его по своему усмотрению.

Заранее спасибо