Chris,

I hope that this isn't stepping on your toes. I was a bit concerned about
that.

-Greg

On Wed, Oct 5, 2011 at 2:34 AM, Chris Nix <chris....@gmail.com> wrote:

> Greg,
>
> Apologies that I've not had more time on this, I started a new job that
> doesn't afford it at the moment, :(.
>
> I would say that a single implementation, with or without pivoting, makes
> sense to save confusion.  Your clearer code would be a good choice for
> maintainability.
>
> One possible word of caution with replacing the current implementation with
> a pivoting version is that current users of the QRDecomposition may not
> expect a third factor, namely P, particularly in the solvers.  This is not
> really a problem, but it should be well documented as a change to v2 to
> save
> confusion and perhaps method names, ie testAEqualQR should be changed to
> make this clear.
>
> Additionally, any pivoting QRDecomposition class should also have a
> getRank() method since it is after all 'rank-revealing' and in most (or
> all?) cases it would be more efficient than
> SingularValueDecomposition.getRank().
>
> Chris.
>
>
> On 5 October 2011 05:05, Greg Sterijevski <gsterijev...@gmail.com> wrote:
>
> > My apologies! Forgot to tag the subject line.
> >
> > On Tue, Oct 4, 2011 at 8:35 PM, Greg Sterijevski <gsterijev...@gmail.com
> > >wrote:
> >
> > > Hello all,
> > >
> > > A while back I was interested in being able to do pivoting qr
> > > decomposition. I noticed that Chris Nix submitted a patch, but he
> > indicated
> > > that he had more work to do (testing and filling in functionality). In
> > the
> > > discussion around this, Luc suggested that I look at the QR
> decomposition
> > in
> > > Levenberg-Marquardt. I did just that a few days ago. The code was very
> > clear
> > > and nicely written (kudos to Luc). So, I copied the routine and made a
> > new
> > > PivotingQRDecomposition class. The class is intended as a "drop in
> > > replacement" for QRDecomposition. I also copied the QRSolverTest and
> > > QRDecompositionTest. With the exception of testUnderdetermined in the
> > solver
> > > test and testAEqualQR in QRDecompositionTest, the tests are unchanged
> > (and
> > > all pass!). With testUndertermined, the "zeroed" rows of the solution
> > matrix
> > > are interspersed throughout the matrix (because of pivoting). So I
> change
> > > the test to count all the rows that have zero norms, and check that it
> is
> > > the correct number. In testAEqualQR, I added a multiplication by the
> > > permutation matrix.
> > >
> > > What is the best way to proceed? I don't want to trounce the additions
> > that
> > > Chris made, but it looks like Chris has more sophisticated classes in
> > mind.
> > > I don't see this proposed change competing with his. Does it make sense
> > to
> > > bring back QRDecomposition interface (sorry Sebastien)? We can then
> keep
> > > both implementations until we are satisfied the pivoting one works.
> > >
> > > Thoughts?
> > >
> > > -Greg
> > >
> >
>

Reply via email to