Module Owl_fft.Generic

include Owl_fft_generic
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.