svd {kazaam} | R Documentation |
Singular value decomposition.
## S4 method for signature 'shaq' svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)
x |
A shaq. |
nu |
number of left singular vectors to return. |
nv |
number of right singular vectors to return. |
LINPACK |
Ignored. |
The factorization works by first forming the crossproduct X^T X and then taking its eigenvalue decomposition. In this case, the square root of the eigenvalues are the singular values. 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}.
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.
The operation is completely local except for forming the crossproduct, which
is an allreduce()
call, quadratic on the number of columns.
## 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)