nor's blog

By nor, 7 months ago, In English

Hi!

I started a blog recently, and one of my recent discussions on FFT led me to post a new blog post at https://nor-blog.codeberg.page/posts/2024-06-01-implementing-fft/ exploring some FFT algorithms — more specifically, alternate (potentially better) implementations that not many people are aware of. The contents of this post might be a bit well-known to people who write their own FFT templates, but having a good understanding of FFT should help others too.


Why a new blog?
  • Vote: I like it
  • +93
  • Vote: I do not like it

»
7 months ago, # |
  Vote: I like it 0 Vote: I do not like it

nor orz

»
7 months ago, # |
  Vote: I like it +1 Vote: I do not like it

nor : Is there any reason why your page doesn't have an explicit comment section? I loved your blog on C++ lambdas btw ;)

I mean probably DISQUS is easiest to set up and requires auth (if you want to enforce), so I don't think there would be many spam messages either.

  • »
    »
    7 months ago, # ^ |
    Rev. 2   Vote: I like it +20 Vote: I do not like it

    Hi! I'm glad you liked the post and hope you learnt something new from it.

    On comments
»
7 months ago, # |
  Vote: I like it +8 Vote: I do not like it

I thought I had lost your blogs forever! the web archive didn't open spoilers in your blogs either. Happy to see them again on your website :) nor orz

»
7 months ago, # |
  Vote: I like it 0 Vote: I do not like it

great work

»
7 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Thank you for you blog! In 1975G - Zimpha Fan Club my solution 262609849 literally took 11952 ms out of TL = 12000 ms, so I'm really interested in having a much faster FFT in my weaponry.

  • »
    »
    7 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    In that case, I highly recommend looking at the AtCoder Library convolution implementation — it does a radix 4 transform instead of radix 2, which makes it quite fast. Note that removing the bit reversal will show results when your implementation is already decently optimized, and you can already go very far without resorting to SIMD.