Module Owl_linalg_s

type elt = float
type complex_mat = Owl_dense_matrix_c.mat
type int32_mat = (int32, Stdlib.Bigarray.int32_elt) Owl_dense_matrix_generic.t
include Owl_linalg_intf.Common with type elt := elt and type mat := mat and type complex_mat := complex_mat and type int32_mat := int32_mat
include Owl_base_linalg_intf.Common with type elt := elt with type mat := mat with type complex_mat := complex_mat with type int32_mat := int32_mat
Basic functions
val inv : mat -> mat
val det : mat -> elt
val logdet : mat -> elt
val is_triu : mat -> bool
val is_tril : mat -> bool
val is_symmetric : mat -> bool
val is_diag : mat -> bool
Factorisation
val svd : ?thin:bool -> mat -> mat * mat * mat
val chol : ?upper:bool -> mat -> mat
val qr : ?thin:bool -> ?pivot:bool -> mat -> mat * mat * int32_mat
val lq : ?thin:bool -> mat -> mat * mat
Linear system of equations
val linsolve : ?trans:bool -> ?typ:[ `n | `u | `l ] -> mat -> mat -> mat
val sylvester : mat -> mat -> mat -> mat
val lyapunov : mat -> mat -> mat
val discrete_lyapunov : ?solver:[ `default | `direct | `bilinear ] -> mat -> mat -> mat
Basic functions
val pinv : ?tol:float -> mat -> mat
val rank : ?tol:float -> mat -> int
val norm : ?p:float -> mat -> float
val vecnorm : ?p:float -> mat -> float
val cond : ?p:float -> mat -> float
val rcond : mat -> float
val is_posdef : mat -> bool
Factorisation
val lu : mat -> mat * mat * int32_mat
val svdvals : mat -> mat
val gsvd : mat -> mat -> mat * mat * mat * mat * mat * mat
val gsvdvals : mat -> mat -> mat
val schur : mat -> mat * mat * complex_mat
val schur_tz : mat -> mat * mat
val ordschur : select:int32_mat -> mat -> mat -> mat * mat * complex_mat
val qz : mat -> mat -> mat * mat * mat * mat * complex_mat
val ordqz : select:int32_mat -> mat -> mat -> mat -> mat -> mat * mat * mat * mat * complex_mat
val qzvals : mat -> mat -> complex_mat
val hess : mat -> mat * mat
Eigenvalues & eigenvectors
val eig : ?permute:bool -> ?scale:bool -> mat -> complex_mat * complex_mat
val eigvals : ?permute:bool -> ?scale:bool -> mat -> complex_mat
Linear system of equations
val null : mat -> mat
val triangular_solve : upper:bool -> ?trans:bool -> mat -> mat -> mat
val linreg : mat -> mat -> elt * elt
Low-level factorisation functions
val lufact : mat -> mat * int32_mat
val qrfact : ?pivot:bool -> mat -> mat * mat * int32_mat
val bkfact : ?upper:bool -> ?symmetric:bool -> ?rook:bool -> mat -> mat * int32_mat
Matrix functions
val mpow : mat -> float -> mat
val expm : mat -> mat
val sinm : mat -> mat
val cosm : mat -> mat
val tanm : mat -> mat
val sincosm : mat -> mat * mat
val sinhm : mat -> mat
val coshm : mat -> mat
val tanhm : mat -> mat
val sinhcoshm : mat -> mat * mat
Helper functions
val select_ev : [ `LHP | `RHP | `UDI | `UDO ] -> mat -> int32_mat
val peakflops : ?n:int -> unit -> float
include Owl_linalg_intf.Real with type mat := mat and type elt := elt
include Owl_base_linalg_intf.Real with type mat := mat with type elt := elt
val care : ?diag_r:bool -> mat -> mat -> mat -> mat -> mat
val dare : ?diag_r:bool -> mat -> mat -> mat -> mat -> mat