We optimized the DFT Faust product (pyfaust.dft / matfaust.dft).
The principle of this optimization is to simplify the butterfly matrix product to sums of diagonal matrix multiplications (likewise for the bit-reversal permutation).
This optimization is disabled by default, you need to use the diag_opt argument in order to use it.
In the figure below we show how it speeds up the Faust-vector and Faust-matrix products.
To reproduce the figure you can use these scripts: benchmark script, plot script.
We made this optimization available to any Faust composed of butterfly factors (Use the opt_butterfly_faust function in pyfaust or matfaust).
Special thanks to Simon Delamare and Rémi Gribonval who are at the source of this optimization.