Skip to content
0:00 / 0:00

#fft#fastfouriertransform#polynomialmultiplication

The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?

Reducible

338K subscribers • 3 videos on Hallway

YouTube
  • Recommended by 9 people: 7 on Hacker News, 1 on Lobsters and 1 in engineering communities.
  • A classic. People kept recommending it from 2021 to 2026.
  • Linked in the description3b1b/manimnipunramk/Reducible

Intermediate. Assumes working knowledge.

2.2M views5 years ago9 recommendations

Computer scienceAlgorithmsMath for programmers

Reducible explains the Fast Fourier Transform algorithm visually by motivating it through the problem of polynomial multiplication.

In this video, we take a look at one of the most beautiful algorithms ever created: the Fast Fourier Transform (FFT). This is a tricky algorithm to understand so we take a look at it in a context that we are all familiar with: polynomial multiplication. You will see how the core ideas of the FFT can be "discovered" through asking the right questions. The key insights that are presented in this video is that polynomial multiplication can be improved significantly by multiplying polynomials in a special value representation. The challenge that presents itself is the problem of converting a polynomial from a standard coefficient representation to value representation. We see that the FFT is an incredibly efficient recursive algorithm that performs this task, and we also discover that a slightly tweaked FFT (Inverse FFT) can also solve the reverse problem of interpolation. If this video doesn't blow your mind, I don't know what will. Introduction Polynomial Multiplication Polynomial Representation Value Representation Advantages Polynomial Multiplication Flowchart Polynomial Evaluation Which Evaluation Points? Why Nth Roots of Unity? FFT Implementation Interpolation and Inverse FFT Recap Also a subtle mistake that a commenter made me aware of -- at instead of replacing w with (1/n * e^{-2 * pi i/ n}), the actual right way to do this is by taking the final output of the IFFT at the end of the recursion and dividing by n. So the full change is w = e^{-2 pi i / n} And then somewhere outside the scope of the IFFT function ifft_result = 1/n * IFFT(values) The treatment of the FFT in this video is inspired by several well known references, mainly Introduction to Algorithms (Cormen et al.) and Algorithms (Papadimitriou et al.). Support: patreon.com/reducible This video wouldn't be possible without the open source manim library created by 3blue1brown: github.com/3b1b/manim Here is link to the repository that contains the code used to generate the animations in this video: github.com/nipunramk/Reducible Elegant proof that the matrix used in the proof that (d + 1) points uniquely define a degree d polynomial is invertible: math.stackexchange.com/questions/426932/why-are-vandermonde-… Music: Lift Motif by Kevin MacLeod is licensed under a Creative Commons Attribution license (creativecommons.org/licenses/...) Source: incompetech.com/music/royalty-... Artist: incompetech.com/ All other music by Aakash Gandhi SVG Attributions: Earth: Designed by Flat Icons from www.flaticon.com, CC BY 4.0 creativecommons.org/licenses/by/4.0, via Wikimedia Commons GPS: Icons made by flaticon.com/authors/pause08 from flaticon.com/ Wireless Comms: Design inspired by svgsilh.com/image/297434.html

Why it's here

9 people recommend this

What people say. Recommended as a fantastic, highly visual explanation of the Fast Fourier Transform and its relation to polynomial multiplication.

withinboredomon Hacker News • Recommends

On “Ask HN: Most interesting, mildly impractical, well-written books on software?”

Not a book, but I truly enjoy this guy’s videos: link to this video . I usually watch them while eating lunch. He does a truly fantastic job.

squaredoton Hacker News • Recommends

On “Understanding Convolutions in Probability: A Mad-Science Perspective”

…fficients of the polynomial ... in the respective context. If we look at the discrete case, since the operation of convolution is computationally expensive (O(n^3)), people often rely on the Fast Fourier Transform Algorithm (FFT), that runs in O(n log(n)). An excellent and very enjoyable video on the FFT applied to the polynomial multiplication is link to this video .…

kippinitrealon Hacker News • Recommends

On “Ask HN: Concepts that clicked only years after you first encountered them?”

That video did the same for me. I also like the reducible video for Fast Fourier Transforms as well as the Veratasium piece that shares some fun history. Reducible - FFTs the most ingenious algorithm ever link to this video Veritasium - The Most Important Algorithm of All Time link

tverbeureon Hacker News • Recommends

On “Convolutions, Fast Fourier Transform and polynomials (2022)”

If you haven’t seen it yet, you should watch this video: link to this video It derives the FFT algorithm from polynomial multiplication and it’s fantastic . I rewatch it every 6 months or so.

tverbeureon Hacker News • Recommends

On “Discrete Fourier Transform”

I almost always prefer text over video, but this video on the same subject is fantastic: link to this video . I watch it at least once every year. Also, the title of the blog post (and by extension this HN post) is IMO not really correct: it's not about the DFT but specifically about the FFT.

meithecatteon Lobsters • Recommends

The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever? (2020)

jstx1on Hacker News • Recommends

On “A gentle introduction to the FFT (2002)”

And an FFT explanation by Reducible - link to this video It's in a similar style to 3blue1brown (uses the same visualisation library) but the video focuses specifically on the FFT algorithm, not on Fourier transforms in general. I'm pretty sure Grant himself recommended the Reducible video at some point.

foooobabaon Hacker News • Recommends

On “Polynomial Interpolation”

Related: Fast Fourier Transform (FFT) can be used for polynomial interpolation in O(nlogn) time (if you get to choose the points, and use “complex roots of unity”), where n is the degree of the polynomial, and is used as a step in multiplication of polynomials in O(nlogn) as well. This video covers it well: link to this video Also, chapter 30 of CLRS: link

medbaron Hacker News • Recommends

On “Understanding the FFT Algorithm (2013)”

For anyone interested and with 30 minutes to spare, I would recommend the youtube video 1 by Reducible for an intuition on how FFT works. 1: link to this video

u/brianhaakin r/compsci • Recommends

The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?

u/karius85in r/compsci • Mentions

On “If e^iπ=-1 would be the most beautiful equation by mathematicians, what algorithm is most beautiful by computer scientists?”

link to this video

nayukion Hacker News • Mentions

On “The Focus to Say No (2011)”

Were you watching this video by any chance? link to this video ("The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?" by Reducible)