commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc Maisonobe (JIRA)" <>
Subject [jira] Commented: (MATH-321) Support for Sparse (Thin) SVD
Date Thu, 31 Dec 2009 18:03:29 GMT


Luc Maisonobe commented on MATH-321:

A partial fix as been committed in subversion repository as of r894908.
The current implementation computes either the compact SVD (considering only positive singular
values) or the truncated SVD (considering a user-specified maximal number of singular values).
The issue is however not completely solved yet as the underlying eigendecomposition still
computes all eigenvalues,. The SVD upper layer only truncates this computation afterwards.
This means lots of things are computed just to be discarded later.
I'll take care of this shortly.
Also note that this implementation still considers only dense matrices, not sparse ones. Any
contributions for sparse SVD is welcome!

> Support for Sparse (Thin) SVD
> -----------------------------
>                 Key: MATH-321
>                 URL:
>             Project: Commons Math
>          Issue Type: New Feature
>            Reporter: David Jurgens
> Current the SingularValueDecomposition implementation computes the full SVD.  However,
for some applications, e.g. LSA, vision applications, only the most significant singular values
are needed.  For these applications, the full decomposition is impractical, and for large
matrices, computationally infeasible.   The sparse SVD avoids computing the unnecessary data,
and more importantly, has significantly lower computational complexity, which allows it to
scale to larger matrices.
> Other linear algebra implementation have support for the sparse svd.  Both Matlab and
Octave have the svds function.  C has SVDLIBC.  SVDPACK is also available in Fortran and C.
 However, after extensive searching, I do not believe there is any existing Java-based sparse
SVD implementation.  This added functionality would be widely used for any pure Java application
that requires a sparse SVD, as the only current solution is to call out to a library in another

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message