Warning, /multimedia/kdenlive/src/lib/external/kiss_fft/TIPS is written in an unsupported language. File is not indexed.

0001 Speed:
0002     * If you want to use multiple cores, then compile with -openmp or -fopenmp (see your compiler docs).
0003         Realize that larger FFTs will reap more benefit than smaller FFTs. This generally uses more CPU time, but
0004         less wall time.
0005 
0006     * experiment with compiler flags
0007         Special thanks to Oscar Lesta. He suggested some compiler flags 
0008         for gcc that make a big difference. They shave 10-15% off
0009         execution time on some systems.  Try some combination of:
0010                 -march=pentiumpro
0011                 -ffast-math
0012                 -fomit-frame-pointer
0013 
0014     * If the input data has no imaginary component, use the kiss_fftr code under tools/.
0015       Real ffts are roughly twice as fast as complex.
0016 
0017     * If you can rearrange your code to do 4 FFTs in parallel and you are on a recent Intel or AMD machine,
0018     then you might want to experiment with the USE_SIMD code.  See README.simd
0019 
0020 
0021 Reducing code size:
0022     * remove some of the butterflies. There are currently butterflies optimized for radices
0023         2,3,4,5.  It is worth mentioning that you can still use FFT sizes that contain 
0024         these factors, they just won't be quite as fast.  You can decide for yourself 
0025         whether to keep radix 2 or 4.  If you do some work in this area, let me 
0026         know what you find.
0027 
0028     * For platforms where ROM/code space is more plentiful than RAM,
0029      consider creating a hardcoded kiss_fft_state. In other words, decide which 
0030      FFT size(s) you want and make a structure with the correct factors and twiddles.
0031 
0032     * Frank van der Hulst offered numerous suggestions for smaller code size and correct operation 
0033     on embedded targets.  "I'm happy to help anyone who is trying to implement KISSFFT on a micro"
0034 
0035     Some of these were rolled into the mainline code base:
0036         - using long casts to promote intermediate results of short*short multiplication
0037         - delaying allocation of buffers that are sometimes unused.
0038     In some cases, it may be desirable to limit capability in order to better suit the target:
0039         - predefining the twiddle tables for the desired fft size.