Module type Owl_algodiff_generic.MatrixSig

module type MatrixSig = sig .. end

type mat 
type arr 
type elt = float 
val create : int ->
int ->
elt -> mat
val empty : int -> int -> mat
val zeros : int -> int -> mat
val uniform : ?scale:elt ->
int -> int -> mat
val gaussian : ?sigma:elt ->
int -> int -> mat
val bernoulli : ?p:float -> ?seed:int -> int -> int -> mat
val shape : mat -> int * int
val row_num : mat -> int
val col_num : mat -> int
val numel : mat -> int
val get : mat ->
int -> int -> elt
val set : mat ->
int -> int -> elt -> unit
val row : mat ->
int -> mat
val clone : mat -> mat
val reset : mat -> unit
val reshape : int ->
int ->
mat -> mat
val copy_row_to : mat ->
mat -> int -> unit
val copy_col_to : mat ->
mat -> int -> unit
val mapi : (int ->
int ->
elt -> elt) ->
mat -> mat
val iteri_rows : (int -> mat -> unit) ->
mat -> unit
val iter2_rows : (mat ->
mat -> unit) ->
mat ->
mat -> unit
val draw_rows : ?replacement:bool ->
mat ->
int -> mat * int array
val draw_rows2 : ?replacement:bool ->
mat ->
mat ->
int ->
mat * mat *
int array
val of_arrays : elt array array ->
mat
val of_rows : mat array ->
mat
val to_ndarray : mat -> arr
val of_ndarray : arr -> mat
val print : mat -> unit
val max : mat -> elt
val abs : mat -> mat
val neg : mat -> mat
val floor : mat -> mat
val ceil : mat -> mat
val round : mat -> mat
val sqr : mat -> mat
val sqrt : mat -> mat
val log : mat -> mat
val log2 : mat -> mat
val log10 : mat -> mat
val exp : mat -> mat
val sin : mat -> mat
val cos : mat -> mat
val tan : mat -> mat
val sinh : mat -> mat
val cosh : mat -> mat
val tanh : mat -> mat
val asin : mat -> mat
val acos : mat -> mat
val atan : mat -> mat
val asinh : mat -> mat
val acosh : mat -> mat
val atanh : mat -> mat
val inv : mat -> mat
val trace : mat -> elt
val sum : mat -> elt
val sum_rows : mat -> mat
val signum : mat -> mat
val transpose : mat -> mat
val l1norm : mat -> elt
val l2norm : mat -> elt
val l2norm_sqr : mat -> elt
val sigmoid : mat -> mat
val relu : mat -> mat
val clip_by_l2norm : elt ->
mat -> mat
val pow : mat ->
mat -> mat
val scalar_pow : elt ->
mat -> mat
val pow_scalar : mat ->
elt -> mat
val atan2 : mat ->
mat -> mat
val scalar_atan2 : elt ->
mat -> mat
val atan2_scalar : mat ->
elt -> mat
val add : mat ->
mat -> mat
val sub : mat ->
mat -> mat
val mul : mat ->
mat -> mat
val div : mat ->
mat -> mat
val add_scalar : mat ->
elt -> mat
val sub_scalar : mat ->
elt -> mat
val mul_scalar : mat ->
elt -> mat
val div_scalar : mat ->
elt -> mat
val scalar_add : elt ->
mat -> mat
val scalar_sub : elt ->
mat -> mat
val scalar_mul : elt ->
mat -> mat
val scalar_div : elt ->
mat -> mat
val dot : mat ->
mat -> mat