-
Notifications
You must be signed in to change notification settings - Fork 10
Add Sliding Discrete Fourier Transforms #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
There may be details of this implementation that require an explanation. Please ask as needed. To start with, one might ask about the design of The answer is that the whole design of the interface to create SDFT methods was devised before implementing it, and at that time I planned two different kinds of SDFT implementations:
However, when I tried to implement that, I found no improvement in performance or memory allocations for the second kind of SDFTs, so I decided to keep it simple, and leave only the first kind, which works for both stateful and stateless input iterators. But I didn't change the interface, since I don't rule out the possibility of finding a smarter algorithm for stateless iterators, using the minimum amount of data about past data samples. |
|
Thanks a lot! I try to look into it the next days :) |
|
Looks good to me overall. |
|
I have changed the way of creating the iterator. With the new design (ad33874), instead of
|
|
I have also sketched a commit removing the submodule They are rather generic names that might be useful for other purposes in |
|
Maybe prefix the sdft_, then its good to me. Anyway, we do not export those. So it's internal API. If you can push the final changes I double check and we can merge :) |
The following names are also slightly changed: backdft > sdft_backindices iterationcount > sdft_iteration updatedft! > sdft_update!
|
Pushed with |
| ## Basic SDFT | ||
|
|
||
| """ | ||
| SDFT(n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we maybe add here a minimal example with a iteration to see how it works?
Otherwise we can merge!
|
Let's merge? |
|
Yes! (Though CI must run succesfully first, right?) |
|
Running now :) |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #49 +/- ##
==========================================
+ Coverage 93.97% 94.03% +0.06%
==========================================
Files 17 19 +2
Lines 1045 1173 +128
==========================================
+ Hits 982 1103 +121
- Misses 63 70 +7 ☔ View full report in Codecov by Sentry. |
|
I've seen the codecov failures. They are due to not having implementations that need calling |
|
I hope that the added tests are sufficient to pass the coverage requirements. |
|
Just some lines missing but maybe we can add them, then we are good to go |
ok, let's try now 🤞 |
|
Merged, thanks a lot! |
Following the recommendation in: https://discourse.julialang.org/t/ann-announcing-slidingdfts-jl/123793
This is an adaptation of https://github.com/heliosdrm/SlidingDFTs.jl for FourierTools. Some points to note:
src:sdft_interface.jl(with a moduleSlidingDFTs), andsdft_implementations.jl. The documentation page deals with both of them in different sections.