Skip to content
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

Implement NFCT/NFST #85

Open
tknopp opened this issue Feb 9, 2022 · 3 comments
Open

Implement NFCT/NFST #85

tknopp opened this issue Feb 9, 2022 · 3 comments
Assignees
Labels

Comments

@tknopp
Copy link
Member

tknopp commented Feb 9, 2022

There are the real versions of the NFFT called NFCT and NFST:

https://www-user.tu-chemnitz.de/~potts/nfft/fast_trig.php

In my vision we can nicely put them together into AbstractNFFT.jl and NFFT.jl.

To do this we can make the following four steps.

  1. Introduce NFCT and NFST in AbstractNFFTs: This basically just means adding a line like this: https://github.com/JuliaMath/NFFT.jl/blob/master/AbstractNFFTs/src/interface.jl#L29
  2. Implement the (slow) direct transforms: https://github.com/JuliaMath/NFFT.jl/blob/master/src/direct.jl#L2
  3. Implement an NFFT3 wrapper (the NFFT3 has these transformations)
  4. Implement a pure Julia version. We will likely move some files around when we are at this point.

FYI: @mischmi96

@mischmi96
Copy link
Collaborator

I have introduced the NFCT into AbstractNFFTs which required some adjustments in other areas to deal with the fact that we have real instead of complex numbers.

@mischmi96
Copy link
Collaborator

NDCT is also implemented now. I also fixed a bug where the small n was not reversed in the wrapper.

@mischmi96
Copy link
Collaborator

mischmi96 commented Feb 24, 2022

1 - 3 is done now. Wrapper works

I am also updating NFFT3.jl in order to directly implement the AbstractNFFTs Interface. However: Is there a way to reference a local dev version of package during development? The release of AbstractNFFTs does not yet have the NFCT implementation (of course, since it is only on the branch nfct). So I can't find a way that my NFFT3 dev version imports the AbstractNFFTs dev version on my computer instead of the release

tknopp added a commit that referenced this issue Feb 28, 2022
* adds NFCT interface to AbstractNFFTs and implementation to NFFT3 wrapper #85

* adds NDCT, fixes small bug in wrapper #85

* generalize parts in AbstractNFFTs (less code)

* implement NDST

* implement NDST/NFST (NFFT3 wrapper) + tests

* apodization->deconvolve + adjoint->transpose (where appropriate)

* rename AnyNFFTPlan since the name was ambiguous

Co-authored-by: Michael Schmischke <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants