Module Algebra.Matrix

Operations on matrices.

type nonrec t = {
  1. rows : int;
    (*

    Number of rows.

    *)
  2. cols : int;
    (*

    Number of columns.

    *)
  3. vector : Vector.t;
    (*

    Underlying vector.

    *)
}

A matrix.

val cols : t -> int
val rows : t -> int
val src : t -> int
val tgt : t -> int
val get : t -> int -> int -> float

get a j i returns the entry in row j and column i.

val add : t -> t -> t
val add_list : t list -> t
val sub : t -> t -> t
val cmul : float -> t -> t
val app : t -> Vector.t -> Vector.t

Apply a matrix to a vector.

val init : int -> int -> (int -> int -> float) -> t

Initialize a matrix.

val zero : int -> int -> t

Zero matrix.

val uniform : ?min:float -> ?max:float -> int -> int -> t

Random matrix.

val transpose : t -> t
val tapp : t -> Vector.t -> Vector.t

Apply the transpose of a matrix to a vector.

val map : (float -> float) -> t -> t
val mapi : (int -> int -> float -> float) -> t -> t
val map2 : (float -> float -> float) -> t -> t -> t

Map a function to two matrices of the same size.