svd: svd

Description Usage Arguments Details Value Communication Examples

Description

Singular value decomposition.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
## S4 method for signature 'shaq'
svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)

## S4 method for signature 'tshaq'
svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)

## S4 method for signature 'shaq'
La.svd(x, nu = min(n, p), nv = min(n, p))

## S4 method for signature 'tshaq'
La.svd(x, nu = min(n, p), nv = min(n, p))

Arguments

x

A shaq.

nu

number of left singular vectors to return.

nv

number of right singular vectors to return.

LINPACK

Ignored.

Details

The factorization works by first forming the crossproduct X^T X for shaqs (XX^T for tshaqs) and then taking its eigenvalue decomposition. In this case, the square root of the eigenvalues are the singular values.

For shaqs, if the left/right singular vectors U or V are desired, then in either case, V is computed (the eigenvectors). From these, U can be reconstructed, since if X = UΣ V^T, then U = XVΣ^{-1}. For tshaqs, a similar game can be played, noting that the left singular vectors U map to the eigenvectors of XX^T.

Value

A list of elements d, u, and v, as with R's own svd(). The elements are, respectively, a regular vector, a shaq, and a regular matrix.

Communication

The operation is completely local except for forming the crossproduct, which is an allreduce() call, quadratic on the number of columns.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
## Not run: 
library(kazaam)
x = ranshaq(runif, 10, 3)

svd = svd(x)
comm.print(svd$d) # a globally owned vector
svd$u # a shaq
comm.print(svd$v) # a globally owned matrix

finalize()

## End(Not run)

RBigData/kazaam documentation built on Nov. 9, 2021, 9:09 a.m.