1
0
Fork 0
mirror of https://github.com/cosmo-sims/monofonIC.git synced 2024-09-19 17:03:45 +02:00
monofonIC/external/panphasia_ho/PAN_FFTW3.h
Adrian Jenkins 974900dc81 Added define statements for USE_PRECISION_FLOAT to make both the FFTW
and Panphasia routines either both single precision or both double
precision.

:wq
2021-05-11 12:26:18 +01:00

52 lines
2.1 KiB
C

// Define macros for FFTW3 to allow swapping
// between single/double precision FTs
#ifndef USE_PRECISION_FLOAT
#define FOURIER_DOUBLE
#endif
#define FOURIER_DOUBLE
#ifdef FOURIER_DOUBLE
#define FFTW_REAL double
#define FFTW_PLAN fftw_plan
#define FFTW_DESTROY_PLAN fftw_destroy_plan
#define FFTW_COMPLEX fftw_complex
#define FFTW_MALLOC fftw_malloc
#define FFTW_PLAN_DFT_1D fftw_plan_dft_1d
#define FFTW_PLAN_dft_3D fftw_plan_dft_3d
#define FFTW_EXECUTE fftw_execute
#define FFTW_DESTROY_PLAN fftw_destroy_plan
#define FFTW_FREE fftw_free
#define FFTW_ALLOC_COMPLEX fftw_alloc_complex
#define FFTW_MPI_LOCAL_SIZE_MANY fftw_mpi_local_size_many
#define FFTW_PLAN_MANY_DFT fftw_plan_many_dft
#define FFTW_MPI_LOCAL_SIZE_3D fftw_mpi_local_size_3d
#define FFTW_MPI_PLAN_MANY_DTF fftw_mpi_plan_many_dft
#define FFTW_MPI_PLAN_MANY_DTF_R2C fftw_mpi_plan_many_dft_r2c
#define FFTW_MPI_EXECUTE_DFT fftw_mpi_execute_dft
#define FFTW_MPI_EXECUTE_DFT_R2C fftw_mpi_execute_dft_r2c
#else
#define FFTW_REAL float
#define FFTW_PLAN fftwf_plan
#define FFTW_DESTROY_PLAN fftwf_destroy_plan
#define FFTW_COMPLEX fftwf_complex
#define FFTW_MALLOC fftwf_malloc
#define FFTW_PLAN_DFT_1D fftwf_plan_dft_1d
#define FFTW_PLAN_dft_3D fftwf_plan_dft_3d
#define FFTW_EXECUTE fftwf_execute
#define FFTW_DESTROY_PLAN fftwf_destroy_plan
#define FFTW_FREE fftwf_free
#define FFTW_ALLOC_COMPLEX fftwf_alloc_complex
#define FFTW_MPI_LOCAL_SIZE_MANY fftwf_mpi_local_size_many
#define FFTW_PLAN_MANY_DFT fftwf_plan_many_dft
#define FFTW_MPI_LOCAL_SIZE_3D fftwf_mpi_local_size_3d
#define FFTW_MPI_PLAN_MANY_DTF fftwf_mpi_plan_many_dft
#define FFTW_MPI_PLAN_MANY_DTF_R2C fftwf_mpi_plan_many_dft_r2c
#define FFTW_MPI_EXECUTE_DFT fftwf_mpi_execute_dft
#define FFTW_MPI_EXECUTE_DFT_R2C fftwf_mpi_execute_dft_r2c
#endif