Module Owl_base_linalg_generic

Types and constants
type ('a, 'b) t = ( 'a, 'b ) Owl_base_dense_ndarray_generic.t
Basic functions
val inv : ( 'a, 'b ) t -> ( 'a, 'b ) t

inv x calculates the inverse of an invertible square matrix x such that x *@ x = I wherein I is an identity matrix. (If x is singular, inv will return a useless result.)

val det : ( 'a, 'b ) t -> 'a

det x computes the determinant of a square matrix x.

val logdet : ( 'a, 'b ) t -> 'a

Refer to :doc:`owl_dense_matrix_generic`

Check matrix types
val is_tril : ( 'a, 'b ) t -> bool

is_tril x returns true if x is lower triangular otherwise false.

val is_triu : ( 'a, 'b ) t -> bool

is_triu x returns true if x is upper triangular otherwise false.

val is_diag : ( 'a, 'b ) t -> bool

is_diag x returns true if x is diagonal otherwise false.

val is_symmetric : ( 'a, 'b ) t -> bool

is_symmetric x returns true if x is symmetric otherwise false.

val is_hermitian : ( Stdlib.Complex.t, 'b ) t -> bool

is_hermitian x returns true if x is hermitian otherwise false.

Factorisation
val lu : ( 'a, 'b ) t -> ( 'a, 'b ) t * ( 'a, 'b ) t * int array

lu x -> (l, u, ipiv) calculates LU decomposition of x. The pivoting is used by default.

val qr : ?thin:bool -> ?pivot:bool -> ( 'a, 'b ) t -> ( 'a, 'b ) t * ( 'a, 'b ) t * ( int32, Stdlib.Bigarray.int32_elt ) t

Refer to :doc:`owl_dense_matrix_generic`

val lq : ?thin:bool -> ( 'a, 'b ) t -> ( 'a, 'b ) t * ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val svd : ?thin:bool -> ( 'a, 'b ) t -> ( 'a, 'b ) t * ( 'a, 'b ) t * ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val chol : ?upper:bool -> ( 'a, 'b ) t -> ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

Linear system of equations
val linsolve : ?trans:bool -> ?typ:[ `n | `u | `l ] -> ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val sylvester : ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val lyapunov : ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val discrete_lyapunov : ?solver:[ `default | `bilinear | `direct ] -> ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val care : ?diag_r:bool -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

val dare : ?diag_r:bool -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t -> ( float, 'b ) t

Refer to :doc:`owl_dense_matrix_generic`

Non-standard functions
val linsolve_lu : ( 'a, 'b ) t -> ( 'a, 'b ) t -> ( 'a, 'b ) t
val linsolve_gauss : ( float, 'a ) t -> ( float, 'b ) t -> ( float, 'a ) t * ( float, 'b ) t
val tridiag_solve_vec : float array -> float array -> float array -> float array -> float array