From: Thibault L. <tl...@di...> - 2005-08-10 11:52:43
|
On Mon, 2005-08-08 at 22:15 -0500, Paul Ledbetter III wrote: > I would like to know if the patch at the bottom of this email solves > the geev problem for the other people who have reported it. It solves > mine. > > I have been having the same issue with geev. Calling it causes cmucl > to go into an infinite loop. In slime I can interrupt the program, > and then call geev again. The second time no infinite loop occurs, > but the results are corrupted (i.e. The resulting matrices are > populated with silent-NaNs). > > I have tracked the source of these problems down to a heisenbug in the > subroutines which determine parameters of the machine. Unfortunately, > this patch could not possibly affect the real cause of the problem, > but if it works for other people besides me, it may help lead to the > real problem. > > The logical effect of this patch is to cause the LAPACK routines to > assume the base of the machine is at least binary. > > Index: dlamch.f > =================================================================== > RCS file: /cvsroot/matlisp/matlisp/LAPACK/SRC/dlamch.f,v > retrieving revision 1.1 > diff -u -w -r1.1 dlamch.f > --- dlamch.f 15 Apr 2000 00:24:53 -0000 1.1 > +++ dlamch.f 9 Aug 2005 02:47:52 -0000 > @@ -231,7 +231,7 @@ > * > * fl( a + b ) .gt. a. > * > - B = 1 > + B = 2 > C = DLAMC3( A, B ) > * > *+ WHILE( C.EQ.A )LOOP > It works for me but this one works too :-/ --- ../matlisp-2_0beta-2003-10-14/LAPACK/SRC/dlamch.f 2000-04-15 01:24:53.000000000 +0100 +++ LAPACK/SRC/dlamch.f 2005-08-10 12:13:27.167199885 +0100 @@ -234,6 +234,7 @@ B = 1 C = DLAMC3( A, B ) * + PRINT *, '' *+ WHILE( C.EQ.A )LOOP 20 CONTINUE IF( C.EQ.A ) THEN The bug is more likely to be in gcc/g77/glibc or in the way the libraries are called from lisp. Here are the versions I use: wok$ gcc --version gcc (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.fc3) Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. wok$ g77 --version GNU Fortran (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.fc3) Copyright (C) 2004 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING or type the command `info -f g77 Copying'. wok$ rpm -q glibc glibc-2.3.3-74 Thibault |