Up — package owl Module Owl_dense_matrix_c Complex dense matrix module: this module supports operations on dense
matrices of complex numbers. The complex number has a record type of
{re = float; im = float}
.
This page only contains detailed explanations for the operations specific to
Dense.Complex module. Most of the other operations are the same to those in
Dense.Real module, therefore please refer to the documentation of Dense.Real
for more information.
Create dense matrices
val empty : int ‑> int ‑> mat
val init : int ‑> int ‑> (int ‑> elt ) ‑> mat
val init_nd : int ‑> int ‑> (int ‑> int ‑> elt ) ‑> mat
val create : 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 hermitian : ?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
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 l1norm : mat ‑> float
val l2norm : mat ‑> float
val l2norm_sqr : mat ‑> float
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