R: Extract the compressed representation of a sparse matrix

extract_sparse_parts {rstan} | R Documentation

## Extract the compressed representation of a sparse matrix

### Description

Create a list of vectors that represents a sparse matrix.

### Usage

    extract_sparse_parts(A)

### Arguments

`A` | A `matrix` or `Matrix`.

### Details

The Stan Math Library has a function called `csr_matrix_times_vector`, which inputs a matrix in compressed row storage form and a dense vector and returns their product without fillin. To use the `csr_matrix_times_vector` function with a large sparse matrix, it is optimal in terms of memory to simply pass the three vectors that characterize the compressed row storage form of the matrix to the `data` block of the Stan program. The `extract_sparse_parts` function provides a convenient means of obtaining these vectors.

### Value

A named list with components

1. `w` A numeric vector containing the non-zero elements of `A`.

2. `v` An integer vector containing the column indices of the non-zero elements of `A`.

3. `u` An integer vector indicating where in `w` a given row's non-zero values start.

### Examples

      A <- rbind(
        c(19L, 27L,  0L,  0L),
        c( 0L,  0L,  0L,  0L),
        c( 0L,  0L,  0L, 52L),
        c(81L,  0L, 95L, 33L)
      )
      str(extract_sparse_parts(A))

[Package rstan version 2.15.1 Index]