| Title: | Sparse Truncated Singular Value Decomposition (from 'SVDLIBC') | 
| Version: | 0.2-3 | 
| Date: | 2025-08-17 | 
| Description: | Wrapper around the 'SVDLIBC' library for (truncated) singular value decomposition of a sparse matrix. Currently, only sparse real matrices in Matrix package format are supported. | 
| Depends: | R (≥ 3.0) | 
| Imports: | Matrix (≥ 1.3), methods | 
| License: | BSD_3_clause + file LICENSE | 
| URL: | https://github.com/lucasmaystre/svdlibc, http://wordspace.r-forge.r-project.org/ | 
| NeedsCompilation: | yes | 
| Packaged: | 2025-08-17 17:15:55 UTC; ex47emin | 
| Author: | Doug Rohde [aut], Michael Berry [aut], Theresa Do [aut], Gavin O'Brien [aut], Vijay Krishna [aut], Sowmini Varadhan [aut], University of Tennessee Research Foundation [cph] (files src/las2.c, src/svdlib.[ch], src/svdutil.[ch]), Stephanie Evert [cre, aut, cph] (copyright holder for files src/main.c, R/*, man/*, tests/*) | 
| Maintainer: | Stephanie Evert <stephanie.evert@fau.de> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-08-18 08:50:09 UTC | 
Singular Value Decomposition of a Sparse Matrix.
Description
Compute the (usually truncated) singular value decomposition (SVD) of a sparse real matrix. This function is a shallow wrapper around the SVDLIBC implementation of Berry's (1992) single Lanczos algorithm.
Usage
  sparsesvd(M, rank=0L, tol=1e-15, kappa=1e-6)
Arguments
| M | a sparse real matrix in Matrix package format.
The preferred format is a  | 
| rank | an integer specifying the desired number of singular components, i.e. the rank of the truncated SVD.
Specify 0 to return all singular values of magnitude larger than  | 
| tol | exclude singular values whose magnitude is smaller than  | 
| kappa | accuracy parameter  | 
Value
The truncated SVD decomposition
    M_r = U_r D V_r^T
  
where M_r is the optimal rank r approximation of M.
Note that r may be smaller than the requested number rank of singular components.
The returned value is a list with components
| d | a vector containing the first  | 
| u | a column matrix of the first  | 
| v | a column matrix of the first  | 
References
The SVDLIBC homepage http://tedlab.mit.edu/~dr/SVDLIBC/ seems to be no longer available.
A copy of the source code can be obtained from https://github.com/lucasmaystre/svdlibc.
Berry, Michael~W. (1992). Large scale sparse singular value computations. International Journal of Supercomputer Applications, 6, 13–49.
See Also
Examples
M <- rbind(
  c(20, 10, 15,  0,  2),
  c(10,  5,  8,  1,  0),
  c( 0,  1,  2,  6,  3),
  c( 1,  0,  0, 10,  5))
M <- Matrix::Matrix(M, sparse=TRUE)
print(M)
res <- sparsesvd(M, rank=2L) # compute first 2 singular components
print(res, digits=3)
M2 <- res$u %*% diag(res$d) %*% t(res$v) # rank-2 approximation
print(M2, digits=1)
print(as.matrix(M) - M2, digits=2) # approximation error