Re: [eigen] Student contribution

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]





2013/5/21 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
Hi and welcome!

Indeed, a divide-and-conquer SVD would still be very useful. There is
already a bidiagonalization class so that you can focus on the divide
and conquer part,

 Just a side note. Last I checked (I haven't contributed for a terribly long time, so what I say may be outdated) we only have a UpperBidiagonalization class. We don't have anything doing lower-bidiagonalization. That means that we only can bidiagonalize matrices where rows >= cols.

The right solution to that problem, I believe, is *not* to have another LowerBidiagonalization class, or a templatized Bidiagonalization class.

Instead, I believe that the right solution is to have a single Bidiagonalization class that can switch between "upper" and "lower" at runtime. That gives a lot more flexibility and smaller binary code, and that is what LAPACK's SGESDD,

    http://www.netlib.org/lapack/single/sgesdd.f

it is doing that, and a look at its code suggested that it had found an elegant way of switching at runtime between upper- and lower-bidiagonalization without any significant performance penalty.

Anyway, it also is a perfectly valid approach to focus on square matrices for a first implementation and only start worrying about these questions afterwards.

This is a very useful thing to add to Eigen so let me wish you good luck with this project!

Benoit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/