The Sparse Basic Linear Algebra Subprograms (BLAS) define a set of fundamental operations on vectors and sparse matrices which can be used to create optimized higher-level linear algebra functionality. GSL supports a limited number of BLAS operations for sparse matrices.

The header file gsl_spblas.h contains the prototypes for the sparse BLAS functions and related declarations.

Sparse BLAS operations
======================

 -- Function: int gsl_spblas_dgemv (const CBLAS_TRANSPOSE_t TransA, const double ALPHA, const gsl_spmatrix * A, const gsl_vector * X, const double BETA, gsl_vector * Y)
     This function computes the matrix-vector product and sum y \leftarrow \alpha op(A) x + \beta y, where op(A) = A, A^T for TRANSA = CblasNoTrans, CblasTrans. In-place computations are not supported, so X and Y must be distinct vectors. The matrix A may be in triplet or compressed format.

 -- Function: int gsl_spblas_dgemm (const double ALPHA, const gsl_spmatrix * A, const gsl_spmatrix * B, gsl_spmatrix * C)
     This function computes the sparse matrix-matrix product C = \alpha A B. The matrices must be in compressed format.

References and Further Reading
==============================

The algorithms used by these functions are described in the following sources:

  T. A. Davis, Direct Methods for Sparse Linear Systems, SIAM, 2006.

  CSparse software library, https://www.cise.ufl.edu/research/sparse/CSparse