Hi Chris,
> | Mathematically speaking zero^zero is undefined, so it should be NaN.
> | This already clear for real numbers: consider x^0 where x decreases
> | to zero. This is always 1, so you could deduce that 0^0 should be 1.
> | However, consider 0^x where x decreases to zero. This is always 0, so
> | you could deduce that 0^0 should be 0. In fact the limit of x^y
> | where x and y decrease to 0 does not exist, even if you exclude the
> | degenerate cases where x=0 or y=0. This is why there is no reasonable
> | mathematical value for 0^0.
> |
>
> That is true.
>
> However, on the other hand, however the standard says looks to me to say
> 0^0=1. Also printf("%f",pow(0.0,0.0)) returns 1.0 on both VC++6 and g++
> 3.3 (just what I happen to have lying around..)
>
> I would agree with Paolo that the most imporant point is arguably
> consistency, and it looks like that is pow(0.0,0.0)=1
just so long as everyone understands that they are upholding the
standard, not mathematics, then that is fine by me :)
All the best,
Duncan.
PS: There is always the question of which standard is being upheld,
since presumably both the Fortran and Ada standards have something
to say about this.