module Owl_linalg:sig..end
Currently, Linalg module only supports dense matrix. The support for sparse
matrices will be provided very soon.
typemat_d =Owl_dense_matrix_d.mat
typemat_z =Owl_dense_matrix_z.mat
type('a, 'b)t =('a, 'b) Owl_dense_matrix_generic.t
val inv : mat_d -> mat_dP A = L U where P is a permutation matrix, L is unit
lower triangular matrix and U is upper triangular matrix. For square matrices
this decomposition can be used to convert the linear system A x = b into a
pair of triangular systems (L y = P b, U x = y), which can be solved by
forward and back-substitution. Note that the LU decomposition is valid for
singular matrices.val det : mat_d -> floatdet x computes the determinant of a matrix x from its LU decomposition.val qr : mat_d -> mat_d * mat_dqr x calculates QR decomposition for an m by n matrix x as
x = Q R. Q is an m by m square matrix (where Q^T Q = I) and R is
an m by n right-triangular matrix.val qr_sqsolve : mat_d -> mat_d -> mat_d
val qr_lssolve : mat_d -> mat_d -> mat_d * mat_d
val svd : mat_d -> mat_d * mat_d * mat_dsvd x calculates the singular value decomposition of x, and returns a
tuple (u,s,v). u is an m by n orthogonal matrix, s an n by 1
matrix of singular values, and v is the transpose of an n by n
orthogonal square matrix.val cholesky : mat_d -> mat_d
val is_posdef : mat_d -> boolis_posdef x checks whether x is a positive semi-definite matrix.val symmtd : mat_d -> mat_d * mat_d * mat_d
val bidiag : mat_d ->
mat_d * mat_d * mat_d * mat_d
val tridiag_solve : mat_d -> mat_d -> mat_d
val symm_tridiag_solve : mat_d -> mat_d -> mat_dval eigen_symm : mat_d -> mat_d
val eigen_symmv : mat_d -> mat_d * mat_d
val eigen_nonsymm : mat_d -> mat_z
val eigen_nonsymmv : mat_d -> mat_z * mat_z
val eigen_herm : mat_z -> mat_d
val eigen_hermv : mat_z -> mat_d * mat_z