Rate This Document
Findability
Accuracy
Completeness
Readability

Data Structures

This section describes the data structures of the KML_FFT library functions.

Structures of complex numbers:

  • Double-precision complex numbers:
    typedef struct { 
        double r; 
        double i; 
    } kml_fft_complex;
  • Single-precision complex numbers:
    typedef struct { 
        float r; 
        float i; 
    } kml_fftf_complex;

kml_fft_plan_s structures and definition of kml_fft_plan:

  • Double precision:
    struct kml_fft_plan_s { 
        problem_s problem; 
        solver_s solver; 
        KML_UINT num_threads; 
    }; 
    typedef struct kml_fft_plan_s *kml_fft_plan;
  • Single precision:
    struct kml_fftf_plan_s { 
        problem_s problem; 
        solver_s solver; 
        KML_UINT num_threads; 
    }; 
    typedef struct kml_fftf_plan_s *kml_fftf_plan;
  • problem_s is the structure of the FFT problem, including the transform type and input/output parameters.
  • solver_s is the parameter of selecting a solver for FFT, including the functions used for the solving and the parameters such as kml_fft_plan_s for converting the problem into a subproblem.
  • num_threads indicates the number of threads.

Half-complex form:

If n0xn1 array A meets , where A(n0, j) is A(0, j) and A(i, n1) is A(i, 0), a half-complex n0x[(n1/2)+1] array B is used to store array A.