TheAlgorithms/C++ 1.0.0
All the algorithms implemented in C++
|
A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). More...
#include <cassert>
#include <cmath>
#include <complex>
#include <cstdint>
#include <iostream>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | numerical_methods |
for assert | |
Functions | |
std::complex< double > * | numerical_methods::FastFourierTransform (std::complex< double > *p, uint8_t n) |
FastFourierTransform is a recursive function which returns list of complex numbers. | |
static void | test () |
Self-test implementations. | |
int | main (int argc, char const *argv[]) |
Main function. | |
A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT).
This algorithm has application in use case scenario where a user wants to find points of a function in a short time by just using the coefficients of the polynomial function. It can be also used to find inverse fourier transform by just switching the value of omega. Time complexity this algorithm computes the DFT in O(nlogn) time in comparison to traditional O(n^2).
Definition in file fast_fourier_transform.cpp.
int main | ( | int | argc, |
char const * | argv[] ) |
Main function.
argc | commandline argument count (ignored) |
argv | commandline array of arguments (ignored) calls automated test function to test the working of fast fourier transform. |
Definition at line 163 of file fast_fourier_transform.cpp.
|
static |
Self-test implementations.
Declaring two test cases and checking for the error in predicted and true value is less than 0.000000000001.
Test case 1
Test case 2
True Answer for test case 1
True Answer for test case 2
Temporary variable used to delete memory location of o1
Temporary variable used to delete memory location of o2
Comparing for both real and imaginary values for test case 1
Comparing for both real and imaginary values for test case 2
Definition at line 105 of file fast_fourier_transform.cpp.