12 #ifndef CONVOLUTIONFFT2D_COMMON_H
13 #define CONVOLUTIONFFT2D_COMMON_H
15 typedef unsigned int uint;
30 inline int i_div_up(
int a,
int b) {
return (a % b != 0) ? (a / b + 1) : (a / b); }
33 inline int i_align_up(
int a,
int b) {
return (a % b != 0) ? (a - a % b + b) : a; }
37 void pad_kernel(
float *d_PaddedKernel,
float *d_Kernel,
int fftH,
int fftW,
38 int kernelH,
int kernelW,
int kernelY,
int kernelX);
40 void pad_kernel_3d(
float *d_PaddedKernel,
float *d_Kernel,
int fftH,
int fftW,
41 int kernelH,
int kernelW,
int kernelY,
int kernelX,
int nim);
43 void pad_data_clamp_to_border(
float *d_PaddedData,
float *d_Data,
int fftH,
44 int fftW,
int dataH,
int dataW,
int kernelH,
45 int kernelW,
int kernelY,
int kernelX);
47 void pad_data_clamp_to_border_3d(
float *d_PaddedData,
float *d_Data,
int fftH,
48 int fftW,
int dataH,
int dataW,
int kernelH,
49 int kernelW,
int kernelY,
int kernelX,
int nim);
51 void modulate_and_normalize(
fComplex *d_Dst,
fComplex *d_Src,
int fftH,
int fftW,
52 int padding,
int nim);
54 void sp_postprocess_2d(
void *d_Dst,
void *d_Src, uint DY, uint DX, uint padding,
57 void sp_preprocess_2d(
void *d_Dst,
void *d_Src, uint DY, uint DX, uint padding,
60 void sp_process_2d(
void *d_Data,
void *d_Data0,
void *d_Kernel0, uint DY, uint DX,