sig
exception Wrong_layout
type layout = Real | Halfcomplex | Halfcomplex_rad2 | Complex
type fft_array = { mutable layout : Gsl_fft.layout; data : float array; }
module Real :
sig
type workspace
type wavetable
val make_workspace : int -> Gsl_fft.Real.workspace
val make_wavetable : int -> Gsl_fft.Real.wavetable
external transform :
?stride:int ->
Gsl_fft.fft_array ->
Gsl_fft.Real.wavetable -> Gsl_fft.Real.workspace -> unit
= "ml_gsl_fft_real_transform"
external transform_rad2 : ?stride:int -> Gsl_fft.fft_array -> unit
= "ml_gsl_fft_real_radix2_transform"
val unpack : ?stride:int -> Gsl_fft.fft_array -> Gsl_fft.fft_array
end
module Halfcomplex :
sig
type wavetable
val make_wavetable : int -> Gsl_fft.Halfcomplex.wavetable
external transform :
?stride:int ->
Gsl_fft.fft_array ->
Gsl_fft.Halfcomplex.wavetable -> Gsl_fft.Real.workspace -> unit
= "ml_gsl_fft_halfcomplex_transform"
external transform_rad2 : ?stride:int -> Gsl_fft.fft_array -> unit
= "ml_gsl_fft_halfcomplex_radix2_transform"
external backward :
?stride:int ->
Gsl_fft.fft_array ->
Gsl_fft.Halfcomplex.wavetable -> Gsl_fft.Real.workspace -> unit
= "ml_gsl_fft_halfcomplex_backward"
external backward_rad2 : ?stride:int -> Gsl_fft.fft_array -> unit
= "ml_gsl_fft_halfcomplex_radix2_backward"
external inverse :
?stride:int ->
Gsl_fft.fft_array ->
Gsl_fft.Halfcomplex.wavetable -> Gsl_fft.Real.workspace -> unit
= "ml_gsl_fft_halfcomplex_inverse"
external inverse_rad2 : ?stride:int -> Gsl_fft.fft_array -> unit
= "ml_gsl_fft_halfcomplex_radix2_inverse"
val unpack : ?stride:int -> Gsl_fft.fft_array -> Gsl_fft.fft_array
end
module Complex :
sig
type workspace
type wavetable
type direction = Forward | Backward
val make_workspace : int -> Gsl_fft.Complex.workspace
val make_wavetable : int -> Gsl_fft.Complex.wavetable
external forward :
?stride:int ->
Gsl_complex.complex_array ->
Gsl_fft.Complex.wavetable -> Gsl_fft.Complex.workspace -> unit
= "ml_gsl_fft_complex_forward"
external forward_rad2 :
?dif:bool -> ?stride:int -> Gsl_complex.complex_array -> unit
= "ml_gsl_fft_complex_rad2_forward"
external transform :
?stride:int ->
Gsl_complex.complex_array ->
Gsl_fft.Complex.wavetable ->
Gsl_fft.Complex.workspace -> Gsl_fft.Complex.direction -> unit
= "ml_gsl_fft_complex_transform"
external transform_rad2 :
?dif:bool ->
?stride:int ->
Gsl_complex.complex_array -> Gsl_fft.Complex.direction -> unit
= "ml_gsl_fft_complex_rad2_transform"
external backward :
?stride:int ->
Gsl_complex.complex_array ->
Gsl_fft.Complex.wavetable -> Gsl_fft.Complex.workspace -> unit
= "ml_gsl_fft_complex_backward"
external backward_rad2 :
?dif:bool -> ?stride:int -> Gsl_complex.complex_array -> unit
= "ml_gsl_fft_complex_rad2_backward"
external inverse :
?stride:int ->
Gsl_complex.complex_array ->
Gsl_fft.Complex.wavetable -> Gsl_fft.Complex.workspace -> unit
= "ml_gsl_fft_complex_inverse"
external inverse_rad2 :
?dif:bool -> ?stride:int -> Gsl_complex.complex_array -> unit
= "ml_gsl_fft_complex_rad2_inverse"
end
val unpack : Gsl_fft.fft_array -> Gsl_complex.complex_array
val hc_mult : Gsl_fft.fft_array -> Gsl_fft.fft_array -> unit
val hc_mult_rad2 : Gsl_fft.fft_array -> Gsl_fft.fft_array -> unit
end