I've been using Mike Marino's ISWT routine with PyWavelets 0.2.2 for quite a while now. The function made it to PyWavelets 0.4.0, but its performance is significantly slower than with 0.2.2.
I extracted the iswt function from 0.4.0 and ran a test (performance.py) with 0.2.2 (7 s), 0.3.0 (16 s), and 0.4.0 (22 s). I was able to profile 0.4.0, and the problem seems to be np.iscomplexobj() call in idwt routine. Profiling 0.3.0 failed for me, for some reason the numbers get close to 0.2.2 under profiler.
Test config: VirtualBox running Ubuntu 14.04; Python 2.7.11 and Numpy 1.10.4 running in an Anaconda 3.19.1 environment.
I've been using Mike Marino's ISWT routine with PyWavelets 0.2.2 for quite a while now. The function made it to PyWavelets 0.4.0, but its performance is significantly slower than with 0.2.2.
I extracted the
iswtfunction from 0.4.0 and ran a test (performance.py) with 0.2.2 (7 s), 0.3.0 (16 s), and 0.4.0 (22 s). I was able to profile 0.4.0, and the problem seems to benp.iscomplexobj()call inidwtroutine. Profiling 0.3.0 failed for me, for some reason the numbers get close to 0.2.2 under profiler.Test config: VirtualBox running Ubuntu 14.04; Python 2.7.11 and Numpy 1.10.4 running in an Anaconda 3.19.1 environment.