15 #include <isce3/core/Constants.h>
16 #include <isce3/core/Kernels.h>
51 NFFT(
size_t m,
size_t n,
size_t fft_size);
66 void execute(
const std::valarray<std::complex<T>> &spectrum,
67 const std::valarray<double> ×,
68 std::valarray<std::complex<T>> &out);
86 void execute(
size_t isize,
size_t istride,
87 const std::complex<T> *spectrum,
88 size_t tsize,
size_t tstride,
90 size_t osize,
size_t ostride,
91 std::complex<T> *out);
104 void execute_adjoint(
const std::valarray<std::complex<T>> &time_series,
105 const std::valarray<double> ×,
106 std::valarray<std::complex<T>> &spectrum);
121 const std::complex<T> *time_series,
122 size_t tsize,
size_t tstride,
124 size_t osize,
size_t ostride,
125 std::complex<T> *spectrum);
139 void set_spectrum(
const std::valarray<std::complex<T>> &x);
152 void set_spectrum(
size_t size,
size_t stride,
const std::complex<T> *x);
161 std::complex<T>
interp(
double t)
const;
163 size_t size_kernel()
const {
return 2*_m+1;}
164 size_t size_spectrum()
const {
return _n;}
165 size_t size_transform()
const {
return _fft_size;}
168 size_t _m, _n, _fft_size;
169 std::valarray<std::complex<T>> _xf, _xt;
170 std::valarray<T> _weights;
Non-equispaced fast Fourier transform (NFFT)
Definition: forward.h:9
NFFT(size_t m, size_t n, size_t fft_size)
NFFT Constructor.
Definition: NFFT.cpp:20
std::complex< T > interp(double t) const
Interpolate the transformed signal.
Definition: NFFT.cpp:101
void set_spectrum(const std::valarray< std::complex< T >> &x)
Ingest a spectrum for transform.
Definition: NFFT.cpp:92
void execute(const std::valarray< std::complex< T >> &spectrum, const std::valarray< double > ×, std::valarray< std::complex< T >> &out)
Execute a transform.
Definition: NFFT.cpp:132
void execute_adjoint(const std::valarray< std::complex< T >> &time_series, const std::valarray< double > ×, std::valarray< std::complex< T >> &spectrum)
Execute an adjoint transform.
Definition: NFFT.cpp:195