18 #ifndef itkFFTWCommonExtended_h
19 #define itkFFTWCommonExtended_h
21 #if defined(ITK_USE_FFTWF) || defined(ITK_USE_FFTWD)
22 # if defined(ITK_USE_CUFFTW)
44 template <
typename TPixel>
54 #if defined(ITK_USE_FFTWF)
68 # ifndef ITK_USE_CUFFTW
70 fftwf_plan_with_nthreads(threads);
74 PlanType plan = fftwf_plan_dft_c2r_1d(n, in, out, flags);
80 # ifndef ITK_USE_CUFFTW
82 fftwf_plan_with_nthreads(threads);
86 PlanType plan = fftwf_plan_dft_c2r_2d(nx, ny, in, out, flags);
92 # ifndef ITK_USE_CUFFTW
94 fftwf_plan_with_nthreads(threads);
98 PlanType plan = fftwf_plan_dft_c2r_3d(nx, ny, nz, in, out, flags);
104 # ifndef ITK_USE_CUFFTW
106 fftwf_plan_with_nthreads(threads);
110 PlanType plan = fftwf_plan_dft_c2r(rank, n, in, out, flags);
117 # ifndef ITK_USE_CUFFTW
119 fftwf_plan_with_nthreads(threads);
123 PlanType plan = fftwf_plan_dft_r2c_1d(n, in, out, flags);
129 # ifndef ITK_USE_CUFFTW
131 fftwf_plan_with_nthreads(threads);
135 PlanType plan = fftwf_plan_dft_r2c_2d(nx, ny, in, out, flags);
141 # ifndef ITK_USE_CUFFTW
143 fftwf_plan_with_nthreads(threads);
147 PlanType plan = fftwf_plan_dft_r2c_3d(nx, ny, nz, in, out, flags);
153 # ifndef ITK_USE_CUFFTW
155 fftwf_plan_with_nthreads(threads);
159 PlanType plan = fftwf_plan_dft_r2c(rank, n, in, out, flags);
165 # ifndef ITK_USE_CUFFTW
167 fftwf_plan_with_nthreads(threads);
171 PlanType plan = fftwf_plan_dft_1d(n, in, out, sign, flags);
184 fftwf_destroy_plan(p);
191 #if defined(ITK_USE_FFTWD)
204 # ifndef ITK_USE_CUFFTW
206 fftw_plan_with_nthreads(threads);
210 PlanType plan = fftw_plan_dft_c2r_1d(n, in, out, flags);
216 # ifndef ITK_USE_CUFFTW
218 fftw_plan_with_nthreads(threads);
222 PlanType plan = fftw_plan_dft_c2r_2d(nx, ny, in, out, flags);
228 # ifndef ITK_USE_CUFFTW
230 fftw_plan_with_nthreads(threads);
234 PlanType plan = fftw_plan_dft_c2r_3d(nx, ny, nz, in, out, flags);
240 # ifndef ITK_USE_CUFFTW
242 fftw_plan_with_nthreads(threads);
246 PlanType plan = fftw_plan_dft_c2r(rank, n, in, out, flags);
253 # ifndef ITK_USE_CUFFTW
255 fftw_plan_with_nthreads(threads);
259 PlanType plan = fftw_plan_dft_r2c_1d(n, in, out, flags);
266 # ifndef ITK_USE_CUFFTW
268 fftw_plan_with_nthreads(threads);
272 PlanType plan = fftw_plan_dft_r2c_2d(nx, ny, in, out, flags);
279 # ifndef ITK_USE_CUFFTW
281 fftw_plan_with_nthreads(threads);
285 PlanType plan = fftw_plan_dft_r2c_3d(nx, ny, nz, in, out, flags);
292 # ifndef ITK_USE_CUFFTW
294 fftw_plan_with_nthreads(threads);
298 PlanType plan = fftw_plan_dft_r2c(rank, n, in, out, flags);
304 # ifndef ITK_USE_CUFFTW
306 fftw_plan_with_nthreads(threads);
310 PlanType plan = fftw_plan_dft_1d(n, in, out, sign, flags);
322 fftw_destroy_plan(p);