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