Lines Matching refs:fftw

34   Mat_FFTW          *fftw = (Mat_FFTW *)fft->data;  in MatMult_SeqFFTW()  local
49 if (!fftw->p_forward && fftw->p_flag != FFTW_ESTIMATE) { in MatMult_SeqFFTW()
57 if (!fftw->p_forward) { /* create a plan, then execute it */ in MatMult_SeqFFTW()
61fftw->p_forward = fftw_plan_dft_1d(dim[0], (fftw_complex *)x_array, (fftw_complex *)y_array, FFTW_… in MatMult_SeqFFTW()
63fftw->p_forward = fftw_plan_dft_r2c_1d(dim[0], (double *)x_array, (fftw_complex *)y_array, fftw->p… in MatMult_SeqFFTW()
68fftw->p_forward = fftw_plan_dft_2d(dim[0], dim[1], (fftw_complex *)x_array, (fftw_complex *)y_arra… in MatMult_SeqFFTW()
70fftw->p_forward = fftw_plan_dft_r2c_2d(dim[0], dim[1], (double *)x_array, (fftw_complex *)y_array,… in MatMult_SeqFFTW()
75fftw->p_forward = fftw_plan_dft_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (fftw_complex … in MatMult_SeqFFTW()
77fftw->p_forward = fftw_plan_dft_r2c_3d(dim[0], dim[1], dim[2], (double *)x_array, (fftw_complex *)… in MatMult_SeqFFTW()
82 iodims = fftw->iodims; in MatMult_SeqFFTW()
92fftw->p_forward = fftw_plan_guru64_dft((int)ndim, (fftw_iodim64 *)iodims, 0, NULL, (fftw_complex *… in MatMult_SeqFFTW()
102fftw->p_forward = fftw_plan_guru_dft((int)ndim, (fftw_iodim *)iodims, 0, NULL, (fftw_complex *)x_a… in MatMult_SeqFFTW()
106fftw->p_forward = fftw_plan_dft_r2c(ndim, (int *)dim, (double *)x_array, (fftw_complex *)y_array, in MatMult_SeqFFTW()
110 if (fftw->p_flag != FFTW_ESTIMATE) { in MatMult_SeqFFTW()
116 fftw->finarray = (PetscScalar *)x_array; in MatMult_SeqFFTW()
117 fftw->foutarray = y_array; in MatMult_SeqFFTW()
121 …if (fftw->finarray != x_array || fftw->foutarray != y_array) { /* use existing plan on new arrays … in MatMult_SeqFFTW()
123 fftw_execute_dft(fftw->p_forward, (fftw_complex *)x_array, (fftw_complex *)y_array); in MatMult_SeqFFTW()
125 fftw_execute_dft_r2c(fftw->p_forward, (double *)x_array, (fftw_complex *)y_array); in MatMult_SeqFFTW()
128 fftw_execute(fftw->p_forward); in MatMult_SeqFFTW()
138 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in MatMultTranspose_SeqFFTW() local
145 fftw_iodim64 *iodims = fftw->iodims; in MatMultTranspose_SeqFFTW()
147 fftw_iodim *iodims = fftw->iodims; in MatMultTranspose_SeqFFTW()
152 if (!fftw->p_backward && fftw->p_flag != FFTW_ESTIMATE) { in MatMultTranspose_SeqFFTW()
160 if (!fftw->p_backward) { /* create a plan, then execute it */ in MatMultTranspose_SeqFFTW()
164fftw->p_backward = fftw_plan_dft_1d(dim[0], (fftw_complex *)x_array, (fftw_complex *)y_array, FFTW… in MatMultTranspose_SeqFFTW()
166fftw->p_backward = fftw_plan_dft_c2r_1d(dim[0], (fftw_complex *)x_array, (double *)y_array, fftw->… in MatMultTranspose_SeqFFTW()
171fftw->p_backward = fftw_plan_dft_2d(dim[0], dim[1], (fftw_complex *)x_array, (fftw_complex *)y_arr… in MatMultTranspose_SeqFFTW()
173fftw->p_backward = fftw_plan_dft_c2r_2d(dim[0], dim[1], (fftw_complex *)x_array, (double *)y_array… in MatMultTranspose_SeqFFTW()
178fftw->p_backward = fftw_plan_dft_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (fftw_complex… in MatMultTranspose_SeqFFTW()
180fftw->p_backward = fftw_plan_dft_c2r_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (double *… in MatMultTranspose_SeqFFTW()
186fftw->p_backward = fftw_plan_guru64_dft((int)ndim, (fftw_iodim64 *)iodims, 0, NULL, (fftw_complex … in MatMultTranspose_SeqFFTW()
188fftw->p_backward = fftw_plan_guru_dft((int)ndim, iodims, 0, NULL, (fftw_complex *)x_array, (fftw_c… in MatMultTranspose_SeqFFTW()
191fftw->p_backward = fftw_plan_dft_c2r((int)ndim, (int *)dim, (fftw_complex *)x_array, (double *)y_a… in MatMultTranspose_SeqFFTW()
195 if (fftw->p_flag != FFTW_ESTIMATE) { in MatMultTranspose_SeqFFTW()
201 fftw->binarray = (PetscScalar *)x_array; in MatMultTranspose_SeqFFTW()
202 fftw->boutarray = y_array; in MatMultTranspose_SeqFFTW()
205 …if (fftw->binarray != x_array || fftw->boutarray != y_array) { /* use existing plan on new arrays … in MatMultTranspose_SeqFFTW()
207 fftw_execute_dft(fftw->p_backward, (fftw_complex *)x_array, (fftw_complex *)y_array); in MatMultTranspose_SeqFFTW()
209 fftw_execute_dft_c2r(fftw->p_backward, (fftw_complex *)x_array, (double *)y_array); in MatMultTranspose_SeqFFTW()
212 fftw_execute(fftw->p_backward); in MatMultTranspose_SeqFFTW()
223 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in MatMult_MPIFFTW() local
232 if (!fftw->p_forward && fftw->p_flag != FFTW_ESTIMATE) { in MatMult_MPIFFTW()
240 if (!fftw->p_forward) { /* create a plan, then execute it */ in MatMult_MPIFFTW()
244fftw->p_forward = fftw_mpi_plan_dft_1d(dim[0], (fftw_complex *)x_array, (fftw_complex *)y_array, c… in MatMult_MPIFFTW()
251fftw->p_forward = fftw_mpi_plan_dft_2d(dim[0], dim[1], (fftw_complex *)x_array, (fftw_complex *)y_… in MatMult_MPIFFTW()
253fftw->p_forward = fftw_mpi_plan_dft_r2c_2d(dim[0], dim[1], (double *)x_array, (fftw_complex *)y_ar… in MatMult_MPIFFTW()
258fftw->p_forward = fftw_mpi_plan_dft_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (fftw_comp… in MatMult_MPIFFTW()
260fftw->p_forward = fftw_mpi_plan_dft_r2c_3d(dim[0], dim[1], dim[2], (double *)x_array, (fftw_comple… in MatMult_MPIFFTW()
265fftw->p_forward = fftw_mpi_plan_dft(fftw->ndim_fftw, fftw->dim_fftw, (fftw_complex *)x_array, (fft… in MatMult_MPIFFTW()
267fftw->p_forward = fftw_mpi_plan_dft_r2c(fftw->ndim_fftw, fftw->dim_fftw, (double *)x_array, (fftw_… in MatMult_MPIFFTW()
271 if (fftw->p_flag != FFTW_ESTIMATE) { in MatMult_MPIFFTW()
277 fftw->finarray = (PetscScalar *)x_array; in MatMult_MPIFFTW()
278 fftw->foutarray = y_array; in MatMult_MPIFFTW()
281 …if (fftw->finarray != x_array || fftw->foutarray != y_array) { /* use existing plan on new arrays … in MatMult_MPIFFTW()
282 fftw_execute_dft(fftw->p_forward, (fftw_complex *)x_array, (fftw_complex *)y_array); in MatMult_MPIFFTW()
284 fftw_execute(fftw->p_forward); in MatMult_MPIFFTW()
294 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in MatMultTranspose_MPIFFTW() local
303 if (!fftw->p_backward && fftw->p_flag != FFTW_ESTIMATE) { in MatMultTranspose_MPIFFTW()
311 if (!fftw->p_backward) { /* create a plan, then execute it */ in MatMultTranspose_MPIFFTW()
315fftw->p_backward = fftw_mpi_plan_dft_1d(dim[0], (fftw_complex *)x_array, (fftw_complex *)y_array, … in MatMultTranspose_MPIFFTW()
322fftw->p_backward = fftw_mpi_plan_dft_2d(dim[0], dim[1], (fftw_complex *)x_array, (fftw_complex *)y… in MatMultTranspose_MPIFFTW()
324fftw->p_backward = fftw_mpi_plan_dft_c2r_2d(dim[0], dim[1], (fftw_complex *)x_array, (double *)y_a… in MatMultTranspose_MPIFFTW()
329fftw->p_backward = fftw_mpi_plan_dft_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (fftw_com… in MatMultTranspose_MPIFFTW()
331fftw->p_backward = fftw_mpi_plan_dft_c2r_3d(dim[0], dim[1], dim[2], (fftw_complex *)x_array, (doub… in MatMultTranspose_MPIFFTW()
336fftw->p_backward = fftw_mpi_plan_dft(fftw->ndim_fftw, fftw->dim_fftw, (fftw_complex *)x_array, (ff… in MatMultTranspose_MPIFFTW()
338fftw->p_backward = fftw_mpi_plan_dft_c2r(fftw->ndim_fftw, fftw->dim_fftw, (fftw_complex *)x_array,… in MatMultTranspose_MPIFFTW()
342 if (fftw->p_flag != FFTW_ESTIMATE) { in MatMultTranspose_MPIFFTW()
348 fftw->binarray = (PetscScalar *)x_array; in MatMultTranspose_MPIFFTW()
349 fftw->boutarray = y_array; in MatMultTranspose_MPIFFTW()
352 …if (fftw->binarray != x_array || fftw->boutarray != y_array) { /* use existing plan on new arrays … in MatMultTranspose_MPIFFTW()
353 fftw_execute_dft(fftw->p_backward, (fftw_complex *)x_array, (fftw_complex *)y_array); in MatMultTranspose_MPIFFTW()
355 fftw_execute(fftw->p_backward); in MatMultTranspose_MPIFFTW()
366 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in MatDestroy_FFTW() local
369 fftw_destroy_plan(fftw->p_forward); in MatDestroy_FFTW()
370 fftw_destroy_plan(fftw->p_backward); in MatDestroy_FFTW()
371 if (fftw->iodims) free(fftw->iodims); in MatDestroy_FFTW()
372 PetscCall(PetscFree(fftw->dim_fftw)); in MatDestroy_FFTW()
502 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in MatCreateVecsFFTW_FFTW() local
657 temp = (fftw->dim_fftw)[fftw->ndim_fftw - 1]; in MatCreateVecsFFTW_FFTW()
658 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp / 2 + 1; in MatCreateVecsFFTW_FFTW()
659 …alloc_local = fftw_mpi_local_size_transposed(fftw->ndim_fftw, fftw->dim_… in MatCreateVecsFFTW_FFTW()
660 …N1 = 2 * fft->N * (PetscInt)(fftw->dim_fftw[fftw->ndim_fftw - 1… in MatCreateVecsFFTW_FFTW()
661 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp; in MatCreateVecsFFTW_FFTW()
685 …alloc_local = fftw_mpi_local_size(fftw->ndim_fftw, fftw->dim_fftw, comm, &local_n0, &local_0_start… in MatCreateVecsFFTW_FFTW()
777 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in VecScatterPetscToFFTW_FFTW() local
915 fftw_mpi_local_size(fftw->ndim_fftw, fftw->dim_fftw, comm, &local_n0, &local_0_start); in VecScatterPetscToFFTW_FFTW()
917 PetscCall(PetscIntCast(local_n0 * (fftw->partial_dim), &n1)); in VecScatterPetscToFFTW_FFTW()
918 PetscCall(PetscIntCast(local_0_start * (fftw->partial_dim), &nstart)); in VecScatterPetscToFFTW_FFTW()
931 temp = (fftw->dim_fftw)[fftw->ndim_fftw - 1]; in VecScatterPetscToFFTW_FFTW()
933 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp / 2 + 1; in VecScatterPetscToFFTW_FFTW()
935 …fftw_mpi_local_size_transposed(fftw->ndim_fftw, fftw->dim_fftw, comm, &local_n0, &local_0_start, &… in VecScatterPetscToFFTW_FFTW()
937 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp; in VecScatterPetscToFFTW_FFTW()
939 partial_dim = fftw->partial_dim; in VecScatterPetscToFFTW_FFTW()
1024 Mat_FFTW *fftw = (Mat_FFTW *)fft->data; in VecScatterFFTWToPetsc_FFTW() local
1158 fftw_mpi_local_size(fftw->ndim_fftw, fftw->dim_fftw, comm, &local_n0, &local_0_start); in VecScatterFFTWToPetsc_FFTW()
1160 PetscCall(PetscIntCast(local_n0 * (fftw->partial_dim), &n1)); in VecScatterFFTWToPetsc_FFTW()
1161 PetscCall(PetscIntCast(local_0_start * (fftw->partial_dim), &nstart)); in VecScatterFFTWToPetsc_FFTW()
1172 temp = (fftw->dim_fftw)[fftw->ndim_fftw - 1]; in VecScatterFFTWToPetsc_FFTW()
1174 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp / 2 + 1; in VecScatterFFTWToPetsc_FFTW()
1176 …fftw_mpi_local_size_transposed(fftw->ndim_fftw, fftw->dim_fftw, comm, &local_n0, &local_0_start, &… in VecScatterFFTWToPetsc_FFTW()
1178 (fftw->dim_fftw)[fftw->ndim_fftw - 1] = temp; in VecScatterFFTWToPetsc_FFTW()
1180 partial_dim = fftw->partial_dim; in VecScatterFFTWToPetsc_FFTW()
1226 Mat_FFTW *fftw; in MatCreate_FFTW() local
1340 PetscCall(PetscNew(&fftw)); in MatCreate_FFTW()
1341 fft->data = (void *)fftw; in MatCreate_FFTW()
1343 fftw->ndim_fftw = ndim; /* This is dimension of fft */ in MatCreate_FFTW()
1344 fftw->partial_dim = partial_dim; in MatCreate_FFTW()
1346 PetscCall(PetscMalloc1(ndim, &fftw->dim_fftw)); in MatCreate_FFTW()
1349 fftw->iodims = (fftw_iodim64 *)malloc(sizeof(fftw_iodim64) * ndim); in MatCreate_FFTW()
1351 fftw->iodims = (fftw_iodim *)malloc(sizeof(fftw_iodim) * ndim); in MatCreate_FFTW()
1355 for (ctr = 0; ctr < ndim; ctr++) (fftw->dim_fftw)[ctr] = dim[ctr]; in MatCreate_FFTW()
1357 fftw->p_forward = NULL; in MatCreate_FFTW()
1358 fftw->p_backward = NULL; in MatCreate_FFTW()
1359 fftw->p_flag = FFTW_ESTIMATE; in MatCreate_FFTW()
1381 if (flg) fftw->p_flag = iplans[p_flag]; in MatCreate_FFTW()