mgcpp
A C++ Math Library Based on CUDA
Enumerations | Functions
mgcpp::cufft Namespace Reference

Enumerations

enum  fft_direction { fft_direction::forward = CUFFT_FORWARD, fft_direction::inverse = CUFFT_INVERSE }
 

Functions

outcome::result< void > rfft (size_t n, float const *x, cuComplex *result)
 
outcome::result< void > rfft (size_t n, double const *x, cuDoubleComplex *result)
 
outcome::result< void > irfft (size_t n, cuComplex const *x, float *result)
 
outcome::result< void > irfft (size_t n, cuDoubleComplex const *x, double *result)
 
outcome::result< void > cfft (size_t n, cuComplex const *x, cuComplex *result, fft_direction direction)
 
outcome::result< void > cfft (size_t n, cuDoubleComplex const *x, cuDoubleComplex *result, fft_direction direction)
 
outcome::result< void > rfft2 (size_t n, size_t m, float const *x, cuComplex *result)
 
outcome::result< void > rfft2 (size_t n, size_t m, double const *x, cuDoubleComplex *result)
 
outcome::result< void > irfft2 (size_t n, size_t m, cuComplex const *x, float *result)
 
outcome::result< void > irfft2 (size_t n, size_t m, cuDoubleComplex const *x, double *result)
 
outcome::result< void > cfft2 (size_t n, size_t m, cuComplex const *x, cuComplex *result, fft_direction direction)
 
outcome::result< void > cfft2 (size_t n, size_t m, cuDoubleComplex const *x, cuDoubleComplex *result, fft_direction direction)
 

Enumeration Type Documentation

◆ fft_direction

Enumerator
forward 

Forward FFT (time domain -> frequency domain representation)

inverse 

Inverse FFT (frequency domain -> time domain representation)

Function Documentation

◆ cfft() [1/2]

outcome::result<void> mgcpp::cufft::cfft ( size_t  n,
cuComplex const *  x,
cuComplex *  result,
fft_direction  direction 
)

Performs single-precision complex-to-complex FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of n complex values
resultthe fft result, which is an array of n complex values.
directioncufft::fft_direction::forward for forward FFT, or cufft::fft_direction::inverse to perform an inverse (unnormalized) FFT.

◆ cfft() [2/2]

outcome::result<void> mgcpp::cufft::cfft ( size_t  n,
cuDoubleComplex const *  x,
cuDoubleComplex *  result,
fft_direction  direction 
)

Performs double-precision complex-to-complex FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of n complex values
resultthe fft result, which is an array of n complex values.
directioncufft::fft_direction::forward for forward FFT, or cufft::fft_direction::inverse to perform an inverse (unnormalized) FFT.

◆ cfft2() [1/2]

outcome::result<void> mgcpp::cufft::cfft2 ( size_t  n,
size_t  m,
cuComplex const *  x,
cuComplex *  result,
fft_direction  direction 
)

Performs two-dimensional single-precision complex-to-complex FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of n x m interleaved complex values
resultthe fft result, which is an array of n x m real numbers.
directioncufft::fft_direction::forward for forward FFT, or cufft::fft_direction::inverse to perform an inverse (unnormalized) FFT.

◆ cfft2() [2/2]

outcome::result<void> mgcpp::cufft::cfft2 ( size_t  n,
size_t  m,
cuDoubleComplex const *  x,
cuDoubleComplex *  result,
fft_direction  direction 
)

Performs two-dimensional double-precision complex-to-complex FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of n x m interleaved complex values
resultthe fft result, which is an array of n x m real numbers.
directioncufft::fft_direction::forward for forward FFT, or cufft::fft_direction::inverse to perform an inverse (unnormalized) FFT.

◆ irfft() [1/2]

outcome::result<void> mgcpp::cufft::irfft ( size_t  n,
cuComplex const *  x,
float *  result 
)

Performs single-precision complex-to-real inverse unnormalized FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of floor(n/2)+1 interleaved complex values
resultthe fft result, which is an array of n real numbers.

◆ irfft() [2/2]

outcome::result<void> mgcpp::cufft::irfft ( size_t  n,
cuDoubleComplex const *  x,
double *  result 
)

Performs double-precision complex-to-real inverse unnormalized FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of floor(n/2)+1 interleaved complex values
resultthe fft result, which is an array of n real numbers.

◆ irfft2() [1/2]

outcome::result<void> mgcpp::cufft::irfft2 ( size_t  n,
size_t  m,
cuComplex const *  x,
float *  result 
)

Performs two-dimensional single-precision complex-to-real inverse unnormalized FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of (floor(n/2)+1) x m interleaved complex values
resultthe fft result, which is an array of n x m real numbers.

◆ irfft2() [2/2]

outcome::result<void> mgcpp::cufft::irfft2 ( size_t  n,
size_t  m,
cuDoubleComplex const *  x,
double *  result 
)

Performs two-dimensional double-precision complex-to-real inverse unnormalized FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of (floor(n/2)+1) x m interleaved complex values
resultthe fft result, which is an array of n x m real numbers.

◆ rfft() [1/2]

outcome::result<void> mgcpp::cufft::rfft ( size_t  n,
float const *  x,
cuComplex *  result 
)

Performs single-precision real-to-complex forward FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of n real values
resultthe fft result, which is an array of floor(n/2)+1 complex numbers.

◆ rfft() [2/2]

outcome::result<void> mgcpp::cufft::rfft ( size_t  n,
double const *  x,
cuDoubleComplex *  result 
)

Performs double-precision real-to-complex forward FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfft size
xinput array of n real values
resultthe fft result, which is an array of floor(n/2)+1 complex numbers.

◆ rfft2() [1/2]

outcome::result<void> mgcpp::cufft::rfft2 ( size_t  n,
size_t  m,
float const *  x,
cuComplex *  result 
)

Performs two-dimensional single-precision real-to-complex forward FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of (n x m) real values
resultthe fft result, which is an array of floor(n/2)+1 complex numbers.

◆ rfft2() [2/2]

outcome::result<void> mgcpp::cufft::rfft2 ( size_t  n,
size_t  m,
double const *  x,
cuDoubleComplex *  result 
)

Performs two-dimensional double-precision real-to-complex forward FFT. Effectively calls the corresponding CuFFT function.

Parameters
nfastest-changing dimension
mslowest-changing dimension
xinput array of (n x m) real values
resultthe fft result, which is an array of (floor(n/2)+1) x m complex numbers.