Did you know ... Search Documentation:
Pack plcomplex -- prolog/ct_fft.pl
PublicShow source

Compute the FFT and inverse FFT of a length n complex sequence using the radix 2 Cooley-Tukey algorithm.

Bare bones implementation that runs in O(n log n) time.

Limitations

  • assumes length is a power of 2
  • not the most memory efficient algorithm (because it uses an object type for representing complex numbers and because it re-allocates memory for the subarray, instead of doing in-place or reusing a single temporary array)
author
- PiotrLi
See also
- https://introcs.cs.princeton.edu/java/97data/FFT.java.html
license
- GPL
 ct_fft(+X:list, -Y:list) is det
Compute the FFT of X, assuming its length is a power of 2.
 ct_ifft(+X:list, -Y:list) is det
Compute the inverse FFT of X, assuming its length is a power of 2.
 ct_cconvolve(+X:list, +Y:list, -Z:list) is det
Compute the circular convolution of X and Y.
 ct_convolve(+X:list, +Y:list, -Z:list) is det
Compute the linear convolution of Y and Y.