Giorgio Pastore, in data Tue, 29 Apr 2003 23:29:45 +0200, ha scritto in
"it.scienza.fisica" nel thread "Re: Fortran e precisione nei calcoli":
Ci� che dici, ed i link che hai indicato sono molto interessanti.
Solo non concordo con te su questo punto, almeno con il F77 di Digital.
> Le costanti non sono solo quelle dei parameter. Se hai un' istruzione
> come :
> a = 2.0 * acos ( -1.0 )
> hai 2 costanti: 2.0 e -1.0 . Queste sono del kind di default (32 bit in
> genere) quindi non puoi aspettarti per a un' approssimazione a 2 Pi
> migliore di una a 7 cifre significative. Nel Fortran 77 uno era
> obbligato a modificare le costanti in 2.0D0 e -1.0D0 per dire che
> andavano considerate a 64 bit.
Se fai:
DOUBLE PRECISION PI
PI = DACOS (-1.)
In PI ti trovi pi greco a 64 bit. Anzi sono convinto che accada anche se usi
ACOS() perch� il compilatore vede che deve caricare un doppiaprecisione e
sceglie la giusta mathfunc.
Inoltre -1. e -1.D0 hanno lo stesso esponente e la stessa mantissa binaria:
nel secondo hai solo 32 zeri in pi� nella mantissa, irrilevanti quindi come
argomento di input alla funzione.
Non so con quelle barzellette che erano i compilatori IBM dei /370, ma con
quelli Digital (GRANDE Digital!) era cos�.
Ciao!
--
Roberto Rosoni
<roberto.rosoni_at_liberoLock.it> (Remove the Lock in your replies)
I Veri Programmatori non muoiono mai, al massimo saltano ad un nuovo indirizzo.
Received on Wed Apr 30 2003 - 00:10:03 CEST