sig   type spmat   type elt = Complex.t   val zeros : int -> int -> Owl_sparse_complex.spmat   val ones : int -> int -> Owl_sparse_complex.spmat   val eye : int -> Owl_sparse_complex.spmat   val binary : int -> int -> Owl_sparse_complex.spmat   val uniform : ?scale:float -> int -> int -> Owl_sparse_complex.spmat   val uniform_int :     ?a:int -> ?b:int -> int -> int -> Owl_sparse_complex.spmat   val shape : Owl_sparse_complex.spmat -> int * int   val row_num : Owl_sparse_complex.spmat -> int   val col_num : Owl_sparse_complex.spmat -> int   val row_num_nz : Owl_sparse_complex.spmat -> int   val col_num_nz : Owl_sparse_complex.spmat -> int   val numel : Owl_sparse_complex.spmat -> int   val nnz : Owl_sparse_complex.spmat -> int   val nnz_rows : Owl_sparse_complex.spmat -> int array   val nnz_cols : Owl_sparse_complex.spmat -> int array   val density : Owl_sparse_complex.spmat -> float   val set :     Owl_sparse_complex.spmat -> int -> int -> Owl_sparse_complex.elt -> unit   val get : Owl_sparse_complex.spmat -> int -> int -> Owl_sparse_complex.elt   val reset : Owl_sparse_complex.spmat -> unit   val clone : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val diag : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val trace : Owl_sparse_complex.spmat -> Owl_sparse_complex.elt   val row : Owl_sparse_complex.spmat -> int -> Owl_sparse_complex.spmat   val col : Owl_sparse_complex.spmat -> int -> Owl_sparse_complex.spmat   val rows :     Owl_sparse_complex.spmat -> int array -> Owl_sparse_complex.spmat   val cols :     Owl_sparse_complex.spmat -> int array -> Owl_sparse_complex.spmat   val iteri :     (int -> int -> Owl_sparse_complex.elt -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter :     (Owl_sparse_complex.elt -> unit) -> Owl_sparse_complex.spmat -> unit   val mapi :     (int -> int -> Owl_sparse_complex.elt -> Owl_sparse_complex.elt) ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val map :     (Owl_sparse_complex.elt -> Owl_sparse_complex.elt) ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val fold :     ('-> Owl_sparse_complex.elt -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val filteri :     (int -> int -> Owl_sparse_complex.elt -> bool) ->     Owl_sparse_complex.spmat -> (int * int) array   val filter :     (Owl_sparse_complex.elt -> bool) ->     Owl_sparse_complex.spmat -> (int * int) array   val iteri_rows :     (int -> Owl_sparse_complex.spmat -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter_rows :     (Owl_sparse_complex.spmat -> unit) -> Owl_sparse_complex.spmat -> unit   val iteri_cols :     (int -> Owl_sparse_complex.spmat -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter_cols :     (Owl_sparse_complex.spmat -> unit) -> Owl_sparse_complex.spmat -> unit   val mapi_rows :     (int -> Owl_sparse_complex.spmat -> 'a) ->     Owl_sparse_complex.spmat -> 'a array   val map_rows :     (Owl_sparse_complex.spmat -> 'a) -> Owl_sparse_complex.spmat -> 'a array   val mapi_cols :     (int -> Owl_sparse_complex.spmat -> 'a) ->     Owl_sparse_complex.spmat -> 'a array   val map_cols :     (Owl_sparse_complex.spmat -> 'a) -> Owl_sparse_complex.spmat -> 'a array   val fold_rows :     ('-> Owl_sparse_complex.spmat -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val fold_cols :     ('-> Owl_sparse_complex.spmat -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val iteri_nz :     (int -> int -> Owl_sparse_complex.elt -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter_nz :     (Owl_sparse_complex.elt -> unit) -> Owl_sparse_complex.spmat -> unit   val mapi_nz :     (int -> int -> Owl_sparse_complex.elt -> Owl_sparse_complex.elt) ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val map_nz :     (Owl_sparse_complex.elt -> Owl_sparse_complex.elt) ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val fold_nz :     ('-> Owl_sparse_complex.elt -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val filteri_nz :     (int -> int -> Owl_sparse_complex.elt -> bool) ->     Owl_sparse_complex.spmat -> (int * int) array   val filter_nz :     (Owl_sparse_complex.elt -> bool) ->     Owl_sparse_complex.spmat -> (int * int) array   val iteri_rows_nz :     (int -> Owl_sparse_complex.spmat -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter_rows_nz :     (Owl_sparse_complex.spmat -> unit) -> Owl_sparse_complex.spmat -> unit   val iteri_cols_nz :     (int -> Owl_sparse_complex.spmat -> unit) ->     Owl_sparse_complex.spmat -> unit   val iter_cols_nz :     (Owl_sparse_complex.spmat -> unit) -> Owl_sparse_complex.spmat -> unit   val mapi_rows_nz :     (int -> Owl_sparse_complex.spmat -> 'a) ->     Owl_sparse_complex.spmat -> 'a array   val map_rows_nz :     (Owl_sparse_complex.spmat -> 'a) -> Owl_sparse_complex.spmat -> 'a array   val mapi_cols_nz :     (int -> Owl_sparse_complex.spmat -> 'a) ->     Owl_sparse_complex.spmat -> 'a array   val map_cols_nz :     (Owl_sparse_complex.spmat -> 'a) -> Owl_sparse_complex.spmat -> 'a array   val fold_rows_nz :     ('-> Owl_sparse_complex.spmat -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val fold_cols_nz :     ('-> Owl_sparse_complex.spmat -> 'a) ->     '-> Owl_sparse_complex.spmat -> 'a   val exists :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val not_exists :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val for_all :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val exists_nz :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val not_exists_nz :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val for_all_nz :     (Owl_sparse_complex.elt -> bool) -> Owl_sparse_complex.spmat -> bool   val mul_scalar :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val div_scalar :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val add :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val sub :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val mul :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val div :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val dot :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val abs : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val neg : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val sum : Owl_sparse_complex.spmat -> Owl_sparse_complex.elt   val average : Owl_sparse_complex.spmat -> Owl_sparse_complex.elt   val power :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val is_zero : Owl_sparse_complex.spmat -> bool   val is_positive : Owl_sparse_complex.spmat -> bool   val is_negative : Owl_sparse_complex.spmat -> bool   val is_nonnegative : Owl_sparse_complex.spmat -> bool   val min : Owl_sparse_complex.spmat -> Owl_sparse_complex.elt   val max : Owl_sparse_complex.spmat -> Owl_sparse_complex.elt   val minmax :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt * Owl_sparse_complex.elt   val sum_rows : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val sum_cols : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val average_rows : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val average_cols : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val is_equal : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val is_unequal :     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val is_greater :     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val is_smaller :     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val equal_or_greater :     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val equal_or_smaller :     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val permutation_matrix : int -> Owl_sparse_complex.spmat   val draw_rows :     ?replacement:bool ->     Owl_sparse_complex.spmat -> int -> Owl_sparse_complex.spmat * int array   val draw_cols :     ?replacement:bool ->     Owl_sparse_complex.spmat -> int -> Owl_sparse_complex.spmat * int array   val shuffle_rows : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val shuffle_cols : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val shuffle : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val to_dense : Owl_sparse_complex.spmat -> Owl_dense_complex.mat   val of_dense : Owl_dense_complex.mat -> Owl_sparse_complex.spmat   val print : Owl_sparse_complex.spmat -> unit   val pp_spmat : Owl_sparse_complex.spmat -> unit   val save : Owl_sparse_complex.spmat -> string -> unit   val load : string -> Owl_sparse_complex.spmat   val ( +@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( -@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( *@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( /@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( $@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( **@ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val ( *$ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val ( /$ ) :     Owl_sparse_complex.spmat ->     Owl_sparse_complex.elt -> Owl_sparse_complex.spmat   val ( $* ) :     Owl_sparse_complex.elt ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( $/ ) :     Owl_sparse_complex.elt ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val ( =@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( >@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( <@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( <>@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( >=@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( <=@ ) : Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat -> bool   val ( @@ ) :     (Owl_sparse_complex.elt -> Owl_sparse_complex.elt) ->     Owl_sparse_complex.spmat -> Owl_sparse_complex.spmat   val _triplet2crs : Owl_sparse_complex.spmat -> unit end