sig
  type t = Lacaml__D.vec
  type unop =
      ?n:int ->
      ?ofsy:int ->
      ?incy:int ->
      ?y:Lacaml__D.vec ->
      ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> Lacaml__D.vec
  type binop =
      ?n:int ->
      ?ofsz:int ->
      ?incz:int ->
      ?z:Lacaml__D.vec ->
      ?ofsx:int ->
      ?incx:int ->
      Lacaml__D.vec ->
      ?ofsy:int -> ?incy:int -> Lacaml__D.vec -> Lacaml__D.vec
  val random :
    ?rnd_state:Stdlib.Random.State.t ->
    ?from:float -> ?range:float -> int -> Lacaml__D.vec
  val abs : Lacaml__D.Vec.unop
  val signum : Lacaml__D.Vec.unop
  val sqr : Lacaml__D.Vec.unop
  val sqrt : Lacaml__D.Vec.unop
  val cbrt : Lacaml__D.Vec.unop
  val exp : Lacaml__D.Vec.unop
  val exp2 : Lacaml__D.Vec.unop
  val expm1 : Lacaml__D.Vec.unop
  val log : Lacaml__D.Vec.unop
  val log10 : Lacaml__D.Vec.unop
  val log2 : Lacaml__D.Vec.unop
  val log1p : Lacaml__D.Vec.unop
  val sin : Lacaml__D.Vec.unop
  val cos : Lacaml__D.Vec.unop
  val tan : Lacaml__D.Vec.unop
  val asin : Lacaml__D.Vec.unop
  val acos : Lacaml__D.Vec.unop
  val atan : Lacaml__D.Vec.unop
  val sinh : Lacaml__D.Vec.unop
  val cosh : Lacaml__D.Vec.unop
  val tanh : Lacaml__D.Vec.unop
  val asinh : Lacaml__D.Vec.unop
  val acosh : Lacaml__D.Vec.unop
  val atanh : Lacaml__D.Vec.unop
  val floor : Lacaml__D.Vec.unop
  val ceil : Lacaml__D.Vec.unop
  val round : Lacaml__D.Vec.unop
  val trunc : Lacaml__D.Vec.unop
  val erf : Lacaml__D.Vec.unop
  val erfc : Lacaml__D.Vec.unop
  val logistic : Lacaml__D.Vec.unop
  val relu : Lacaml__D.Vec.unop
  val softplus : Lacaml__D.Vec.unop
  val softsign : Lacaml__D.Vec.unop
  val pow : Lacaml__D.Vec.binop
  val atan2 : Lacaml__D.Vec.binop
  val hypot : Lacaml__D.Vec.binop
  val min2 : Lacaml__D.Vec.binop
  val max2 : Lacaml__D.Vec.binop
  val log_sum_exp :
    ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val create : int -> Lacaml__D.vec
  val make : int -> float -> Lacaml__D.vec
  val make0 : int -> Lacaml__D.vec
  val init : int -> (int -> float) -> Lacaml__D.vec
  val of_array : float array -> Lacaml__D.vec
  val to_array : Lacaml__D.vec -> float array
  val of_list : float list -> Lacaml__D.vec
  val to_list : Lacaml__D.vec -> float list
  val append : Lacaml__D.vec -> Lacaml__D.vec -> Lacaml__D.vec
  val concat : Lacaml__D.vec list -> Lacaml__D.vec
  val empty : Lacaml__D.vec
  val linspace : ?y:Lacaml__D.vec -> float -> float -> int -> Lacaml__D.vec
  val logspace :
    ?y:Lacaml__D.vec -> float -> float -> ?base:float -> int -> Lacaml__D.vec
  val dim : Lacaml__D.vec -> int
  val has_zero_dim : Lacaml__D.vec -> bool
  val map :
    (float -> float) ->
    ?n:int ->
    ?ofsy:int ->
    ?incy:int ->
    ?y:Lacaml__D.vec ->
    ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> Lacaml__D.vec
  val iter :
    (float -> unit) ->
    ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> unit
  val iteri :
    (int -> float -> unit) ->
    ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> unit
  val fold :
    ('-> float -> 'a) ->
    '-> ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> 'a
  val rev : Lacaml__D.vec -> Lacaml__D.vec
  val max : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val min : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val sort :
    ?cmp:(float -> float -> int) ->
    ?decr:bool ->
    ?n:int ->
    ?ofsp:int ->
    ?incp:int ->
    ?p:Lacaml__common.int_vec ->
    ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> unit
  val fill :
    ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float -> unit
  val sum : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val prod : ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val add_const : float -> Lacaml__D.Vec.unop
  val sqr_nrm2 :
    ?stable:bool ->
    ?n:int -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val ssqr :
    ?n:int -> ?c:float -> ?ofsx:int -> ?incx:int -> Lacaml__D.vec -> float
  val neg : Lacaml__D.Vec.unop
  val reci : Lacaml__D.Vec.unop
  val add : Lacaml__D.Vec.binop
  val sub : Lacaml__D.Vec.binop
  val mul : Lacaml__D.Vec.binop
  val div : Lacaml__D.Vec.binop
  val zpxy :
    ?n:int ->
    ?ofsz:int ->
    ?incz:int ->
    Lacaml__D.vec ->
    ?ofsx:int ->
    ?incx:int ->
    Lacaml__D.vec -> ?ofsy:int -> ?incy:int -> Lacaml__D.vec -> unit
  val zmxy :
    ?n:int ->
    ?ofsz:int ->
    ?incz:int ->
    Lacaml__D.vec ->
    ?ofsx:int ->
    ?incx:int ->
    Lacaml__D.vec -> ?ofsy:int -> ?incy:int -> Lacaml__D.vec -> unit
  val ssqr_diff :
    ?n:int ->
    ?ofsx:int ->
    ?incx:int ->
    Lacaml__D.vec -> ?ofsy:int -> ?incy:int -> Lacaml__D.vec -> float
end