It is undefined to raise a negative number to a non-integer power. However, Fortran compilers differ in their handling of the case when the power is an integer represented as a floating point number. Consider the following code:
With Intel compiler this is the result:
But with NAG compiler all of the results are NaN:
program test
implicit double precision(a-h,o-z)
a=-26.5227750387574375d0
b=1.0000000000000000d0
write(6,*)a**(b-0.01d0)
write(6,*)a**b
write(6,*)a**(b+0.01d0)
end
With Intel compiler this is the result:
> ifort test.f
> ./a.out
NaN
-26.5227750387574
NaN
But with NAG compiler all of the results are NaN:
> nagfor -ieee=full test.f
> ./a.out
NaN
NaN
NaN
No comments:
Post a Comment
Note: only a member of this blog may post a comment.