8#if !defined(ISCE_SIGNAL_SIGNAL_ICC)
9#error "Signal.icc is an implementation detail of Signal"
21 for (
size_t i = 0; i < 17; ++i) {
22 fftLength = std::pow(2, i);
43 _fwd_inembed =
new int[1];
44 _fwd_inembed[0] = ncolumns;
47 _fwd_idist = ncolumns;
49 _fwd_onembed =
new int[1];
50 _fwd_onembed[0] = ncolumns;
53 _fwd_odist = ncolumns;
70 _rev_inembed =
new int[1];
71 _rev_inembed[0] = ncolumns;
74 _rev_idist = ncolumns;
76 _rev_onembed =
new int[1];
77 _rev_onembed[0] = ncolumns;
80 _rev_odist = ncolumns;
98 _fwd_howmany = ncolumns;
100 _fwd_inembed =
new int[1];
101 _fwd_inembed[0] = nrows;
103 _fwd_istride = ncolumns;
106 _fwd_onembed =
new int[1];
107 _fwd_onembed[0] = nrows;
109 _fwd_ostride = ncolumns;
126 _rev_howmany = ncolumns;
128 _rev_inembed =
new int[1];
129 _rev_inembed[0] = nrows;
131 _rev_istride = ncolumns;
134 _rev_onembed =
new int[1];
135 _rev_onembed[0] = nrows;
137 _rev_ostride = ncolumns;
151 int oncolumns,
int onrows)
156 _fwd_n[1] = incolumns;
160 _fwd_inembed =
new int[2];
161 _fwd_inembed[0] = inrows;
162 _fwd_inembed[1] = incolumns;
167 _fwd_onembed =
new int[2];
168 _fwd_onembed[0] = onrows;
169 _fwd_onembed[1] = oncolumns;
187 _rev_n[1] = ncolumns;
191 _rev_inembed =
new int[2];
192 _rev_inembed[0] = nrows;
193 _rev_inembed[1] = ncolumns;
198 _rev_onembed =
new int[2];
199 _rev_onembed[0] = nrows;
200 _rev_onembed[1] = ncolumns;
222 int* inembed,
int istride,
int idist,
223 int* onembed,
int ostride,
int odist)
226 _fwd_n =
new int[rank];
227 for (
int i=0; i<rank;i++)
230 _fwd_howmany = howmany;
233 _fwd_inembed =
new int[rank];
234 for (
int i=0; i<rank;i++)
235 _fwd_inembed[i] = inembed[i];
238 _fwd_inembed =
nullptr;
241 _fwd_istride = istride;
245 _fwd_onembed =
new int[rank];
246 for (
int i=0; i<rank;i++)
247 _fwd_onembed[i] = onembed[i];
250 _fwd_onembed =
nullptr;
253 _fwd_ostride = ostride;
272 int* inembed,
int istride,
int idist,
273 int* onembed,
int ostride,
int odist)
276 _rev_n =
new int[rank];
277 for (
int i=0; i<rank;i++)
280 _rev_howmany = howmany;
283 _rev_inembed =
new int[rank];
284 for (
int i=0; i<rank;i++)
285 _rev_inembed[i] = inembed[i];
288 _rev_inembed =
nullptr;
291 _rev_istride = istride;
295 _rev_onembed =
new int[rank];
296 for (
int i=0; i<rank;i++)
297 _rev_onembed[i] = onembed[i];
300 _rev_onembed =
nullptr;
303 _rev_ostride = ostride;
void _rev_configureAzimuthFFT(int ncolumns, int nrows)
determine the required parameters for setting azimuth FFT plans
Definition Signal.icc:120
void _rev_configureRangeFFT(int ncolumns, int nrows)
determine the required parameters for setting range FFT plans
Definition Signal.icc:62
void _fwd_configureAzimuthFFT(int ncolumns, int nrows)
determine the required parameters for setting azimuth FFT plans
Definition Signal.icc:92
void _fwd_configureRangeFFT(int ncolumns, int nrows)
determine the required parameters for setting range FFT plans
Definition Signal.icc:35
void _rev_configure2DFFT(int ncolumns, int nrows)
determine the required parameters for setting 2D FFT plans
Definition Signal.icc:182
void _fwd_configure2DFFT(int incolumns, int inrows, int oncolumns, int onrows)
determine the required parameters for setting 2D FFT plans
Definition Signal.icc:150
void nextPowerOfTwo(size_t N, size_t &fftLength)
next power of two
Definition Signal.icc:19
void _rev_configure(int rank, int *n, int howmany, int *inembed, int istride, int idist, int *onembed, int ostride, int odist)
save FFT plan parameters
Definition Signal.icc:271
void _fwd_configure(int rank, int *n, int howmany, int *inembed, int istride, int idist, int *onembed, int ostride, int odist)
save FFT plan parameters
Definition Signal.icc:221