type t = {rows : int;cols : int;data : float array;
}val create : int -> int -> tval init : int -> int -> (int -> int -> float) -> tval of_lists : float list list -> tval to_lists : t -> float list listval random : seed:int -> ?spread:float -> int -> int -> tval vector : float array -> tval to_vector : t -> float arrayval get : t -> int -> int -> floatval set : t -> int -> int -> float -> unitval row : t -> int -> float arrayval same_shape : t -> t -> boolval scale : float -> t -> tval map : (float -> float) -> t -> tval map2 : (float -> float -> float) -> t -> t -> tval mul_simple : t -> t -> tval mul_fast : t -> t -> tval fast : bool Stdlib.ref