GitHub
deepbox/linalg

Decompositions

Classical and advanced decompositions including eigensolvers, Schur, Hessenberg, polar, and SVD.
Factorizations
type EigOptions
export type EigOptions = { readonly maxIter?: number; readonly tol?: number; };
Compute eigenvalues and eigenvectors of a square matrix.
cholesky
export declare function cholesky(a: Tensor): Tensor;

Cholesky decomposition.

eig
export declare function eig(a: Tensor, options?: EigOptions): [Tensor, Tensor];

eig is exported by deepbox/linalg.

eigh
export declare function eigh(a: Tensor): [Tensor, Tensor];

Compute eigenvalues and eigenvectors of a symmetric/Hermitian matrix.

eigvals
export declare function eigvals(a: Tensor, options?: EigOptions): Tensor;

Compute eigenvalues only (faster than eig).

eigvalsh
export declare function eigvalsh(a: Tensor): Tensor;

Compute eigenvalues only of symmetric matrix (faster than eigh).

hessenberg
export declare function hessenberg(a: Tensor): [Tensor, Tensor];

Upper Hessenberg decomposition of a square matrix.

lu
export declare function lu(a: Tensor): [Tensor, Tensor, Tensor];

LU decomposition with partial pivoting.

polar
export declare function polar(a: Tensor, side?: "right" | "left"): [Tensor, Tensor];

Polar decomposition of a matrix.

qr
export declare function qr(a: Tensor, mode?: "reduced" | "complete"): [Tensor, Tensor];

QR decomposition.

schur
export declare function schur(a: Tensor): [Tensor, Tensor];

Real Schur decomposition of a square matrix.

svd
export declare function svd(a: Tensor, fullMatrices?: boolean): [Tensor, Tensor, Tensor];

svd is exported by deepbox/linalg.

svdvals
export declare function svdvals(a: Tensor): Tensor;

Singular values of `a` only (no U/V).

linalg-decompositions.ts
import { eig, hessenberg, polar, qr, schur, svd } from "deepbox/linalg";import { tensor } from "deepbox/ndarray";const a = tensor([  [4, 1],  [2, 3],]);console.log(qr(a));console.log(svd(a));console.log(eig(a));console.log(schur(a));console.log(hessenberg(a));console.log(polar(a));