However there is a valid question over what we should
get back from a computer when we calculate
0^{0}. If we are thinking in terms of doing an
exact calculation, then there is no question, there is
an answer we should give and that answer is 1. But if
we are thinking in terms of floating point math, then
what the computer should be designed in terms of is,
*I have a number close to 0 raised to the power of
another number close to 0 and I need to give back
something that I know is close to the answer.*
In that case the computer should give up because the real
answer might be anywhere between 0 and 1 inclusive.
Therefore of his examples, all of the answers make sense.
The two products which are designed to be working with
floating point extensively (ie Excel and his calculators)
think in terms of round-off error and decide that they
cannot give a reasonable answer. The remaining products
are all programming tools, dealing with integers, and
are assuming for one reason or another that they are dealing
with an exact integer calculation. So all of them give back
the answer 1.
(OK, I admit it, probably the calculators and Excel were
designed by people who remembered that 0^{0} was
an indeterminate form but have no idea what that really
means. But there are calculational contexts in which
failing to give an answer in that case makes sense.) | [reply] |

I would think it's the other way around. Floating-point numbers are not exact, and there is a little fuzzyness to them because there is a finite number of bits. So, a value x in a register is really x±δ. If you compute f(x) and the function exists and is well-behaved for all points in the interval x-δ...x+δ, but happens to be undefined *only* at exactly x, then perhaps the caller really meant some other value in that range of uncertainty, and could not represent it exactly in the register. It makes sence to use the limit, when the limit is well-defined and the same for positive and negative directions.
For division by zero, division by a very very small number that got rounded to zero, if you did keep the actual number, would be an overflow anyway. The limit here is infinity. The negative and positive directions are not equal. It can't guess whether your number was actually a tad above zero or a tad under zero, and even if it did would get an overflow anyway, so it really can't help.
—John
| [reply] |

Trust me. I said it correctly. 0^{0} has a
well-defined value. That value is 1. With the single
exception of the constructivists, I know of no branch of
mathematics where it makes any sense to say otherwise.
(And even the constructivists agree that that is the
answer when we are talking about integers.)
The problem is that the function n^{m} goes
insane near that point. If you are off by just a little
bit, who knows where you wind up? What if you are dealing
with a fractional power of a negative number? What if your
exponent is positive but the base is exactly 0? What if
the exponent is negative?
No, for a floating point calculation, the issues with
the continuity of the function become relevant. (And,
of course, the constructivists admit of no non-continuous
functions of real numbers.)
As for what you say about limits, my sincere advice is to
forget that limits exist. Limits were not part of the
mental framework that led Newton to create Calculus with
his fluxions. (Which Bishop George Berkeley so rightly
attacked.) Limits were not part of Leibniz' framework as
he reassembled Calculus (not knowing what Newton had done)
using a calculational aid called infinitesmals. (Which,
contrary to popular mathematical belief, Berkeley spoke
rather well of.) Limits were not part of Calculus over
for centuries to come. Certainly Cauchy's attempt to make
infinitesmals rigorous did not involve limits. Even though
it led there (and led to the term, "Cauchy sequences").
And even *after* limits were invented in the 1870's,
and slowly became part of the undergraduate curriculum,
there is no evidence that they are the best - or even a
good - way for students to understand Calculus.
So forget limits. Calculus is not about formal
manipulations involving artificial, unmotivated,
computations leading to magic results that students
blindly memorize. It is about the process of approximation.
I firmly believe that you are better off if you clearly
understand what, for instance, the derivative has to do
with tangent lines than knowing an infinite number of
useless tricks with limits.
Before you are flabbergasted, you may enjoy reading what
Knuth
has
to say on this topic. I don't agree with him on details,
but I definitely agree that a solid understanding of
approximation and errors will stand you in far better
stead than confusing yourself with limits. (I speak, of
course, as someone who is very familiar with limits...)
| [reply] |