On Tue, Jul 6, 2010 at 6:41 PM, Benoit Jacob
<jacob.benoit..1@xxxxxxxxx> wrote:
Hi,
Here's my fork for SVD work:
http://bitbucket.org/bjacob/eigen-svd
Nothing interesting for now, but I'll keep you posted.
The plan is to implement the 1994 paper by Jessup and Sorensen, "A
Parallel Algorithm for Computing the Singular Value Decomposition of a
Matrix".
www.cs.colorado.edu/~jessup/SUBPAGES/PS/sorensen.ps.gz
The basic advantages are reliability and parallelizability.
But the evil idea is that this divide and conquer method will
furthermore allow us to offer a super-fancy API allowing to
efficiently compute any part of U or V or even to just multiply U or V
or their adjoints with any matrix without computing them. Which is
nearly impossible with Givens or Jacobi methods.
It will definitely replace the existing SVD implementation; however,
since it will bring a very new API, it may be a little too late in our
3.0 cycle for that. So I might then add DivConqSVD as a new class with
that new fancy API, and just reimplement SVD on top of it and keep it
around with the traditional API. If you want we can even keep
DivConqSVD internal in 3.0 and only expose the new API in 3.1. I don't
want to force my experimental stuff into 3.0. We'll be able to discuss
this better once it's implemented.
Sounds great!
Keir
Benoit