regeirk / pycwt

A Python module for continuous wavelet spectral analysis. It includes a collection of routines for wavelet transform and statistical analysis via FFT algorithm. In addition, the module also includes cross-wavelet transforms, wavelet coherence tests and sample scripts.
http://regeirk.github.io/pycwt/
Other
293 stars 104 forks source link

use pyfftw if available, vectorize FFT for loops #16

Closed smartass101 closed 8 years ago

smartass101 commented 8 years ago

Rationale:

FFTW is a usually lot faster than FFTPACK in scipy and does not need padding which is often a problem with larger signals.

FFT implementation selection and configuration:

The (presumably) fastest FFT backend is chosen during importing in helpers.py and fft_kwargs() offers a transparent interface for implementation-specific settings. Some of those settings can be configured using global variables in helpers.py.

Vectorization of FFT for loops:

Using the axis parameter the FFT can be calculated only along a specified axis, e.g. for all rows at once. Multiplication along different axes is vectorized using broadcasting rules for outer product.

nabobalis commented 8 years ago

Is there any chance you can do submit this to my fork?

smartass101 commented 8 years ago

@nabobalis you can merge these commits quite easily, you just need to add my repo as another remote and pull those commits from the respective branches and merge them.