octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: QR test failure with --enable-64


From: Jaroslav Hajek
Subject: Re: QR test failure with --enable-64
Date: Fri, 19 Feb 2010 21:46:42 +0100

On Fri, Feb 19, 2010 at 6:19 PM, John W. Eaton <address@hidden> wrote:
> When I compile Octave with --enable-64 on an amd64 system, the
> following test from qr.cc fails because the computed norm is exactly
> equal to 10*eps.  On the same system without --enable-64, the test
> passes.  I don't know exactly why changing the  size of integer
> indexes would change the result.  My best guess is that the additional
> memory required by the index values forces the compiler to store some
> floating point values that are otherwise kept in registers.

Interesting. Is it just qrdelete that makes the difference, or is the
qr result also different?

> But
> that's just a guess.  Anyway, what should we do about the test?
> Should I just change the < to <=, or increase the value of the
> multiplier for eps?
>
>  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 ];
>
>  [Q,R] = qr(AA);
>  [Q,R] = qrdelete(Q,R,3);
>  assert(norm(vec(Q'*Q - eye(5)),Inf) < 1e1*eps)
>
>
> jwe
>

The 1e1 factor is really ad hoc, so you can easily change it to 15 or 20.


-- 
RNDr. Jaroslav Hajek, PhD
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz



reply via email to

[Prev in Thread] Current Thread [Next in Thread]