Crate lax

source · []
Expand description

Linear Algebra eXtension (LAX)

ndarray-free safe Rust wrapper for LAPACK FFI

Linear equation, Inverse matrix, Condition number

As the property of $A$, several types of triangular factorization are used:

  • LU-decomposition for general matrix
    • $PA = LU$, where $L$ is lower matrix, $U$ is upper matrix, and $P$ is permutation matrix
  • Bunch-Kaufman diagonal pivoting method for nonpositive-definite Hermitian matrix
    • $A = U D U^\dagger$, where $U$ is upper matrix, $D$ is Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
matrix typeTriangler factorization (TRF)Solve (TRS)Inverse matrix (TRI)Reciprocal condition number (CON)
General (GE)lusolveinvrcond
Symmetric (SY) / Hermitian (HE)bksolvehinvh-

Eigenvalue Problem

Solve eigenvalue problem for a matrix $A$

$$ Av_i = \lambda_i v_i $$

or generalized eigenvalue problem

$$ Av_i = \lambda_i B v_i $$

matrix typeEigenvalue (EV)Generalized Eigenvalue Problem (EG)
General (GE)eig-
Symmetric (SY) / Hermitian (HE)eigheigh_generalized

Singular Value Decomposition (SVD), Least square problem

matrix typeSingular Value Decomposition (SVD)SVD with divided-and-conquer (SDD)Least square problem (LSD)
General (GE)svdsvddcleast_squares


Memory layout of matrices


Represents the LU factorization of a tridiagonal matrix A as A = P*L*U.

Result of LeastSquares

Result of SVD

Represents a tridiagonal matrix as 3 one-dimensional vectors.


Upper/Lower specification for seveal usages

Specifies how many of the columns of U and rows of Vᵀ are computed and returned.


Wraps *geev for general matrices

Trait for primitive types which implements LAPACK subroutines

Wraps *gesvd

Wraps *trtri and *trtrs

Wraps *gttrf, *gtcon and *gttrs

Type Definitions