FFTW / fftw3

DO NOT CHECK OUT THESE FILES FROM GITHUB UNLESS YOU KNOW WHAT YOU ARE DOING. (See below.)
GNU General Public License v2.0
2.66k stars 651 forks source link

Support DCT/DST-V-VIII #344

Open matwey opened 6 months ago

matwey commented 6 months ago

Hello,

Unfortunately, DCT/DST types V-VIII are currently not supported, which is mentioned in the docs without any justification. However, recently I needed to have such opportunity.

I suggest the following:

  1. If DCT/DST types V-VIII are inefficient compared to complex transforms under any circumstances, this should be just mentioned in the docs.
  2. If DCT/DST types V-VIII are hard to implement, this should be mentioned in the docs.
  3. Otherwise, please consider support types V-VIII.
stevengj commented 6 months ago

In the 26 years since FFTW was first released, I think you may be the first person to actually request these transform types — the need for them is not very common, so it's never been on my radar screen to implement them.

(You could implement them on top of FFTW, however, in the same way that DCT/DST I-IV leverage the rest of FFTW. In principle, I don't think they are especially harder to implement than types I-IV, though the fact that V-VIII are based on odd-size DFTs eliminates the simplest radix-2 algorithms I think, but it is a nontrivial amount of work for a transform that few people need.)