On Wed, Aug 22, 2007 at 01:25:59PM +0200, Andries E. Brouwer wrote
(to [EMAIL PROTECTED]):
> 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)
_______________________________________________
Bug-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gsl