deepbox/linalg
Solvers
Dense, sparse, triangular, banded, and matrix-equation solvers exposed by deepbox/linalg.
Linear systems
type CSRMatrix
export type CSRMatrix = { readonly n: number; readonly values: Float64Array; readonly colIndices: Int32Array; readonly rowPointers: Int32Array; };
Compressed Sparse Row (CSR) matrix representation.
denseToCSR
export declare function denseToCSR(a: Tensor): CSRMatrix;
Convert a dense tensor to CSR sparse format.
lstsq
export declare function lstsq(a: Tensor, b: Tensor, rcond?: number): { readonly x: Tensor; readonly residuals: Tensor; readonly rank: number; readonly s: Tensor; };
Least squares solution to A * x = b.
lyapunov
export declare function lyapunov(a: Tensor, q: Tensor): Tensor;
Solve the continuous Lyapunov equation AX + XAᵀ = Q.
solve
export declare function solve(a: Tensor, b: Tensor): Tensor;
Solve linear system A * x = b.
solve_banded
export declare function solve_banded(luBands: readonly [number, number], ab: Tensor, b: Tensor): Tensor;
Solve a banded linear system A x = b.
solveTriangular
export declare function solveTriangular(a: Tensor, b: Tensor, lower?: boolean): Tensor;
Solve triangular system.
sparseCholeskySolve
export declare function sparseCholeskySolve(csr: CSRMatrix, b: Tensor): Tensor;
Solve a sparse symmetric positive-definite system using sparse Cholesky.
sparseSolve
export declare function sparseSolve(csr: CSRMatrix, b: Tensor): Tensor;
Solve a sparse linear system A x = b using sparse LU factorization.
sylvester
export declare function sylvester(a: Tensor, b: Tensor, c: Tensor): Tensor;
Solve the continuous Sylvester equation AX + XB = C.
linalg-solvers.ts
import { denseToCSR, lstsq, solve, solveTriangular, sparseSolve, sylvester,} from "deepbox/linalg";import { tensor } from "deepbox/ndarray";const a = tensor([[3, 1], [1, 2]]);const b = tensor([9, 8]);const leastSquares = lstsq(a, b);console.log(solve(a, b).toString());console.log(solveTriangular(a, b, false).toString());console.log(leastSquares.x.toString(), leastSquares.rank);console.log(sparseSolve(denseToCSR(a), b).toString());console.log(sylvester(a, a, tensor([[1, 0], [0, 1]])).toString());