Module Owl_fft_generic

Fast Fourier Transform

Basic functions
val fft : ?axis:int -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t

fft ~axis x performs 1-dimensional FFT on a complex input. axis is the highest dimension if not specified. The return is not scaled.

val ifft : ?axis:int -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t

ifft ~axis x performs inverse 1-dimensional FFT on a complex input. axis is the highest dimension by default.

val rfft : ?axis:int -> otyp:( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.kind -> ( float, 'b ) Owl_dense_ndarray_generic.t -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t

rfft ~axis ~otyp x performs 1-dimensional FFT on real input along the axis. otyp is used to specify the output type, it must be the consistent precision with input x. You can skip this parameter by using a submodule with specific precision such as Owl.Fft.S or Owl.Fft.D.

val irfft : ?axis:int -> ?n:int -> otyp:( float, 'a ) Owl_dense_ndarray_generic.kind -> ( Stdlib.Complex.t, 'b ) Owl_dense_ndarray_generic.t -> ( float, 'a ) Owl_dense_ndarray_generic.t

irfft ~axis ~n x is the inverse function of rfft. Note the n parameter is used to specified the size of output.

val fft2 : ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t

fft2 x performs 2-dimensional FFT on a complex input. The return is not scaled.

val ifft2 : ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t -> ( Stdlib.Complex.t, 'a ) Owl_dense_ndarray_generic.t

ifft2 x performs inverse 2-dimensional FFT on a complex input.