46 #ifndef __ophTriMesh_GPU_h 47 #define __ophTriMesh_GPU_h 53 #include <cuda_runtime.h> 56 #include <math_constants.h> 59 static void HandleError(cudaError_t err,
62 if (err != cudaSuccess) {
63 printf(
"%s in %s at line %d\n", cudaGetErrorString(err),
68 #define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ )) 71 #define HANDLE_NULL( a ) {if (a == NULL) { \ 72 printf( "Host memory failed in %s at line %d\n", __FILE__, __LINE__ ); \ 73 exit( EXIT_FAILURE );}} 75 #define CUDA_CALL(x) { if((x)!=cudaSuccess) { \ 76 printf("Error at %s:%d\n",__FILE__,__LINE__);\ 77 exit( EXIT_FAILURE ); }} 78 #define CURAND_CALL(x) { if((x)!=CURAND_STATUS_SUCCESS) { \ 79 printf("Error at %s:%d\n",__FILE__,__LINE__);\ 80 exit( EXIT_FAILURE ); }} 89 void call_cudaKernel_refAS(cufftDoubleComplex* output,
int nx,
int ny,
double px,
double py,
unsigned int SHADING_FLAG,
int idx,
90 double waveLength,
double pi,
double shadingFactor,
double av0,
double av1,
double av2,
91 double glRot0,
double glRot1,
double glRot2,
double glRot3,
double glRot4,
double glRot5,
double glRot6,
double glRot7,
double glRot8,
92 double loRot0,
double loRot1,
double loRot2,
double loRot3,
double glShiftX,
double glShiftY,
double glShiftZ,
93 double carrierWaveX,
double carrierWaveY,
double carrierWaveZ,
double min_double,
double tolerence, CUstream_st*
streamTriMesh);
95 void call_cudaKernel_refASf(cuFloatComplex* output,
int nx,
int ny,
float px,
float py,
unsigned int sflag,
int idx,
float waveLength,
96 float pi,
float shadingFactor,
float av0,
float av1,
float av2,
97 float glRot0,
float glRot1,
float glRot2,
float glRot3,
float glRot4,
float glRot5,
float glRot6,
float glRot7,
float glRot8,
98 float loRot0,
float loRot1,
float loRot2,
float loRot3,
float glShiftX,
float glShiftY,
float glShiftZ,
99 float carrierWaveX,
float carrierWaveY,
float carrierWaveZ,
float min_double,
float tolerence, CUstream_st*
streamTriMesh);
101 void call_fftGPU(
int nx,
int ny, cufftDoubleComplex* input, cufftDoubleComplex* output, CUstream_st*
streamTriMesh);
cufftDoubleComplex * angularSpectrum_GPU
void call_cudaKernel_refAS(cufftDoubleComplex *output, int nx, int ny, double px, double py, unsigned int SHADING_FLAG, int idx, double waveLength, double pi, double shadingFactor, double av0, double av1, double av2, double glRot0, double glRot1, double glRot2, double glRot3, double glRot4, double glRot5, double glRot6, double glRot7, double glRot8, double loRot0, double loRot1, double loRot2, double loRot3, double glShiftX, double glShiftY, double glShiftZ, double carrierWaveX, double carrierWaveY, double carrierWaveZ, double min_double, double tolerence, CUstream_st *streamTriMesh)
void call_fftGPUf(int nx, int ny, cuFloatComplex *input, cuFloatComplex *output, CUstream_st *streamTriMesh)
void call_fftGPU(int nx, int ny, cufftDoubleComplex *input, cufftDoubleComplex *output, CUstream_st *streamTriMesh)
cudaStream_t streamTriMesh
void call_cudaKernel_refASf(cuFloatComplex *output, int nx, int ny, float px, float py, unsigned int sflag, int idx, float waveLength, float pi, float shadingFactor, float av0, float av1, float av2, float glRot0, float glRot1, float glRot2, float glRot3, float glRot4, float glRot5, float glRot6, float glRot7, float glRot8, float loRot0, float loRot1, float loRot2, float loRot3, float glShiftX, float glShiftY, float glShiftZ, float carrierWaveX, float carrierWaveY, float carrierWaveZ, float min_double, float tolerence, CUstream_st *streamTriMesh)
cufftDoubleComplex * ffttemp