Provides true forward and adjoint operations for the alignment problem.
Approach
Apparently, the adjoint operator for a linear flow/interpolation operation is a scatter of the interpolated points using the same weights from the gather operation [1]. We are doing a very similar operation in the USFFT just with a different interpolation kernel.
The padding operation adjoint is the unpadding operation if and only if the padding values are zero.
While the true adjoints exist for padding with zeros, I have also added the ability to choose a non-zero constant value for interpolation and padding because the background of our ptychography reconstructions is non-zero.
Pre-Merge Checklists
Submitter
[x] Write a helpfully descriptive pull request title.
[ ] Organize changes into logically grouped commits with descriptive commit messages.
[ ] Document all new functions.
[x] Write tests for new functions or explain why they are not needed.
Purpose
Provides true forward and adjoint operations for the alignment problem.
Approach
Apparently, the adjoint operator for a linear flow/interpolation operation is a scatter of the interpolated points using the same weights from the gather operation [1]. We are doing a very similar operation in the USFFT just with a different interpolation kernel.
[1] http://www.reproducibility.org/RSF/book/gee/ajt/paper_html/node10.html
The rotation operation is just interpolation.
The padding operation adjoint is the unpadding operation if and only if the padding values are zero.
While the true adjoints exist for padding with zeros, I have also added the ability to choose a non-zero constant value for interpolation and padding because the background of our ptychography reconstructions is non-zero.
Pre-Merge Checklists
Submitter
yapf
to format python code.Reviewer