Skip to content

A qusetion about the FiNUFFT “guru” interface of the function "finufft1d1" #744

@zengletian1491

Description

@zengletian1491

Dear developers:
For the function “finufft1d1(x, c,+1,1e-12,1024)”, suppose the input parameter “c” be a double-precision matrix with 6144 rows and 1200 columns. Suppose the input parameter “x” be a column vector with 6144 rows and 1 column that represents the source non-uniform points but varies for each column of “c”. Does the FiNUFFT “guru” interface “finufft_plan” work for this situation?

I will provide a MCE (minimally complete example code) as follows written by MATLAB code:

kr = ([-3072 : 3071].'/6144 * 1.2 + 33.33) *(4.0 * pi); // 6144×1 column vector
kx = (33.33 + [-600: 599]./1200 * 4.0) *(2.0 * pi); // 1×1200 row vector
c = zeros(6144,1200);
for k = 1 : 1200
c(:,k) = finufft1d1((sqrt(kr.^2 - kx(k).^2) - 362.27)/(15.98)*pi, data_in(:,k),-1,1e-12,6144);
end

Note that data_in is a 6144×1200 matrix of double-precision type (such as SAR data). In the above code, the term “sqrt(kr.^2 - kx(k).^2) - 362.27)/(15.98)*pi” varies with “k”. That is, the source non-uniform points are different each transfer, so the FiNUFFT “vectorized” interface does not work.

We refrence to the finufft-readthedocs-io-en-latest on the website https://finufft.readthedocs.io/en/latest/matlab.html , the screenshot of which are as follows:
Image
As demonstrated in the screenshot, the FiNUFFT "guru" interface is capable of handling the situations previously mentioned. However, the validity of this assertion remains uncertain.

Thanks very much!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions