Module Owl_sparse_matrix_s
Create sparse matrices
val zeros : int -> int -> mat
val ones : int -> int -> mat
val binary : int -> int -> mat
val sequential : int -> int -> mat
Obtain the basic properties of a matrix
val shape : mat -> int * int
val row_num_nz : mat -> int
val col_num_nz : mat -> int
val nnz_rows : mat -> int array
val nnz_cols : mat -> int array
val density : mat -> float
Manipulate a matrix
val insert : mat -> int -> int -> elt -> unit
val get : mat -> int -> int -> elt
val set : mat -> int -> int -> elt -> unit
val rows : mat -> int array -> mat
val cols : mat -> int array -> mat
val prune : mat -> elt -> float -> unit
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 iteri_cols : ( int -> mat -> unit ) -> mat -> unit
val iter_cols : ( mat -> unit ) -> mat -> unit
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 fold_rows : ( 'a -> mat -> 'a ) -> 'a -> mat -> 'a
val fold_cols : ( 'a -> mat -> 'a ) -> 'a -> mat -> 'a
val iteri_nz : ( int -> int -> elt -> unit ) -> mat -> unit
val iter_nz : ( elt -> unit ) -> mat -> unit
val foldi_nz : ( int -> int -> 'a -> elt -> 'a ) -> 'a -> mat -> 'a
val fold_nz : ( 'a -> elt -> 'a ) -> 'a -> mat -> 'a
val filteri_nz : ( int -> int -> elt -> bool ) -> mat -> (int * int) array
val filter_nz : ( elt -> bool ) -> mat -> (int * int) array
val iteri_rows_nz : ( int -> mat -> unit ) -> mat -> unit
val iter_rows_nz : ( mat -> unit ) -> mat -> unit
val iteri_cols_nz : ( int -> mat -> unit ) -> mat -> unit
val iter_cols_nz : ( mat -> unit ) -> mat -> unit
val mapi_rows_nz : ( int -> mat -> 'a ) -> mat -> 'a array
val map_rows_nz : ( mat -> 'a ) -> mat -> 'a array
val mapi_cols_nz : ( int -> mat -> 'a ) -> mat -> 'a array
val map_cols_nz : ( mat -> 'a ) -> mat -> 'a array
val fold_rows_nz : ( 'a -> mat -> 'a ) -> 'a -> mat -> 'a
val fold_cols_nz : ( 'a -> mat -> 'a ) -> 'a -> mat -> 'a
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 exists_nz : ( elt -> bool ) -> mat -> bool
val not_exists_nz : ( elt -> bool ) -> mat -> bool
val for_all_nz : ( elt -> bool ) -> mat -> bool
val is_zero : mat -> bool
val is_positive : mat -> bool
val is_negative : mat -> bool
val is_nonnegative : 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
Randomisation functions
val permutation_matrix : int -> mat
val draw_rows : ?replacement:bool -> mat -> int -> mat * int array
val draw_cols : ?replacement:bool -> mat -> int -> mat * int array
val to_array : mat -> (int array * elt) array
val of_array : int -> int -> (int array * elt) array -> mat
val save : mat -> string -> unit
Unary mathematical operations
Binary mathematical operations
val mpow : mat -> float -> mat