Low Rank Jack<p>[New Python code: PyNoiselet] About 15 years ago, I wrote a simple set of matlab functions to compute the <a href="https://mathstodon.xyz/tags/Noiselet" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Noiselet</span></a> transform of Coifman et al (R. Coifman, F. Geshwind, and Y. Meyer, "Noiselets", *Applied and Computational Harmonic Analysis*, 10(1):27–44, 2001). The noiselet transform is used in <a href="https://mathstodon.xyz/tags/CompressiveSensing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CompressiveSensing</span></a> applications as well as in <a href="https://mathstodon.xyz/tags/Sparse" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Sparse</span></a> signal coding as noiselets have minimally low coherence with wavelet bases (Haar and Daubechies), which is useful for sparse signal recovery.</p><p>Today, from a code request received yesterday by email, I decided to quickly rewrite this old code in Python (with the useful help of one LLM I admit). </p><p>Here is the result if you need an O(N log N) (butterfly like) algorithm to compute this transformation: </p><p><a href="https://gitlab.com/laurentjacques/PyNoiselet" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">gitlab.com/laurentjacques/PyNo</span><span class="invisible">iselet</span></a> </p><p>More information also in this old blog post : <a href="https://laurentjacques.gitlab.io/post/some-comments-on-noiselets/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">laurentjacques.gitlab.io/post/</span><span class="invisible">some-comments-on-noiselets/</span></a></p><p>Feel free to fork it and improve this non-optimized code.</p>