include Owl_dense_matrix_s
Create dense matrices
val empty : int ‑> int ‑> mat
val create : int ‑> int ‑> elt ‑> mat
val init : int ‑> int ‑> (int ‑> elt) ‑> mat
val init_nd : 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 : ?sigma:float ‑> int ‑> int ‑> mat
val bernoulli : ?p:float ‑> ?seed:int ‑> 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
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_simple : int list list ‑> mat ‑> mat
val set_slice_simple : 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_to : mat ‑> mat ‑> unit
val copy_row_to : mat ‑> mat ‑> int ‑> unit
val copy_col_to : mat ‑> mat ‑> int ‑> unit
val concatenate : ?axis:int ‑> mat array ‑> mat
val split : ?axis:int ‑> int array ‑> mat ‑> mat 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 : ?axis:int ‑> mat ‑> int ‑> mat
val pad : ?v:elt ‑> int list list ‑> mat ‑> mat
val dropout : ?rate:float ‑> ?seed:int ‑> mat ‑> mat
val top : mat ‑> int ‑> int array array
val bottom : mat ‑> int ‑> int array array
Iterate elements, columns, and rows.
val iteri : (int ‑> int ‑> elt ‑> unit) ‑> mat ‑> unit
val iter : (elt ‑> unit) ‑> mat ‑> unit
val foldi : (int ‑> int ‑> 'a ‑> elt ‑> 'a) ‑> 'a ‑> mat ‑> 'a
val fold : ('a ‑> elt ‑> 'a) ‑> 'a ‑> mat ‑> 'a
val filteri : (int ‑> int ‑> elt ‑> bool) ‑> mat ‑> (int * int) array
val filter : (elt ‑> bool) ‑> mat ‑> (int * int) array
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
val mapi_at_row : (int ‑> int ‑> elt ‑> elt) ‑> mat ‑> int ‑> mat
val mapi_at_col : (int ‑> int ‑> elt ‑> elt) ‑> mat ‑> int ‑> mat
Examin 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
Input/Output and helper functions
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 : mat ‑> string ‑> unit
val save_txt : mat ‑> string ‑> unit
val load_txt : string ‑> mat
Unary mathematical operations
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 ‑> mat ‑> mat
val prod : ?axis:int option array ‑> mat ‑> elt
val min_rows : mat ‑> (elt * int * int) array
val min_cols : mat ‑> (elt * int * int) array
val max_rows : mat ‑> (elt * int * int) array
val max_cols : mat ‑> (elt * int * int) array
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 var : ?axis:int ‑> mat ‑> mat
val std : ?axis:int ‑> mat ‑> mat
Binary mathematical operations