bug-gsl
[Top][All Lists]
Advanced

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

Re: [Bug-gsl] Re: infinite loop in gsl_eigen_symm


From: Andries E. Brouwer
Subject: Re: [Bug-gsl] Re: infinite loop in gsl_eigen_symm
Date: Thu, 30 Aug 2007 10:27:37 +0200
User-agent: Mutt/1.5.9i

On Wed, Aug 29, 2007 at 08:31:02PM +0100, Brian Gough wrote:
> At Wed, 22 Aug 2007 17:30:18 +0200,
> Andries E. Brouwer wrote:
> > Investigating a bit closer, I see in symm.c:gsl_eigen_symm()
> > a loop while (b > 0) { ... } that hangs (flipflops between two states).
> > If I change the test
> >     if (sd[b - 1] == 0.0 || ...
> > into
> >     if ((sd[b - 1] > -5e-188 && sd[b-1] < 5e-188) || ...
> > then all is fine.
> > 
> > So, it seems gsl has assumptions about the arithmetic on very small
> > numbers that are false on this particular machine.
> 
> I found the problem.  The qrstep uses the square of the offdiagonal
> element (O(1e-200^2). This underflows to zero without extended
> precision so no progress is made.  The following patch should fix the
> problem. It will be included in the next release.  Thanks for the bug
> report.

Very good, that solves the loop. Thanks!

Remains my question: what about the accuracy?
Is there any guarantee, or are the eigenvalues just reasonable guesses
with unknown error bounds?

I see 4.251127, 2.291957, 1.294160 where the exact values in 5 decimal
places are 4.24264, 2.30278, 1.30278.

Andries





reply via email to

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