[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gsl] Re: infinite loop in gsl_eigen_symm
From: |
Andries E. Brouwer |
Subject: |
[Bug-gsl] Re: infinite loop in gsl_eigen_symm |
Date: |
Wed, 22 Aug 2007 17:30:18 +0200 |
User-agent: |
Mutt/1.5.9i |
On Wed, Aug 22, 2007 at 01:25:59PM +0200, Andries E. Brouwer wrote
(to address@hidden):
> In a program that has called gsl_eigen_symm() successfully 10^9 times,
> I find that on one specific matrix this routine hangs in an infinite loop.
> Trying this same matrix on a different architecture, all is well.
>
> The machine with infinite loop is an x86_64:
> Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
>
> A test program that loops is given below.
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.
Andries
(this was gsl-1.9)
Re: [Bug-gsl] Re: infinite loop in gsl_eigen_symm, Brian Gough, 2007/08/29