Skip to Content

fft_cooley_tukey

View the code on GitHub

Structs

Functions

cooley_tukey_non_recursive

cooley_tukey_non_recursive(n: Int, max_depth: Int, res_data: UnsafePointer[SIMD[float64, 1]])
Non-recursive Cooley-Tukey FFT splitting of the input data with a limited depth.
Args
  • n: Int

  • max_depth: Int

  • res_data: UnsafePointer[SIMD[float64, 1]]

cooley_tukey_sequencial_recombine

cooley_tukey_sequencial_recombine(n: Int, start_depth: Int, res_data: UnsafePointer[SIMD[float64, 1]])
Non-recursive Cooley-Tukey FFT recombination of the subsolutions. The recombination starts at a given depth.
Args
  • n: Int

  • start_depth: Int

  • res_data: UnsafePointer[SIMD[float64, 1]]

fft_cooley_tukey_inplace_bit_reversal

fft_cooley_tukey_inplace_bit_reversal(workload: Int, data: UnsafePointer[SIMD[float64, 1]], reordered_arr_data: UnsafePointer[SIMD[uint32, 1]], dims: List[Int] = List())
Iterative fast Fourier transform using the Cooley-Tukey algorithm with bit-reversal permutation inplace.
Args
  • workload: Int

  • data: UnsafePointer[SIMD[float64, 1]]

  • reordered_arr_data: UnsafePointer[SIMD[uint32, 1]]

  • dims: List[Int] (default: List())

fft_cooley_tukey_parallel

fft_cooley_tukey_parallel(input: Array, dims: List[Int], norm: String, out: Optional[Array] = Optional(None), conj_input: Bool = False, conj_output: Bool = False, input_divisor: SIMD[float64, 1] = SIMD(#kgen.float_literal<1|1>), output_divisor: SIMD[float32, 1] = SIMD(#kgen.float_literal<1|1>)) -> Array
Compute the n-dimensional FFT using a hybrid version of the Cooley-Tukey algorithm.
Args
  • input: Array The input array.

  • dims: List[Int] The dimensions along which to compute the FFT.

  • norm: String The normalization mode.

  • out: Optional[Array] (default: Optional(None)) The output array (optional).

  • conj_input: Bool (default: False) Whether to conjugate the input data.

  • conj_output: Bool (default: False) Whether to conjugate the output data.

  • input_divisor: SIMD[float64, 1] (default: SIMD(#kgen.float_literal<1|1>)) The divisor for the input data.

  • output_divisor: SIMD[float32, 1] (default: SIMD(#kgen.float_literal<1|1>)) The divisor for the output data.

Returns
  • Array - The n-dimensional FFT/IFFT of the input array.

fft_cooley_tukey_parallel_inplace

fft_cooley_tukey_parallel_inplace(input: Array, mut out: Array, dims: List[Int], norm: String, conj_input: Bool = False, conj_output: Bool = False, input_divisor: SIMD[float64, 1] = SIMD(#kgen.float_literal<1|1>), output_divisor: SIMD[float32, 1] = SIMD(#kgen.float_literal<1|1>))
Compute the n-dimensional FFT inplace using a hybrid version of the Cooley-Tukey algorithm.
Args
  • input: Array The input array.

  • out: Array The output array.

  • dims: List[Int] The dimensions along which to compute the FFT.

  • norm: String The normalization mode.

  • conj_input: Bool (default: False) Whether to conjugate the input data.

  • conj_output: Bool (default: False) Whether to conjugate the output data.

  • input_divisor: SIMD[float64, 1] (default: SIMD(#kgen.float_literal<1|1>)) The divisor for the input data.

  • output_divisor: SIMD[float32, 1] (default: SIMD(#kgen.float_literal<1|1>)) The divisor for the output data.

Last updated on