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 |
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
-
w
A numeric vector containing the non-zero elements ofA
. -
v
An integer vector containing the column indices of the non-zero elements ofA
. -
u
An integer vector indicating where inw
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))