program prod_test
double precision :: dp, de
real :: sp, se, st
dp 4.0D0 *datan( 1.0D0 ) ! Double Precision Pi
de dexp( 1.0D0 ) ! Double Precision e
sp 4.0 *atan( 1.0 ) ! and here in Single Precision
se exp( 1.00 )
write(*,'(A/)') " Double Precision Results:"
write(*,*) "dp*de
program prod_test
double precision :: dp, de
real :: sp, se, st
dp = 4.0D0 *datan( 1.0D0 ) ! Double Precision Pi
de = dexp( 1.0D0 ) ! Double Precision e
sp = 4.0 *atan( 1.0 ) ! and here in Single Precision
se = exp( 1.00 )
write(*,'(A/)') " Double Precision Results:"
write(*,*) "dp*de =", dp*de
write(*,*) "dble(sp*se) =", dble(sp*se )
st = sp*se
write(*,*) "dble(st) =", dble(st)
write(*,*) "dprod(sp,se) =", dprod(sp,se)
write(*,*) "dble(sp)*dble(se) =", dble(sp)*dble(se)
write(*,'(/A/)') " Single Precision Results:"
write(*,*) "sp*se =", sp*se
write(*,*) "real(dp*de) =", real(dp*de )
write(*,*) "real(dble(sp)*dble(se)) =", real(dble(sp)*dble(se) )
write(*,*) "real(dprod(sp,se)) =", real(dprod(sp,se))
write(*,'(/A,E10.2)') " Single Precision Epsilon ", epsilon(sp)
write(*,*) "Single Precision Nearest ", nearest(sp*se,2.0)
end program prod_test
Double Precision Results:
dp*de = 8.5397342226735660
dble(sp*se) = 8.5397342009798649
dble(st) = 8.5397338867187500
dprod(sp,se) = 8.5397342009798649
dble(sp)*dble(se) = 8.5397342009798649
Single Precision Results:
sp*se = 8.5397339
real(dp*de) = 8.5397339
real(dble(sp)*dble(se)) = 8.5397339
real(dprod(sp,se)) = 8.5397339
Single Precision Epsilon 0.12E-06
|