Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re (tilly) 3: More Fun with Zero!

by tilly (Archbishop)
on Jul 23, 2001 at 17:30 UTC ( #99004=note: print w/replies, xml ) Need Help??

in reply to Re: Re: More Fun with Zero!
in thread More Fun with Zero!

However there is a valid question over what we should get back from a computer when we calculate 00. 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 00 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.)

Replies are listed 'Best First'.
Re: Re (tilly) 3: More Fun with Zero!
by John M. Dlugosz (Monsignor) on Jul 24, 2001 at 00:58 UTC
    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.


      Trust me. I said it correctly. 00 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 nm 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...)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://99004]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2018-06-23 08:32 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (125 votes). Check out past polls.