isce3 0.25.0
|
Public Member Functions | |
gpuSignal (cufftType _type) | |
Constructor. | |
~gpuSignal () | |
Destructor. | |
void | azimuthFFT (int ncolumns, int nrows) |
initiate plan for FFT in range direction for a block of complex data. | |
void | rangeFFT (int ncolumns, int nrows) |
initiate plan for FFT in azimuth direction for a block of complex data. | |
void | FFT2D (int ncolumns, int nrows) |
initiate plan for FFT in azimuth direction for a block of complex data. | |
void | fftPlan (int rank, int *n, int howmany, int *inembed, int istride, int idist, int *onembed, int ostride, int odist) |
initiate cuFFT plan for a block of complex data input parameters cuFFT interface for fftw_plan_many_dft | |
void | nextPowerOfTwo (size_t N, size_t &fftLength) |
next power of two | |
void | _configureRangeFFT (int ncolumns, int nrows) |
determine the required parameters for setting range FFT plans | |
void | _configureAzimuthFFT (int ncolumns, int nrows) |
determine the required parameters for setting azimuth FFT plans | |
void | dataToDevice (std::complex< T > *input) |
moving data in between device and host | |
void | dataToDevice (std::valarray< std::complex< T > > &input) |
copies data from host to device | |
void | dataToHost (std::complex< T > *output) |
void | dataToHost (std::valarray< std::complex< T > > &output) |
void | forward () |
forward transforms without intermediate return | |
void | forwardC2C (std::complex< T > *input, std::complex< T > *output) |
forward transforms | |
void | forwardC2C (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
unnormalized forward complex float transform | |
void | forwardZ2Z (std::complex< T > *input, std::complex< T > *output) |
unnormalized forward complex double transform | |
void | forwardZ2Z (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
unnormalized forward complex double transform | |
void | forwardD2Z (T *input, std::complex< T > *output) |
unnormalized forward double to complex double transform | |
void | forward (std::complex< T > *input, std::complex< T > *output) |
void | forward (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
void | forwardDevMem (thrust::complex< float > *input, thrust::complex< float > *output) |
void | forwardDevMem (thrust::complex< double > *input, thrust::complex< double > *output) |
void | forwardDevMem (thrust::complex< T > *dataInPlace) |
unnormalized forward complex transform performed in place on given device data | |
void | inverse () |
inverse transforms using existing device memory | |
void | inverseC2C (std::complex< T > *input, std::complex< T > *output) |
inverse transforms | |
void | inverseC2C (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
unnormalized inverse complex float transform | |
void | inverseZ2Z (std::complex< T > *input, std::complex< T > *output) |
unnormalized inverse complex double transform | |
void | inverseZ2Z (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
unnormalized inverse complex double transform | |
void | inverseZ2D (std::complex< T > *input, T *output) |
unnormalized inverse complex double to double transform | |
void | inverse (std::complex< T > *input, std::complex< T > *output) |
void | inverse (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output) |
void | inverseDevMem (thrust::complex< float > *input, thrust::complex< float > *output) |
void | inverseDevMem (thrust::complex< double > *input, thrust::complex< double > *output) |
void | inverseDevMem (thrust::complex< T > *dataInPlace) |
unnormalized inverse complex transform performed in place on given device data | |
void | upsample (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output, int row, int ncols, int upsampleFactor) |
upsample | |
void | upsample (std::valarray< std::complex< T > > &input, std::valarray< std::complex< T > > &output, int row, int ncols, int upsampleFactor, std::valarray< std::complex< T > > &shiftImpact) |
normalized complex float column/range-wise upsampling | |
int | getRows () |
int | getColumns () |
int | getNumElements () |
thrust::complex< T > * | getDevicePtr () |
void | forwardDevMem (thrust::complex< float > *input, thrust::complex< float > *output) |
unnormalized forward complex float transform performed on given device data | |
void | forwardDevMem (thrust::complex< double > *input, thrust::complex< double > *output) |
unnormalized forward complex double transform performed on given device data | |
void | forward (std::complex< float > *input, std::complex< float > *output) |
unnormalized forward complex float transform | |
void | forward (std::complex< double > *input, std::complex< double > *output) |
unnormalized forward complex double transform | |
void | forward (std::valarray< std::complex< float > > &input, std::valarray< std::complex< float > > &output) |
unnormalized forward complex float transform | |
void | forward (std::valarray< std::complex< double > > &input, std::valarray< std::complex< double > > &output) |
unnormalized forward complex double transform | |
void | inverseDevMem (thrust::complex< float > *input, thrust::complex< float > *output) |
unnormalized inverse complex float transform performed on given device data | |
void | inverseDevMem (thrust::complex< double > *input, thrust::complex< double > *output) |
unnormalized inverse complex double transform performed on given device data | |
void | inverse (std::complex< float > *input, std::complex< float > *output) |
unnormalized inverse complex float transform | |
void | inverse (std::complex< double > *input, std::complex< double > *output) |
unnormalized inverse complex double transform | |
void | inverse (std::valarray< std::complex< float > > &input, std::valarray< std::complex< float > > &output) |
unnormalized inverse complex float transform | |
void | inverse (std::valarray< std::complex< double > > &input, std::valarray< std::complex< double > > &output) |
unnormalized inverse complex double transform | |
|
inline |
determine the required parameters for setting azimuth FFT plans
sets up azimuth specific FFT parameters
[in] | ncolumns | number of columns |
[in] | nrows | number of rows |
|
inline |
determine the required parameters for setting range FFT plans
sets range specific FFT parameters
[in] | ncolumns | number of columns |
[in] | nrows | number of rows |
void isce3::cuda::signal::gpuSignal< T >::azimuthFFT | ( | int | ncolumns, |
int | nrows ) |
initiate plan for FFT in range direction for a block of complex data.
sets up azimuth 1D FFT
azimuth direction is assumed to be in the direction of the columns of the array.
[in] | ncolumns | number of columns of the block of data |
[in] | nrows | number of rows of the block of data |
void isce3::cuda::signal::gpuSignal< T >::dataToDevice | ( | std::complex< T > * | input | ) |
moving data in between device and host
copies data from host to device
[in] | pointer | to host data |
void isce3::cuda::signal::gpuSignal< T >::dataToDevice | ( | std::valarray< std::complex< T > > & | input | ) |
copies data from host to device
[in] | valarray | on host data |
void isce3::cuda::signal::gpuSignal< T >::FFT2D | ( | int | ncolumns, |
int | nrows ) |
initiate plan for FFT in azimuth direction for a block of complex data.
sets up 2D FFT
range direction is assumed to be in the direction of the columns of the array.
[in] | ncolumns | number of columns of the block of data |
[in] | nrows | number of rows of the block of data |
void isce3::cuda::signal::gpuSignal< T >::fftPlan | ( | int | rank, |
int * | n, | ||
int | howmany, | ||
int * | inembed, | ||
int | istride, | ||
int | idist, | ||
int * | onembed, | ||
int | ostride, | ||
int | odist ) |
initiate cuFFT plan for a block of complex data input parameters cuFFT interface for fftw_plan_many_dft
sets up 1D cufft
[in] | rank | rank of the transform (1: for one dimensional and 2: for two dimensional transform) |
[in] | size | size of each transform (ncols: for range FFT, nrows: for azimuth FFT) |
[in] | howmany | number of FFT transforms for a block of data (nrows: for range FFT, ncols: for azimuth FFT) |
[in] | inembed | |
[in] | istride | |
[in] | idist | |
[in] | onembed | |
[in] | ostride | |
[in] | odist |
void isce3::cuda::signal::gpuSignal< T >::forward | ( | ) |
forward transforms without intermediate return
unnormalized forward complex float transform performed in place on class data
void isce3::cuda::signal::gpuSignal< double >::forward | ( | std::complex< double > * | input, |
std::complex< double > * | output ) |
unnormalized forward complex double transform
[in] | pointer | to input block of data |
[in] | pointer | to output block of spectrum |
void isce3::cuda::signal::gpuSignal< float >::forward | ( | std::complex< float > * | input, |
std::complex< float > * | output ) |
unnormalized forward complex float transform
[in] | pointer | to input block of data |
[in] | pointer | to output block of spectrum |
void isce3::cuda::signal::gpuSignal< double >::forward | ( | std::valarray< std::complex< double > > & | input, |
std::valarray< std::complex< double > > & | output ) |
unnormalized forward complex double transform
[in] | valarray | containing input block of data |
[in] | valarray | containing output block of spectrum |
void isce3::cuda::signal::gpuSignal< float >::forward | ( | std::valarray< std::complex< float > > & | input, |
std::valarray< std::complex< float > > & | output ) |
unnormalized forward complex float transform
[in] | valarray | containing input block of data |
[in] | valarray | containing output block of spectrum |
void isce3::cuda::signal::gpuSignal< T >::forwardC2C | ( | std::complex< T > * | input, |
std::complex< T > * | output ) |
forward transforms
unnormalized forward complex float transform
[in] | pointer | to input block of data |
[in] | pointer | to output block of spectrum |
void isce3::cuda::signal::gpuSignal< T >::forwardC2C | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output ) |
unnormalized forward complex float transform
[in] | valarray | containing input block of data |
[in] | valarray | containing output block of spectrum |
void isce3::cuda::signal::gpuSignal< T >::forwardD2Z | ( | T * | input, |
std::complex< T > * | output ) |
unnormalized forward double to complex double transform
[in] | pointer | to input block of data |
[in] | pointer | to output block of spectrum |
void isce3::cuda::signal::gpuSignal< double >::forwardDevMem | ( | thrust::complex< double > * | input, |
thrust::complex< double > * | output ) |
unnormalized forward complex double transform performed on given device data
[in] | pointer | to source data on device |
[out] | pointer | to output data on device |
void isce3::cuda::signal::gpuSignal< float >::forwardDevMem | ( | thrust::complex< float > * | input, |
thrust::complex< float > * | output ) |
unnormalized forward complex float transform performed on given device data
[in] | pointer | to source data on device |
[out] | pointer | to output data on device |
void isce3::cuda::signal::gpuSignal< T >::forwardDevMem | ( | thrust::complex< T > * | dataInPlace | ) |
unnormalized forward complex transform performed in place on given device data
[in] | pointer | to source/output data on device |
void isce3::cuda::signal::gpuSignal< T >::forwardZ2Z | ( | std::complex< T > * | input, |
std::complex< T > * | output ) |
unnormalized forward complex double transform
[in] | pointer | to input block of data |
[in] | pointer | to output block of spectrum |
void isce3::cuda::signal::gpuSignal< T >::forwardZ2Z | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output ) |
unnormalized forward complex double transform
[in] | valarray | containing input block of data |
[in] | valarray | containing output block of spectrum |
void isce3::cuda::signal::gpuSignal< T >::inverse | ( | ) |
inverse transforms using existing device memory
unnormalized inverse complex float transform performed in place on class data
void isce3::cuda::signal::gpuSignal< double >::inverse | ( | std::complex< double > * | input, |
std::complex< double > * | output ) |
unnormalized inverse complex double transform
[in] | pointer | to input block of spectrum |
[in] | pointer | to output block of data |
void isce3::cuda::signal::gpuSignal< float >::inverse | ( | std::complex< float > * | input, |
std::complex< float > * | output ) |
unnormalized inverse complex float transform
[in] | pointer | to input block of spectrum |
[in] | pointer | to output block of data |
void isce3::cuda::signal::gpuSignal< double >::inverse | ( | std::valarray< std::complex< double > > & | input, |
std::valarray< std::complex< double > > & | output ) |
unnormalized inverse complex double transform
[in] | valarray | containing input block of spectrum |
[in] | valarray | containing output block of data |
void isce3::cuda::signal::gpuSignal< float >::inverse | ( | std::valarray< std::complex< float > > & | input, |
std::valarray< std::complex< float > > & | output ) |
unnormalized inverse complex float transform
[in] | valarray | containing input block of spectrum |
[in] | valarray | containing output block of data |
void isce3::cuda::signal::gpuSignal< T >::inverseC2C | ( | std::complex< T > * | input, |
std::complex< T > * | output ) |
inverse transforms
unnormalized inverse complex float transform
[in] | pointer | to input block of spectrum |
[in] | pointer | to output block of data |
void isce3::cuda::signal::gpuSignal< T >::inverseC2C | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output ) |
unnormalized inverse complex float transform
[in] | valarray | containing input block of spectrum |
[in] | valarray | containing output block of data |
void isce3::cuda::signal::gpuSignal< double >::inverseDevMem | ( | thrust::complex< double > * | input, |
thrust::complex< double > * | output ) |
unnormalized inverse complex double transform performed on given device data
[in] | pointer | to source data on device |
[out] | pointer | to output data on device |
void isce3::cuda::signal::gpuSignal< float >::inverseDevMem | ( | thrust::complex< float > * | input, |
thrust::complex< float > * | output ) |
unnormalized inverse complex float transform performed on given device data
[in] | pointer | to source data on device |
[out] | pointer | to output data on device |
void isce3::cuda::signal::gpuSignal< T >::inverseDevMem | ( | thrust::complex< T > * | dataInPlace | ) |
unnormalized inverse complex transform performed in place on given device data
[in] | pointer | to source/output data on device |
void isce3::cuda::signal::gpuSignal< T >::inverseZ2D | ( | std::complex< T > * | input, |
T * | output ) |
unnormalized inverse complex double to double transform
[in] | pointer | to input block of spectrum |
[in] | pointer | to output block of data |
void isce3::cuda::signal::gpuSignal< T >::inverseZ2Z | ( | std::complex< T > * | input, |
std::complex< T > * | output ) |
unnormalized inverse complex double transform
[in] | pointer | to input block of spectrum |
[in] | pointer | to output block of data |
void isce3::cuda::signal::gpuSignal< T >::inverseZ2Z | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output ) |
unnormalized inverse complex double transform
[in] | valarray | containing input block of spectrum |
[in] | valarray | containing output block of data |
void isce3::cuda::signal::gpuSignal< T >::nextPowerOfTwo | ( | size_t | N, |
size_t & | fftLength ) |
next power of two
finds next power of 2 >= given size
[in] | N | the actual length of a signal |
[in] | fftLength | next power of two |
void isce3::cuda::signal::gpuSignal< T >::rangeFFT | ( | int | ncolumns, |
int | nrows ) |
initiate plan for FFT in azimuth direction for a block of complex data.
sets up range 1D FFT
range direction is assumed to be in the direction of the columns of the array.
[in] | ncolumns | number of columns of the block of data |
[in] | nrows | number of rows of the block of data |
void isce3::cuda::signal::gpuSignal< T >::upsample | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output, | ||
int | row, | ||
int | nfft, | ||
int | upsampleFactor ) |
upsample
normalized complex column/range-wise upsampling
[in] | valarray | containing lo res data |
[in] | valarray | containing hi res data |
[in] | rows | in both lo and hi res data |
[in] | columns | in lo res data |
[in] | upsample | factor |
void isce3::cuda::signal::gpuSignal< T >::upsample | ( | std::valarray< std::complex< T > > & | input, |
std::valarray< std::complex< T > > & | output, | ||
int | row, | ||
int | col, | ||
int | upsampleFactor, | ||
std::valarray< std::complex< T > > & | shiftImpact ) |
normalized complex float column/range-wise upsampling
[in] | valarray | containing lo res data |
[in] | valarray | containing hi res data |
[in] | rows | in both lo and hi res data |
[in] | columns | in lo res data |
[in] | upsample | factor |
[in] | valarray | containing shift impact |