| Chris@42 | 1 TODO before FFTW-$2\pi$: | 
| Chris@42 | 2 | 
| Chris@42 | 3 * figure out how to autodetect NEON at runtime | 
| Chris@42 | 4 | 
| Chris@42 | 5 * figure out the arm cycle counter business | 
| Chris@42 | 6 | 
| Chris@42 | 7 * Wisdom: make it clear that it is specific to the exact fftw version | 
| Chris@42 | 8   and configuration.  Report error codes when reading wisdom.  Maybe | 
| Chris@42 | 9   have multiple system wisdom files, one per version? | 
| Chris@42 | 10 | 
| Chris@42 | 11 * DCT/DST codelets?  which kinds? | 
| Chris@42 | 12 | 
| Chris@42 | 13 * investigate the addition-chain trig computation | 
| Chris@42 | 14 | 
| Chris@42 | 15 * I can't believe that there isn't a closed form for the omega | 
| Chris@42 | 16   array in Rader. | 
| Chris@42 | 17 | 
| Chris@42 | 18 * convolution problem type(s) | 
| Chris@42 | 19 | 
| Chris@42 | 20 * Explore the idea of having n < 0 in tensors, possibly to mean | 
| Chris@42 | 21   inverse DFT. | 
| Chris@42 | 22 | 
| Chris@42 | 23 * better estimator: possibly, let "other" cost be coef * n, where | 
| Chris@42 | 24   coef is a per-solver constant determined via some big numerical | 
| Chris@42 | 25   optimization/fit. | 
| Chris@42 | 26 | 
| Chris@42 | 27 * vector radix, multidimensional codelets | 
| Chris@42 | 28 | 
| Chris@42 | 29 * it may be a good idea to unify all those little loops that do | 
| Chris@42 | 30   copying, (X[i], X[n-i]) <- (X[i] + X[n-i], X[i] - X[n-i]), | 
| Chris@42 | 31   and multiplication of vectors by twiddle factors. | 
| Chris@42 | 32 | 
| Chris@42 | 33 * Pruned FFTs (basically, a vecloop that skips zeros). | 
| Chris@42 | 34 | 
| Chris@42 | 35 * Try FFTPACK-style back-and-forth (Stockham) FFT.  (We tried this a | 
| Chris@42 | 36   few years ago and it was slower, but perhaps matters have changed.) | 
| Chris@42 | 37 | 
| Chris@42 | 38 * Generate assembly directly for more processors, or maybe fork gcc.  =) | 
| Chris@42 | 39 | 
| Chris@42 | 40 * ensure that threaded solvers generate (block_size % 4 == 0) | 
| Chris@42 | 41   to allow SIMD to be used. | 
| Chris@42 | 42 | 
| Chris@42 | 43 * memoize triggen. |