sig
  type double_vector_bigarr =
      (float, Bigarray.float64_elt, Bigarray.c_layout) Bigarray.Array1.t
  type vector = Gsl_vector.double_vector_bigarr
  val create : ?init:float -> int -> Gsl_vector.vector
  val of_array : float array -> Gsl_vector.vector
  val to_array : Gsl_vector.vector -> float array
  val length : Gsl_vector.vector -> int
  val get : Gsl_vector.vector -> int -> float
  val set : Gsl_vector.vector -> int -> float -> unit
  val set_all : Gsl_vector.vector -> float -> unit
  val set_zero : Gsl_vector.vector -> unit
  val set_basis : Gsl_vector.vector -> int -> unit
  val memcpy : src:Gsl_vector.vector -> dst:Gsl_vector.vector -> unit
  val copy : Gsl_vector.vector -> Gsl_vector.vector
  val swap_element : Gsl_vector.vector -> int -> int -> unit
  val reverse : Gsl_vector.vector -> unit
  external add : Gsl_vector.vector -> Gsl_vector.vector -> unit
    = "ml_gsl_vector_add"
  external sub : Gsl_vector.vector -> Gsl_vector.vector -> unit
    = "ml_gsl_vector_sub"
  external mul : Gsl_vector.vector -> Gsl_vector.vector -> unit
    = "ml_gsl_vector_mul"
  external div : Gsl_vector.vector -> Gsl_vector.vector -> unit
    = "ml_gsl_vector_div"
  external scale : Gsl_vector.vector -> float -> unit = "ml_gsl_vector_scale"
  external add_constant : Gsl_vector.vector -> float -> unit
    = "ml_gsl_vector_add_constant"
  external is_null : Gsl_vector.vector -> bool = "ml_gsl_vector_isnull"
  external max : Gsl_vector.vector -> float = "ml_gsl_vector_max"
  external min : Gsl_vector.vector -> float = "ml_gsl_vector_min"
  external minmax : Gsl_vector.vector -> float * float
    = "ml_gsl_vector_minmax"
  external max_index : Gsl_vector.vector -> int = "ml_gsl_vector_maxindex"
  external min_index : Gsl_vector.vector -> int = "ml_gsl_vector_minindex"
  external minmax_index : Gsl_vector.vector -> int * int
    = "ml_gsl_vector_minmaxindex"
  val subvector :
    Gsl_vector.vector -> off:int -> len:int -> Gsl_vector.vector
  module Single :
    sig
      type float_vector_bigarr =
          (float, Bigarray.float32_elt, Bigarray.c_layout) Bigarray.Array1.t
      type vector = Gsl_vector.Single.float_vector_bigarr
      val create : ?init:float -> int -> Gsl_vector.Single.vector
      val of_array : float array -> Gsl_vector.Single.vector
      val to_array : Gsl_vector.Single.vector -> float array
      val length : Gsl_vector.Single.vector -> int
      val get : Gsl_vector.Single.vector -> int -> float
      val set : Gsl_vector.Single.vector -> int -> float -> unit
      val set_all : Gsl_vector.Single.vector -> float -> unit
      val set_zero : Gsl_vector.Single.vector -> unit
      val set_basis : Gsl_vector.Single.vector -> int -> unit
      val memcpy :
        src:Gsl_vector.Single.vector -> dst:Gsl_vector.Single.vector -> unit
      val copy : Gsl_vector.Single.vector -> Gsl_vector.Single.vector
      val swap_element : Gsl_vector.Single.vector -> int -> int -> unit
      val reverse : Gsl_vector.Single.vector -> unit
      external add :
        Gsl_vector.Single.vector -> Gsl_vector.Single.vector -> unit
        = "ml_gsl_vector_float_add"
      external sub :
        Gsl_vector.Single.vector -> Gsl_vector.Single.vector -> unit
        = "ml_gsl_vector_float_sub"
      external mul :
        Gsl_vector.Single.vector -> Gsl_vector.Single.vector -> unit
        = "ml_gsl_vector_float_mul"
      external div :
        Gsl_vector.Single.vector -> Gsl_vector.Single.vector -> unit
        = "ml_gsl_vector_float_div"
      external scale : Gsl_vector.Single.vector -> float -> unit
        = "ml_gsl_vector_float_scale"
      external add_constant : Gsl_vector.Single.vector -> float -> unit
        = "ml_gsl_vector_float_add_constant"
      external is_null : Gsl_vector.Single.vector -> bool
        = "ml_gsl_vector_float_isnull"
      external max : Gsl_vector.Single.vector -> float
        = "ml_gsl_vector_float_max"
      external min : Gsl_vector.Single.vector -> float
        = "ml_gsl_vector_float_min"
      external minmax : Gsl_vector.Single.vector -> float * float
        = "ml_gsl_vector_float_minmax"
      external max_index : Gsl_vector.Single.vector -> int
        = "ml_gsl_vector_float_maxindex"
      external min_index : Gsl_vector.Single.vector -> int
        = "ml_gsl_vector_float_minindex"
      external minmax_index : Gsl_vector.Single.vector -> int * int
        = "ml_gsl_vector_float_minmaxindex"
      val subvector :
        Gsl_vector.Single.vector ->
        off:int -> len:int -> Gsl_vector.Single.vector
    end
end