numra-linalg 0.1.3

Linear algebra abstractions for Numra: dense and sparse matrices, LU/QR/Cholesky/SVD, iterative solvers (CG, GMRES, BiCGSTAB).
Documentation

numra-linalg

Linear algebra for the Numra workspace — dense and sparse matrices, factorizations (LU / QR / Cholesky / SVD / eigen), and preconditioned Krylov solvers.

Crates.io docs.rs

Backend-agnostic Matrix trait built on faer. Provides direct factorizations (dense and sparse), iterative Krylov solvers, and a small library of preconditioners.

Example

use numra_linalg::{DenseMatrix, Matrix};

let mut a: DenseMatrix<f64> = DenseMatrix::zeros(3, 3);
a.set(0, 0, 2.0);
a.set(1, 1, 3.0);
a.set(2, 2, 4.0);

let b = vec![1.0, 2.0, 3.0];
let x = a.solve(&b).unwrap();

assert!((x[0] - 0.5).abs() < 1e-10);
assert!((x[1] - 2.0 / 3.0).abs() < 1e-10);
assert!((x[2] - 0.75).abs() < 1e-10);

What's in this crate

Area Items
Dense matrix DenseMatrix, Matrix trait
Sparse matrix SparseMatrix
LU LUFactorization, LUSolver, SparseLU
QR QRFactorization
Cholesky CholeskyFactorization, SparseCholesky
SVD SvdDecomposition, ThinSvdDecomposition
Eigen EigenDecomposition, SymEigenDecomposition
Iterative Krylov solvers cg, pcg, gmres, bicgstab, minres
Preconditioners IdentityPreconditioner, Jacobi, Ssor, Ilu0

Composes with

  • numra-nonlinear for Jacobian solves at each Newton step
  • numra-ode for factorizations inside implicit Runge-Kutta and BDF stages
  • numra-pde for sparse Laplacian / Helmholtz operator assembly
  • numra-optim for Hessian solves and QP / SQP subproblems
  • numra-fit for SVD-based polynomial regression

Install

[dependencies]
numra-linalg = "0.1"

Or via the umbrella crate:

[dependencies]
numra = "0.1"

Documentation

License

Numra Academic & Research License (Non-Commercial). Academic and research use is free; commercial use requires a separate license — contact contact@spectralautomata.com. See LICENSE.