The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: Sparse Truncated Singular Value Decomposition (from 'SVDLIBC')
Version: 0.2-2
Date: 2023-01-14
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: 2023-01-14 18:45:27 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: 2023-01-14 19:40:02 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 dgCMatrix and other storage formats will automatically be converted if possible.

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 (default).

tol

exclude singular values whose magnitude is smaller than tol

kappa

accuracy parameter \kappa of the SVD algorithm (with SVDLIBC default)

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 r singular values of M

u

a column matrix of the first r left singular vectors of M

v

a column matrix of the first r right singular vectors of M

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

svd, sparseMatrix

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.