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