sig   type mat = Gsl.Matrix_complex.matrix   type elt = Complex.t   val empty : int -> int -> Owl_dense_complex.mat   val create : int -> int -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val zeros : int -> int -> Owl_dense_complex.mat   val ones : int -> int -> Owl_dense_complex.mat   val eye : int -> Owl_dense_complex.mat   val sequential : int -> int -> Owl_dense_complex.mat   val uniform_int : ?a:int -> ?b:int -> int -> int -> Owl_dense_complex.mat   val uniform : ?scale:float -> int -> int -> Owl_dense_complex.mat   val gaussian : ?sigma:float -> int -> int -> Owl_dense_complex.mat   val vector : int -> Owl_dense_complex.mat   val vector_zeros : int -> Owl_dense_complex.mat   val vector_ones : int -> Owl_dense_complex.mat   val vector_uniform : int -> Owl_dense_complex.mat   val shape : Owl_dense_complex.mat -> int * int   val row_num : Owl_dense_complex.mat -> int   val col_num : Owl_dense_complex.mat -> int   val numel : Owl_dense_complex.mat -> int   val same_shape : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val reshape : int -> int -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val get : Owl_dense_complex.mat -> int -> int -> Owl_dense_complex.elt   val set :     Owl_dense_complex.mat -> int -> int -> Owl_dense_complex.elt -> unit   val row : Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val col : Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val rows : Owl_dense_complex.mat -> int array -> Owl_dense_complex.mat   val cols : Owl_dense_complex.mat -> int array -> Owl_dense_complex.mat   val clone : Owl_dense_complex.mat -> Owl_dense_complex.mat   val copy_to : Owl_dense_complex.mat -> Owl_dense_complex.mat -> unit   val copy_row_to :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> int -> unit   val copy_col_to :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> int -> unit   val concat_vertical :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val concat_horizontal :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val transpose : Owl_dense_complex.mat -> Owl_dense_complex.mat   val diag : Owl_dense_complex.mat -> Owl_dense_complex.mat   val trace : Owl_dense_complex.mat -> Owl_dense_complex.elt   val add_diag :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val replace_row :     Owl_dense_complex.mat ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val replace_col :     Owl_dense_complex.mat ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val swap_rows :     Owl_dense_complex.mat -> int -> int -> Owl_dense_complex.mat   val swap_cols :     Owl_dense_complex.mat -> int -> int -> Owl_dense_complex.mat   val iteri :     (int -> int -> Owl_dense_complex.elt -> unit) ->     Owl_dense_complex.mat -> unit   val iter : (Owl_dense_complex.elt -> unit) -> Owl_dense_complex.mat -> unit   val mapi :     (int -> int -> Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val map :     (Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val fold :     ('-> Owl_dense_complex.elt -> 'a) -> '-> Owl_dense_complex.mat -> 'a   val filteri :     (int -> int -> Owl_dense_complex.elt -> bool) ->     Owl_dense_complex.mat -> (int * int) array   val filter :     (Owl_dense_complex.elt -> bool) ->     Owl_dense_complex.mat -> (int * int) array   val iteri_rows :     (int -> Owl_dense_complex.mat -> unit) -> Owl_dense_complex.mat -> unit   val iter_rows :     (Owl_dense_complex.mat -> unit) -> Owl_dense_complex.mat -> unit   val iteri_cols :     (int -> Owl_dense_complex.mat -> unit) -> Owl_dense_complex.mat -> unit   val iter_cols :     (Owl_dense_complex.mat -> unit) -> Owl_dense_complex.mat -> unit   val filteri_rows :     (int -> Owl_dense_complex.mat -> bool) ->     Owl_dense_complex.mat -> int array   val filter_rows :     (Owl_dense_complex.mat -> bool) -> Owl_dense_complex.mat -> int array   val filteri_cols :     (int -> Owl_dense_complex.mat -> bool) ->     Owl_dense_complex.mat -> int array   val filter_cols :     (Owl_dense_complex.mat -> bool) -> Owl_dense_complex.mat -> int array   val fold_rows :     ('-> Owl_dense_complex.mat -> 'a) -> '-> Owl_dense_complex.mat -> 'a   val fold_cols :     ('-> Owl_dense_complex.mat -> 'a) -> '-> Owl_dense_complex.mat -> 'a   val mapi_rows :     (int -> Owl_dense_complex.mat -> 'a) -> Owl_dense_complex.mat -> 'a array   val map_rows :     (Owl_dense_complex.mat -> 'a) -> Owl_dense_complex.mat -> 'a array   val mapi_cols :     (int -> Owl_dense_complex.mat -> 'a) -> Owl_dense_complex.mat -> 'a array   val map_cols :     (Owl_dense_complex.mat -> 'a) -> Owl_dense_complex.mat -> 'a array   val mapi_by_row :     ?d:int ->     (int -> Owl_dense_complex.mat -> Owl_dense_complex.mat) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val map_by_row :     ?d:int ->     (Owl_dense_complex.mat -> Owl_dense_complex.mat) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val mapi_by_col :     ?d:int ->     (int -> Owl_dense_complex.mat -> Owl_dense_complex.mat) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val map_by_col :     ?d:int ->     (Owl_dense_complex.mat -> Owl_dense_complex.mat) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat   val mapi_at_row :     (int -> int -> Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val map_at_row :     (Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val mapi_at_col :     (int -> int -> Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val map_at_col :     (Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat   val exists :     (Owl_dense_complex.elt -> bool) -> Owl_dense_complex.mat -> bool   val not_exists :     (Owl_dense_complex.elt -> bool) -> Owl_dense_complex.mat -> bool   val for_all :     (Owl_dense_complex.elt -> bool) -> Owl_dense_complex.mat -> bool   val is_equal : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val is_unequal : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val is_greater : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val is_smaller : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val equal_or_greater :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val equal_or_smaller :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val add :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val sub :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val mul :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val div :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val dot :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val abs : Owl_dense_complex.mat -> Owl_dense_complex.mat   val abs2 : Owl_dense_complex.mat -> Owl_dense_complex.mat   val neg : Owl_dense_complex.mat -> Owl_dense_complex.mat   val power :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val add_scalar :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val sub_scalar :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val mul_scalar :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val div_scalar :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val sum : Owl_dense_complex.mat -> Owl_dense_complex.elt   val average : Owl_dense_complex.mat -> Owl_dense_complex.elt   val sum_rows : Owl_dense_complex.mat -> Owl_dense_complex.mat   val sum_cols : Owl_dense_complex.mat -> Owl_dense_complex.mat   val average_rows : Owl_dense_complex.mat -> Owl_dense_complex.mat   val average_cols : Owl_dense_complex.mat -> Owl_dense_complex.mat   val is_zero : Owl_dense_complex.mat -> bool   val is_positive : Owl_dense_complex.mat -> bool   val is_negative : Owl_dense_complex.mat -> bool   val is_nonnegative : Owl_dense_complex.mat -> bool   val log : Owl_dense_complex.mat -> Owl_dense_complex.mat   val log10 : Owl_dense_complex.mat -> Owl_dense_complex.mat   val exp : Owl_dense_complex.mat -> Owl_dense_complex.mat   val sin : Owl_dense_complex.mat -> Owl_dense_complex.mat   val cos : Owl_dense_complex.mat -> Owl_dense_complex.mat   val draw_rows :     ?replacement:bool ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat * int array   val draw_cols :     ?replacement:bool ->     Owl_dense_complex.mat -> int -> Owl_dense_complex.mat * int array   val shuffle_rows : Owl_dense_complex.mat -> Owl_dense_complex.mat   val shuffle_cols : Owl_dense_complex.mat -> Owl_dense_complex.mat   val shuffle : Owl_dense_complex.mat -> Owl_dense_complex.mat   val to_array : Owl_dense_complex.mat -> Owl_dense_complex.elt array   val to_arrays : Owl_dense_complex.mat -> Owl_dense_complex.elt array array   val of_array :     Owl_dense_complex.elt array -> int -> int -> Owl_dense_complex.mat   val of_arrays : Owl_dense_complex.elt array array -> Owl_dense_complex.mat   val save : Owl_dense_complex.mat -> string -> unit   val load : string -> Owl_dense_complex.mat   val print : Owl_dense_complex.mat -> unit   val pp_dsmat : Owl_dense_complex.mat -> unit   val re : Owl_dense_complex.mat -> Owl_dense_real.mat   val im : Owl_dense_complex.mat -> Owl_dense_real.mat   val ( +@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( -@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( *@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( /@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( $@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( **@ ) :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val ( +$ ) :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val ( -$ ) :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val ( *$ ) :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val ( /$ ) :     Owl_dense_complex.mat -> Owl_dense_complex.elt -> Owl_dense_complex.mat   val ( $+ ) :     Owl_dense_complex.elt -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( $- ) :     Owl_dense_complex.elt -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( $* ) :     Owl_dense_complex.elt -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( $/ ) :     Owl_dense_complex.elt -> Owl_dense_complex.mat -> Owl_dense_complex.mat   val ( =@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( >@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( <@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( <>@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( >=@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( <=@ ) : Owl_dense_complex.mat -> Owl_dense_complex.mat -> bool   val ( @@ ) :     (Owl_dense_complex.elt -> Owl_dense_complex.elt) ->     Owl_dense_complex.mat -> Owl_dense_complex.mat end