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