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