Bug#121852: g77-3.0 fails to compute a complex log of certain values (please close this bug)
Hi,
Feel free to close this bug (#121852).
The new g77-3.0
$ apt-show-versions -p g77-3.0
g77-3.0/unstable uptodate 1:3.0.4-1
$ g77-3.0 --version
GNU Fortran 0.5.26 20020220 (release)
compiles and runs the program properly (see script below). Best regards,
Jaume
=============================================================
jasi $ g77 --version
GNU Fortran 0.5.25 20010319 (prerelease)
Copyright (C) 1997 Free Software Foundation, Inc.
For more version information on components of the GNU Fortran
compilation system, especially useful when reporting bugs,
type the command `g77 --verbose'.
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'.
jasi $ cat prova.F
program prova
implicit none
double complex cs,x1,x2
double precision precc,x0
x0=0.d0
precc = 0.01d0
print *,"precc,x0:",precc,x0
C This is fine
cs = exp(log(DCMPLX(1+precc,x0)))
write(6,FMT=*), "cs=exp(log(1+precc))=",dble(cs)
x0=0.d0
precc = 0.001d0
print *,"precc,x0:",precc,x0
C This is fine
cs = exp(log(DCMPLX(1+precc,x0)))
write(6,*), "cs=exp(log(1+precc))=",dble(cs)
C This value is not fine
precc=0.00390625d0
print *,"precc,x0:",precc,x0
x1=DCMPLX(1+precc,x0)
write(6,*) "x1=",x1
x2=log(x1)
write(6,*) "x2=log(x1)=",x2
cs=exp(x2)
write(6,*), "cs=exp(x2)=",dble(cs)
cs = exp(log(DCMPLX(1+precc,x0)))
write(6,*), "cs=exp(log(1+precc))=",dble(cs)
stop
end
jasi $ g77-3.0 -o prova prova.F
jasi $ ./prova
precc,x0: 0.01 0.
cs=exp(log(1+precc))= 1.01
precc,x0: 0.001 0.
cs=exp(log(1+precc))= 1.001
precc,x0: 0.00390625 0.
x1= (1.00390625,0.)
x2=log(x1)= (0.00389864042,0.)
cs=exp(x2)= 1.00390625
cs=exp(log(1+precc))= 1.00390625
jasi $ exit
Script done on Tue Feb 26 15:29:11 2002
Jaume Guasch <guasch@itp.uni-karlsruhe.de> writes:
> Package: g77-3.0
> Version: 1:3.0.2-3
> Severity: normal
>
>
> g77-3.0 fails to compute a complex log of certain values
>
> computing log(x), for certain complex values of x (e.g. x=(1.00390625,0.) )
> the fortran program enters a loop (no error, no core ... ), does not
> compute the value, and the program has to be killed (with Ctrl-C).
>
> g77-2.95 can compute the value.
>
> Below there is a script session (together with the program) to reproduce
> the bug. g77-2.95 runs the program fine, g77-3.0 doesn't
>
> Best regards,
>
> Jaume
>
>
> ==================================================
> Script started on Fri Nov 30 16:36:03 2001
> jasi $ g77 --version
> GNU Fortran 0.5.25 20010319 (prerelease)
> Copyright (C) 1997 Free Software Foundation, Inc.
> For more version information on components of the GNU Fortran
> compilation system, especially useful when reporting bugs,
> type the command `g77 --verbose'.
>
> 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'.
> jasi $ gcc --version
> 2.95.4
> jasi $ cat prova.F
> program prova
> implicit none
> double complex cs,x1,x2
> double precision precc,x0
>
> x0=0.d0
> precc = 0.01d0
> print *,"precc,x0:",precc,x0
> C This is fine
> cs = exp(log(DCMPLX(1+precc,x0)))
> write(6,FMT=*), "cs=exp(log(1+precc))=",dble(cs)
>
> x0=0.d0
> precc = 0.001d0
> print *,"precc,x0:",precc,x0
>
> C This is fine
> cs = exp(log(DCMPLX(1+precc,x0)))
> write(6,*), "cs=exp(log(1+precc))=",dble(cs)
>
> C This value is not fine
> precc=0.00390625d0
> print *,"precc,x0:",precc,x0
>
> x1=DCMPLX(1+precc,x0)
> write(6,*) "x1=",x1
> x2=log(x1)
> write(6,*) "x2=log(x1)=",x2
> cs=exp(x2)
> write(6,*), "cs=exp(x2)=",dble(cs)
> cs = exp(log(DCMPLX(1+precc,x0)))
> write(6,*), "cs=exp(log(1+precc))=",dble(cs)
>
> stop
> end
>
> jasi $ g77 -o prova295 prova.F
> jasi $ ./prova295
> precc,x0: 0.01 0.
> cs=exp(log(1+precc))= 1.01
> precc,x0: 0.001 0.
> cs=exp(log(1+precc))= 1.001
> precc,x0: 0.00390625 0.
> x1= (1.00390625,0.)
> x2=log(x1)= (0.00389864042,0.)
> cs=exp(x2)= 1.00390625
> cs=exp(log(1+precc))= 1.00390625
> jasi $ g77-3.0 --version
> GNU Fortran 0.5.26 20011023 (release)
> Copyright (C) 2001 Free Software Foundation, Inc.
> For more version information on components of the GNU Fortran
> compilation system, especially useful when reporting bugs,
> type the command `g77 --verbose'.
>
> 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'.
> jasi $ gcc-2 3, .0 --version
> 3.0.2
> jasi $ g77-3.0 -o prova3 prova.F
> jasi $ ./prova3
> precc,x0: 0.01 0.
> cs=exp(log(1+precc))= 1.01
> precc,x0: 0.001 0.
> cs=exp(log(1+precc))= 1.001
> precc,x0: 0.00390625 0.
> x1= (1.00390625,0.)
> Interrupt
> jasi $ exit
>
> Script done on Fri Nov 30 16:37:32 2001
>
>
>
> -- System Information
> Debian Release: testing/unstable
> Architecture: i386
> Kernel: Linux jasi 2.4.14 #1 Sun Nov 18 18:19:45 CET 2001 i686
> Locale: LANG=C, LC_CTYPE=
>
> Versions of packages g77-3.0 depends on:
> ii gcc-3.0 1:3.0.2-3 The GNU C compiler.
> ii gcc-3.0-base 1:3.0.2-3 The GNU Compiler Collection (base
> ii libc6 2.2.4-5 GNU C Library: Shared libraries an
--
Reply to: