Adelsbach/VSIPL
Core Light Double Precision Programming Reference Guide
DD-00014-015
Core Light +DP

12.1 vsip_ddfftop_create_p - Create FFT Objects

typedef enum _vsip_fft_dir { 
    VSIP_FFT_FWD = -1, 
    VSIP_FFT_INV = +1 
} vsip_fft_dir; 
 
typedef enum _vsip_alg_hint { 
  VSIP_ALG_TIME  = 0, 
  VSIP_ALG_SPACE = 1, 
  VSIP_ALG_NOISE = 2 
} vsip_alg_hint; 
 
vsip_fft_f* vsip_ccfftop_create_f(vsip_length length, vsip_scalar_f scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint); 
vsip_fft_f* vsip_rcfftop_create_f(vsip_length length, vsip_scalar_f scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint); 
vsip_fft_f* vsip_crfftop_create_f(vsip_length length, vsip_scalar_f scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint); 
 
vsip_fft_d* vsip_ccfftop_create_d(vsip_length length, vsip_scalar_d scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint); 
vsip_fft_d* vsip_rcfftop_create_d(vsip_length length, vsip_scalar_d scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint); 
vsip_fft_d* vsip_crfftop_create_d(vsip_length length, vsip_scalar_d scale, 
                                  vsip_fft_dir sign, vsip_length ntimes, 
                                  vsip_alg_hint hint);
Description

These functions create FFT (Fast Fourier Transform) objects for different types of FFT operations:

Each function initializes the FFT object with the specified length, scale factor, direction, number of times to apply the FFT, and algorithm hint.

The performance for supported FFT sizes is standardized as O(nlogn). For sizes not directly supported by the FFT kernels a DFT fallback with a performance of O(n2) is standardized.

Parameters
Return Value
Example

vsip_length length = 1024; 
vsip_scalar_f scale = 1.0; 
vsip_fft_dir direction = VSIP_FFT_FWD; // Forward FFT 
vsip_length ntimes = 1; 
vsip_alg_hint hint = VSIP_ALG_TIME; 
 
vsip_fft_f *fft_cc; 
vsip_fft_f *fft_rc; 
vsip_fft_f *fft_cr; 
 
// Create complex-to-complex FFT object 
fft_cc = vsip_ccfftop_create_f(length, scale, direction, ntimes, hint); 
if (fft_cc == NULL) { 
    // Handle error 
}