sig
  type t
  type ws
  type kind =
      DAUBECHIES
    | DAUBECHIES_CENTERED
    | HAAR
    | HAAR_CENTERED
    | BSPLINE
    | BSPLINE_CENTERED
  type direction = FORWARD | BACKWARD
  val make : Gsl_wavelet.kind -> int -> Gsl_wavelet.t
  external name : Gsl_wavelet.t -> string = "ml_gsl_wavelet_name"
  val workspace_make : int -> Gsl_wavelet.ws
  external workspace_size : Gsl_wavelet.ws -> int
    = "ml_gsl_wavelet_workspace_size"
  val transform_array :
    Gsl_wavelet.t ->
    Gsl_wavelet.direction ->
    ?ws:Gsl_wavelet.ws ->
    ?stride:int -> ?off:int -> ?len:int -> float array -> unit
  val transform_forward :
    Gsl_wavelet.t ->
    ?ws:Gsl_wavelet.ws ->
    ?stride:int -> ?off:int -> ?len:int -> float array -> unit
  val transform_inverse :
    Gsl_wavelet.t ->
    ?ws:Gsl_wavelet.ws ->
    ?stride:int -> ?off:int -> ?len:int -> float array -> unit
  val transform_vector_flat :
    Gsl_wavelet.t ->
    Gsl_wavelet.direction ->
    ?ws:Gsl_wavelet.ws -> Gsl_vector_flat.vector -> unit
  val transform_vector :
    Gsl_wavelet.t ->
    Gsl_wavelet.direction -> ?ws:Gsl_wavelet.ws -> Gsl_vector.vector -> unit
  val transform_gen :
    Gsl_wavelet.t ->
    Gsl_wavelet.direction ->
    ?ws:Gsl_wavelet.ws -> [< Gsl_vectmat.vec ] -> unit
  type ordering = STANDARD | NON_STANDARD
  val transform_matrix_flat :
    Gsl_wavelet.t ->
    Gsl_wavelet.ordering ->
    Gsl_wavelet.direction ->
    ?ws:Gsl_wavelet.ws -> Gsl_matrix_flat.matrix -> unit
  val transform_matrix :
    Gsl_wavelet.t ->
    Gsl_wavelet.ordering ->
    Gsl_wavelet.direction -> ?ws:Gsl_wavelet.ws -> Gsl_matrix.matrix -> unit
  val transform_matrix_gen :
    Gsl_wavelet.t ->
    Gsl_wavelet.ordering ->
    Gsl_wavelet.direction ->
    ?ws:Gsl_wavelet.ws -> [< Gsl_vectmat.mat ] -> unit
end