Table of Contents

Namespace NVMathNet.Sparse

Classes

BsrMatrix<T>

A sparse matrix stored in Block Sparse Row (BSR) format on the GPU. All non-zero values are grouped into dense sub-blocks of a fixed size (NVMathNet.Sparse.BsrMatrix`1.RowBlockDim × NVMathNet.Sparse.BsrMatrix`1.ColBlockDim), which enables better memory coalescing and higher throughput than element-level CSR on modern GPUs.

CooMatrix<T>

A sparse matrix stored in COOrdinate (COO) format on the GPU.

CscMatrix<T>

A sparse matrix stored in Compressed Sparse Column (CSC) format on the GPU. Column offsets, row indices and values are each held in a separate NVMathNet.DeviceBuffer`1. Obtain one from a CSR matrix with NVMathNet.Sparse.CsrMatrix`1.ToCsc.

CsrMatrix<T>

A sparse matrix stored in Compressed Sparse Row (CSR) format on the GPU. Row offsets, column indices, and values are each held in a separate NVMathNet.DeviceBuffer`1.

DirectSolverOptions

Options for NVMathNet.Sparse.SparseDirectSolver`1.

SparseDirectSolver<T>

Sparse direct solver for A·X = B backed by NVIDIA cuDSS. Mirrors the staged workflow of nvmath-python's DirectSolver:

  1. NVMathNet.Sparse.SparseDirectSolver`1.Analyze — reordering and symbolic factorisation (depends only on the sparsity pattern).
  2. NVMathNet.Sparse.SparseDirectSolver`1.Factorize — numerical factorisation.
  3. NVMathNet.Sparse.SparseDirectSolver`1.Solve(NVMathNet.DeviceBuffer{`0},NVMathNet.DeviceBuffer{`0},System.Int32) — forward/backward substitution; call repeatedly for new right-hand sides.
  4. Change the values of A in place and call NVMathNet.Sparse.SparseDirectSolver`1.Refactorize to reuse the analysis.

Requires the cuDSS runtime library (cudss64_0.dll / libcudss.so.0) on the library path. The CSR matrix must have sorted column indices and must outlive this solver.

SparseLinearAlgebra

Static helpers for sparse linear algebra operations using cuSPARSE.

Enums

SparseDiagonal

Whether the diagonal of a triangular matrix is stored or implicitly all ones.

SparseMatrixStructure

Structure of the system matrix; selects the factorisation cuDSS uses.

SparseMatrixView

Which part of the matrix is stored in the CSR arrays.

SparseTriangle

Which triangle of a sparse matrix a triangular solve reads.