-
Notifications
You must be signed in to change notification settings - Fork 23
Adapt to NFFT backend changes #262
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
|
Closes #261. The interface implemented for AbstractNFFTs was released today as version 0.9. NFFT.jl implements this interface in release 0.14, NonuniformFFTs in release 0.9 (thanks @jipolanco) and LinearOperatorCollection in release 2.2 |
|
I've decided to make this a "breaking" change release for MRIOperators. While technically the outer-interface and return types are unchanged, this offers a fundamentlly new feature which should be easy to select via version numbers. In theory one could now try to also do MRIReco reconstructions and Co using NonuniformFFTs.jl |
…eImaging/MRIReco.jl into nh/nfft_backend
|
The new NFFTOp operator passes all its arguments to the NFFT backend. This allows a user to specify backend-specific keyword arguments. One downside is that additional/wrong keyword arguments can break the dispatch. For now, this mostly meant that I have to capture some keyword arguments where I know they won't be used downstream. And I had to remove the symmetrize keyword argument from some tests and function calls. From what I can tell, this keyword argument has no effect and I couldn't find a state of the code where it had an affect going back 3ish years (before I started contributing to MRIReco software stack). If someone knows what that was supposed to do, please let me know and we can take a look at it in a new release/PR (@tknopp, @JakobAsslaender, @cncastillo, @aTrotier). Another potential workaround is the option to allow LinearOperatorCollection to specialise on different NFFT backends. That's not a lot of extra work, I just haven't done it yet because there was/is no immediate use case and it's more package extensions to maintain EDIT: I did do that |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #262 +/- ##
==========================================
- Coverage 74.90% 74.86% -0.04%
==========================================
Files 102 102
Lines 5415 5415
==========================================
- Hits 4056 4054 -2
- Misses 1359 1361 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This PR adapts to the NFFT api changes discussed in #261. Note that I can't fully remove the NFFT dependency just yet, mainly because MRIOperators depends on some utility functions from NFFT such as the window function.
I've also had to remove the symetrize keyword since this made the dispatch break but I'm not quite sure why it worked before (yet).
I'll touch this PR again once we are happy with the other packages
EDIT: symetrize on NFFTOp was silently discarded previously