Skip to content

go-sparse documentation

Sparse matrices, fill-reducing orderings and iterative solvers in pure Go (CGO=0), following scipy.sparse.linalg.

go-sparse is sparse linear algebra in pure Go. One library provides the sparse matrix formats, Matrix Market I/O, fill-reducing orderings and iterative solvers with preconditioners, following scipy.sparse.linalg, and tests them against recorded SciPy 1.18.1 answers.

The libraries

LibraryVersionWhat it does
sparsereleased v0.1.0COO, CSR, CSC and DOK matrices over float64 and complex128, Matrix Market I/O, RCM, AMD and COLAMD orderings, CG, GMRES, BiCGSTAB, MINRES, LSQR and LSMR with preconditioners, a matrix gallery

Install

go get github.com/go-sparse/sparse@v0.1.0

The module is pure Go (CGO_ENABLED=0) and its CI runs on every architecture the fleet tests.

Not provided yet

Sparse direct factorisations (LU, Cholesky, QR), nested dissection, eigensolvers, algebraic multigrid and Rutherford-Boeing I/O.

Built on

go-ndarray: the nd package takes and returns *ndarray.Array for vectors, dense matrices, SpMV and SpMM.

Created on by tannevaled

Modified on by tannevaled