isce3 0.25.0
Loading...
Searching...
No Matches
cuOverSampler.h
1/*
2 * @file cuOverSampler.h
3 * @brief Oversampling with FFT padding method
4 *
5 * Define cuOverSampler class, to save cufft plans and perform oversampling calculations
6 * For float images use cuOverSamplerR2R
7 * For complex images use cuOverSamplerC2C
8 * @todo use template class to unify these two classes
9 */
10
11#ifndef __CUOVERSAMPLER_H
12#define __CUOVERSAMPLER_H
13
14#include "cuArrays.h"
15#include "cudaUtil.h"
16
17// FFT Oversampler for complex images
18class cuOverSamplerC2C
19{
20private:
21 cufftHandle forwardPlan; // forward fft handle
22 cufftHandle backwardPlan; // backward fft handle
23 cudaStream_t stream; // cuda stream
24 cuArrays<float2> *workIn; // work array to hold forward fft data
25 cuArrays<float2> *workOut; // work array to hold padded data
26public:
27 // disable the default constructor
28 cuOverSamplerC2C() = delete;
29 // constructor
30 cuOverSamplerC2C(int inNX, int inNY, int outNX, int outNY, int nImages, cudaStream_t stream_);
31 // set cuda stream
32 void setStream(cudaStream_t stream_);
33 // execute oversampling
34 void execute(cuArrays<float2> *imagesIn, cuArrays<float2> *imagesOut, int deramp_method=0);
35 // destructor
37};
38
39// FFT Oversampler for complex images
40class cuOverSamplerR2R
41{
42private:
43 cufftHandle forwardPlan;
44 cufftHandle backwardPlan;
45 cudaStream_t stream;
46 cuArrays<float2> *workSizeIn;
47 cuArrays<float2> *workSizeOut;
48
49public:
50 cuOverSamplerR2R() = delete;
51 cuOverSamplerR2R(int inNX, int inNY, int outNX, int outNY, int nImages, cudaStream_t stream_);
52 void setStream(cudaStream_t stream_);
53 void execute(cuArrays<float> *imagesIn, cuArrays<float> *imagesOut);
55};
56
57
58#endif //__CUOVERSAMPLER_H
59// end of file
60
61
62
Definition cuArrays.h:25
~cuOverSamplerC2C()
destructor
Definition cuOverSampler.cu:81
void execute(cuArrays< float2 > *imagesIn, cuArrays< float2 > *imagesOut, int deramp_method=0)
Execute fft oversampling.
Definition cuOverSampler.cu:72
void setStream(cudaStream_t stream_)
Set up cuda stream.
Definition cuOverSampler.cu:59
void execute(cuArrays< float > *imagesIn, cuArrays< float > *imagesOut)
Execute fft oversampling.
Definition cuOverSampler.cu:141
~cuOverSamplerR2R()
destructor
Definition cuOverSampler.cu:151
Header file for cuArrays class.
Various cuda related parameters and utilities.

Generated for ISCE3.0 by doxygen 1.13.2.