Module type Owl_dense_matrix_intf.Common
Create dense matrices
val empty : int -> int -> mat
val create : int -> int -> elt -> mat
val init : int -> int -> (int -> elt) -> mat
val init_2d : int -> int -> (int -> int -> elt) -> mat
val zeros : int -> int -> mat
val ones : int -> int -> mat
val sequential : ?a:elt -> ?step:elt -> int -> int -> mat
val gaussian : ?mu:elt -> ?sigma:elt -> int -> int -> mat
val bernoulli : ?p:float -> int -> int -> mat
val unit_basis : int -> int -> mat
val diagm : ?k:int -> mat -> mat
val triu : ?k:int -> mat -> mat
val tril : ?k:int -> mat -> mat
val symmetric : ?upper:bool -> mat -> mat
val bidiagonal : ?upper:bool -> mat -> mat -> mat
val hadamard : int -> mat
Dense row vectors and meshgrids
val vector_zeros : int -> mat
val vector_ones : int -> mat
val logspace : ?base:float -> elt -> elt -> int -> mat
Obtain the basic properties of a matrix
val shape : mat -> int * int
val density : mat -> float
val size_in_bytes : mat -> int
val same_shape : mat -> mat -> bool
val same_data : mat -> mat -> bool
Manipulate a matrix
val get : mat -> int -> int -> elt
val set : mat -> int -> int -> elt -> unit
val get_index : mat -> int array array -> elt array
val set_index : mat -> int array array -> elt array -> unit
val get_slice : int list list -> mat -> mat
val set_slice : int list list -> mat -> mat -> unit
val rows : mat -> int array -> mat
val cols : mat -> int array -> mat
val resize : ?head:bool -> mat -> int array -> mat
val reshape : mat -> int array -> mat
val flip : ?axis:int -> mat -> mat
val rotate : mat -> int -> mat
val copy_row_to : mat -> mat -> int -> unit
val copy_col_to : mat -> mat -> int -> unit
val concat_vh : mat array array -> mat
val concatenate : ?axis:int -> mat array -> mat
val split : ?axis:int -> int array -> mat -> mat array
val split_vh : (int * int) array array -> mat -> mat array array
val diag : ?k:int -> mat -> mat
val swap_rows : mat -> int -> int -> unit
val swap_cols : mat -> int -> int -> unit
val tile : mat -> int array -> mat
val repeat : mat -> int array -> mat
val pad : ?v:elt -> int list list -> mat -> mat
val dropout : ?rate:float -> mat -> mat
val top : mat -> int -> int array array
val bottom : mat -> int -> int array array
val argsort :
mat ->
(int64, Stdlib.Bigarray.int64_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Genarray.t
Iterate elements, columns, and rows.
val iteri : (int -> elt -> unit) -> mat -> unit
val iter : (elt -> unit) -> mat -> unit
val filteri : (int -> elt -> bool) -> mat -> int array
val filter : (elt -> bool) -> mat -> int array
val iteri_2d : (int -> int -> elt -> unit) -> mat -> unit
val scani_2d : ?axis:int -> (int -> int -> elt -> elt -> elt) -> mat -> mat
val filteri_2d : (int -> int -> elt -> bool) -> mat -> (int * int) array
val iter2i_2d : (int -> int -> elt -> elt -> unit) -> mat -> mat -> unit
val iter2i : (int -> elt -> elt -> unit) -> mat -> mat -> unit
val iteri_rows : (int -> mat -> unit) -> mat -> unit
val iter_rows : (mat -> unit) -> mat -> unit
val iter2i_rows : (int -> mat -> mat -> unit) -> mat -> mat -> unit
val iteri_cols : (int -> mat -> unit) -> mat -> unit
val iter_cols : (mat -> unit) -> mat -> unit
val filteri_rows : (int -> mat -> bool) -> mat -> int array
val filter_rows : (mat -> bool) -> mat -> int array
val filteri_cols : (int -> mat -> bool) -> mat -> int array
val filter_cols : (mat -> bool) -> mat -> int array
val fold_rows : ('a -> mat -> 'a) -> 'a -> mat -> 'a
val fold_cols : ('a -> mat -> 'a) -> 'a -> mat -> 'a
val mapi_rows : (int -> mat -> 'a) -> mat -> 'a array
val map_rows : (mat -> 'a) -> mat -> 'a array
val mapi_cols : (int -> mat -> 'a) -> mat -> 'a array
val map_cols : (mat -> 'a) -> mat -> 'a array
Examine elements and compare two matrices
val exists : (elt -> bool) -> mat -> bool
val not_exists : (elt -> bool) -> mat -> bool
val for_all : (elt -> bool) -> mat -> bool
val is_zero : mat -> bool
val is_positive : mat -> bool
val is_negative : mat -> bool
val is_nonpositive : mat -> bool
val is_nonnegative : mat -> bool
val is_normal : mat -> bool
val not_nan : mat -> bool
val not_inf : mat -> bool
val equal : mat -> mat -> bool
val not_equal : mat -> mat -> bool
val greater : mat -> mat -> bool
val greater_equal : mat -> mat -> bool
val less_equal : mat -> mat -> bool
val equal_scalar : mat -> elt -> bool
val not_equal_scalar : mat -> elt -> bool
val less_scalar : mat -> elt -> bool
val greater_scalar : mat -> elt -> bool
val less_equal_scalar : mat -> elt -> bool
val greater_equal_scalar : mat -> elt -> bool
val elt_less_equal_scalar : mat -> elt -> mat
val elt_greater_equal_scalar : mat -> elt -> mat
val approx_equal : ?eps:float -> mat -> mat -> bool
val approx_equal_scalar : ?eps:float -> mat -> elt -> bool
val approx_elt_equal : ?eps:float -> mat -> mat -> mat
val approx_elt_equal_scalar : ?eps:float -> mat -> elt -> mat
Randomisation functions
val draw_rows : ?replacement:bool -> mat -> int -> mat * int array
val draw_cols : ?replacement:bool -> mat -> int -> mat * int array
val draw_rows2 :
?replacement:bool ->
mat ->
mat ->
int ->
mat * mat * int array
val draw_cols2 :
?replacement:bool ->
mat ->
mat ->
int ->
mat * mat * int array
val to_array : mat -> elt array
val of_array : elt array -> int -> int -> mat
val to_arrays : mat -> elt array array
val of_arrays : elt array array -> mat
val to_rows : mat -> mat array
val of_rows : mat array -> mat
val to_cols : mat -> mat array
val of_cols : mat array -> mat
val print :
?max_row:int ->
?max_col:int ->
?header:bool ->
?fmt:(elt -> string) ->
mat ->
unit
val save : out:string -> mat -> unit
val save_txt : ?sep:string -> ?append:bool -> out:string -> mat -> unit
val load_txt : ?sep:string -> string -> mat
val save_npy : out:string -> mat -> unit
val load_npy : string -> mat
Unary mathematical operations
val min : ?axis:int -> ?keep_dims:bool -> mat -> mat
val max : ?axis:int -> ?keep_dims:bool -> mat -> mat
val minmax : ?axis:int -> ?keep_dims:bool -> mat -> mat * mat
val min_i : mat -> elt * int array
val max_i : mat -> elt * int array
val minmax_i : mat -> (elt * int array) * (elt * int array)
val sum : ?axis:int -> ?keep_dims:bool -> mat -> mat
val prod : ?axis:int -> ?keep_dims:bool -> mat -> mat
val mean : ?axis:int -> ?keep_dims:bool -> mat -> mat
val sem : ?axis:int -> ?keep_dims:bool -> mat -> mat
val sum_rows : ?keep_dims:bool -> mat -> mat
val sum_cols : ?keep_dims:bool -> mat -> mat
val mean_rows : ?keep_dims:bool -> mat -> mat
val mean_cols : ?keep_dims:bool -> mat -> mat
val l1norm : ?axis:int -> ?keep_dims:bool -> mat -> mat
val l2norm : ?axis:int -> ?keep_dims:bool -> mat -> mat
val l2norm_sqr : ?axis:int -> ?keep_dims:bool -> mat -> mat
val vecnorm : ?axis:int -> ?p:float -> ?keep_dims:bool -> mat -> mat
val vecnorm' : ?p:float -> mat -> elt
val cumsum : ?axis:int -> mat -> mat
val cumprod : ?axis:int -> mat -> mat
val cummin : ?axis:int -> mat -> mat
val cummax : ?axis:int -> mat -> mat
val diff : ?axis:int -> ?n:int -> mat -> mat
val var : ?axis:int -> ?keep_dims:bool -> mat -> mat
val std : ?axis:int -> ?keep_dims:bool -> mat -> mat
Binary mathematical operations
Functions of in-place modification
val create_ : out:mat -> elt -> unit
val bernoulli_ : ?p:float -> out:mat -> unit
val zeros_ : out:mat -> unit
val ones_ : out:mat -> unit
val one_hot_ : out:mat -> int -> mat -> unit
val copy_ : out:mat -> mat -> unit
val reshape_ : out:mat -> mat -> unit
val transpose_ : out:mat -> ?axis:int array -> mat -> unit
val sum_ : out:mat -> axis:int -> mat -> unit
val min_ : out:mat -> axis:int -> mat -> unit
val max_ : out:mat -> axis:int -> mat -> unit
val add_scalar_ : ?out:mat -> mat -> elt -> unit
val sub_scalar_ : ?out:mat -> mat -> elt -> unit
val mul_scalar_ : ?out:mat -> mat -> elt -> unit
val div_scalar_ : ?out:mat -> mat -> elt -> unit
val pow_scalar_ : ?out:mat -> mat -> elt -> unit
val atan2_scalar_ : ?out:mat -> mat -> elt -> unit
val fmod_scalar_ : ?out:mat -> mat -> elt -> unit
val scalar_add_ : ?out:mat -> elt -> mat -> unit
val scalar_sub_ : ?out:mat -> elt -> mat -> unit
val scalar_mul_ : ?out:mat -> elt -> mat -> unit
val scalar_div_ : ?out:mat -> elt -> mat -> unit
val scalar_pow_ : ?out:mat -> elt -> mat -> unit
val scalar_atan2_ : ?out:mat -> elt -> mat -> unit
val scalar_fmod_ : ?out:mat -> elt -> mat -> unit
val dot_ :
?transa:bool ->
?transb:bool ->
?alpha:elt ->
?beta:elt ->
c:mat ->
mat ->
mat ->
unit
val conj_ : ?out:mat -> mat -> unit
val abs_ : ?out:mat -> mat -> unit
val neg_ : ?out:mat -> mat -> unit
val reci_ : ?out:mat -> mat -> unit
val signum_ : ?out:mat -> mat -> unit
val sqr_ : ?out:mat -> mat -> unit
val sqrt_ : ?out:mat -> mat -> unit
val cbrt_ : ?out:mat -> mat -> unit
val exp_ : ?out:mat -> mat -> unit
val exp2_ : ?out:mat -> mat -> unit
val exp10_ : ?out:mat -> mat -> unit
val expm1_ : ?out:mat -> mat -> unit
val log_ : ?out:mat -> mat -> unit
val log2_ : ?out:mat -> mat -> unit
val log10_ : ?out:mat -> mat -> unit
val log1p_ : ?out:mat -> mat -> unit
val sin_ : ?out:mat -> mat -> unit
val cos_ : ?out:mat -> mat -> unit
val tan_ : ?out:mat -> mat -> unit
val asin_ : ?out:mat -> mat -> unit
val acos_ : ?out:mat -> mat -> unit
val atan_ : ?out:mat -> mat -> unit
val sinh_ : ?out:mat -> mat -> unit
val cosh_ : ?out:mat -> mat -> unit
val tanh_ : ?out:mat -> mat -> unit
val asinh_ : ?out:mat -> mat -> unit
val acosh_ : ?out:mat -> mat -> unit
val atanh_ : ?out:mat -> mat -> unit
val floor_ : ?out:mat -> mat -> unit
val ceil_ : ?out:mat -> mat -> unit
val round_ : ?out:mat -> mat -> unit
val trunc_ : ?out:mat -> mat -> unit
val fix_ : ?out:mat -> mat -> unit
val erf_ : ?out:mat -> mat -> unit
val erfc_ : ?out:mat -> mat -> unit
val relu_ : ?out:mat -> mat -> unit
val softplus_ : ?out:mat -> mat -> unit
val softsign_ : ?out:mat -> mat -> unit
val sigmoid_ : ?out:mat -> mat -> unit
val softmax_ : ?out:mat -> ?axis:int -> mat -> unit
val cumsum_ : ?out:mat -> ?axis:int -> mat -> unit
val cumprod_ : ?out:mat -> ?axis:int -> mat -> unit
val cummin_ : ?out:mat -> ?axis:int -> mat -> unit
val cummax_ : ?out:mat -> ?axis:int -> mat -> unit
val dropout_ : ?out:mat -> ?rate:float -> mat -> unit
val elt_equal_ : ?out:mat -> mat -> mat -> unit
val elt_not_equal_ : ?out:mat -> mat -> mat -> unit
val elt_less_ : ?out:mat -> mat -> mat -> unit
val elt_greater_ : ?out:mat -> mat -> mat -> unit
val elt_less_equal_ : ?out:mat -> mat -> mat -> unit
val elt_greater_equal_ : ?out:mat -> mat -> mat -> unit
val elt_equal_scalar_ : ?out:mat -> mat -> elt -> unit
val elt_not_equal_scalar_ : ?out:mat -> mat -> elt -> unit
val elt_less_scalar_ : ?out:mat -> mat -> elt -> unit
val elt_greater_scalar_ : ?out:mat -> mat -> elt -> unit
val elt_less_equal_scalar_ : ?out:mat -> mat -> elt -> unit
val elt_greater_equal_scalar_ : ?out:mat -> mat -> elt -> unit