A talk given at the Silicon Valley Haskell meetup, August 31, 2016.
- Slides (PDF) (updated September 18, 2016)
- Video
The Fast Fourier Transform (FFT) is a fundamentally important algorithm that reduces the cost of the Discrete Fourier Transform (DFT) from Functor
and Traversable
.
The definition of DFT (which is the specification for FFT) in the talk was wrong, building from the
The talk shows FFT for top-down and bottom-up perfect binary leaf trees trees (right- and left-associated Pair
compositions). Later, I tried out a different data type---a sort of balanced counterpart to left- and right-associated composition:
type family Bush n where
Bush Z = Pair
Bush (S n) = Bush n ∘ Bush n
The work and "depth" (ideal parallel time) improves on both bottom-up and top-down binary trees (the classic decimation-in-time and decimation-in-frequency algorithms).
To do: coalesce the accidentally distinct constants (different numeric approximations of the same real value), and compare again.
New pictures, statistics, and remarks starting on slide 43.