Highly Efficient FFT for Exascale: HeFFTe v2.3
heffte_c_defines.h
1 /*
2  -- heFFTe --
3  Univ. of Tennessee, Knoxville
4  @date
5 */
6 
7 #ifndef HEFFTE_C_DEFINES_H
8 #define HEFFTE_C_DEFINES_H
9 
47 #include "heffte_config.h"
48 
49 
54 #define Heffte_BACKEND_STOCK 0
55 
56 #ifdef Heffte_ENABLE_FFTW
61 #define Heffte_BACKEND_FFTW 1
62 #endif
63 #ifdef Heffte_ENABLE_MKL
68 #define Heffte_BACKEND_MKL 2
69 #endif
70 #ifdef Heffte_ENABLE_CUDA
75 #define Heffte_BACKEND_CUFFT 10
76 #endif
77 #ifdef Heffte_ENABLE_ROCM
82 #define Heffte_BACKEND_ROCFFT 11
83 #endif
84 
89 #define Heffte_SUCCESS 0
90 
95 #define Heffte_RESHAPE_ALGORITHM_ALLTOALLV 0
100 #define Heffte_RESHAPE_ALGORITHM_P2P_PLINED 1
105 #define Heffte_RESHAPE_ALGORITHM_P2P 2
106 
113 typedef struct{
123 
133 typedef struct{
139  void *fft;
141 
147 
152 #define Heffte_SCALE_NONE 0
157 #define Heffte_SCALE_FULL 1
162 #define Heffte_SCALE_SYMMETRIC 2
163 
164 #endif // HEFFTE_C_DEFINES_H
heffte_fft_plan * heffte_plan
C-style wrapper around an instance of heffte::fft3d or heffte::fft3d_r2c using some backend.
Definition: heffte_c_defines.h:146
Generic wrapper around some fft3d/fft3d_r2c instance, use heffte_plan instead of this.
Definition: heffte_c_defines.h:133
int backend_type
Remembers the type of the backend.
Definition: heffte_c_defines.h:135
int using_r2c
If 0 then using heffte::fft3d, otherwise using heffte::fft3d_r2c.
Definition: heffte_c_defines.h:137
void * fft
Wrapper around an object of type heffte::fft3d or heffte::fft3d_r2c.
Definition: heffte_c_defines.h:139
Equivalent to heffte::plan_options but defined for the C API.
Definition: heffte_c_defines.h:113
int use_gpu_aware
Corresponds to heffte::plan_options::use_gpu_aware.
Definition: heffte_c_defines.h:121
int use_reorder
Corresponds to heffte::plan_options::use_reorder.
Definition: heffte_c_defines.h:115
int use_pencils
Corresponds to heffte::plan_options::use_pencils.
Definition: heffte_c_defines.h:119
int algorithm
Corresponds to heffte::plan_options::use_alltoall, must be one of the Heffte_RESHAPE_ALGORITHM option...
Definition: heffte_c_defines.h:117