[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: QR test failure with --enable-64
From: |
John W. Eaton |
Subject: |
Re: QR test failure with --enable-64 |
Date: |
Fri, 19 Feb 2010 16:40:34 -0500 |
On 19-Feb-2010, Jaroslav Hajek wrote:
| Yes, I understand that, I'm just wondering whether by
| [Q,R] = qr(AA);
| you get the same Q and R with both configurations, or whether the
| difference occurs in qrdelete, or maybe in the residual computation.
With the --enable-64 build, I see
octave:1> AA = [0.091364 0.613038 0.027504 0.999083;
> 0.594638 0.425302 0.562834 0.603537;
> 0.383594 0.291238 0.742073 0.085574;
> 0.265712 0.268003 0.783553 0.238409;
> 0.669966 0.743851 0.457255 0.445057 ];
octave:2>
octave:2> [Q,R] = qr(AA);
octave:3> Q'*Q - eye(5)
ans =
2.2204e-16 -3.4694e-16 -5.5511e-17 -2.2204e-16 -2.7756e-17
-3.4694e-16 0.0000e+00 -8.3267e-17 6.6613e-16 1.1796e-16
-5.5511e-17 -8.3267e-17 2.2204e-16 -2.7756e-17 -5.1348e-16
-2.2204e-16 6.6613e-16 -2.7756e-17 -2.2204e-16 -3.3307e-16
-2.7756e-17 1.1796e-16 -5.1348e-16 -3.3307e-16 2.2204e-15
octave:4> norm (vec(Q'*Q - eye(5)), Inf)
ans = 2.2204e-15
octave:5> norm (vec(Q'*Q - eye(5)), Inf) - 1e1*eps
ans = 0
So the difference is apparently coming from qr, not qrdelete.
I changed the tolerance to 16*eps.
jwe