  RSVDPACK is a library of functions for computing low rank approximations of
matrices. The library includes functions for computing standard (partial)
factorizations such as the Singular Value Decomposition (SVD), and also so
called "structure preserving" factorizations such as the Interpolative
Decomposition (ID) and the CUR decomposition. The ID and CUR factorizations
pick subsets of the rows/columns of a matrix to use as bases for its row/column
space. Such factorizations preserve properties of the matrix such as sparsity
or non-negativity, are helpful in data interpretation, and require in certain
contexts less memory than a partial SVD. The package implements highly
efficient computational algorithms based on randomized sampling, as described
and analyzed in [N. Halko, P.G. Martinsson, J. Tropp, "Finding structure with
randomness: Probabilistic algorithms for constructing approximate matrix
decompositions," SIAM Review, 53(2), 2011], and subsequent papers. This
manuscript presents some modifications to the basic algorithms that improve
performance and ease of use. The library is written in C and supports both
multi-core CPU and GPU architectures.
