IEEE Standards Interpretation for IEEE Std 754™-1985 IEEE Standard for Binary Floating-Point Arithmetic
Copyright © 2002 by the Institute of Electrical and Electronics Engineers, Inc. 3 Park Avenue New York, New York 10016-5997 USA All Rights Reserved.
Interpretations are issued to explain and clarify the intent of a standard and do not constitute an alteration to the original standard. In addition, interpretations are not intended to supply consulting information. Permission is hereby granted to download and print one copy of this document. Individuals seeking permission to reproduce and/or distribute this document in its entirety or portions of this document must contact the IEEE Standards Department for the appropriate license. Use of the information contained in this document is at your own risk.
IEEE Standards Department Copyrights and Permissions 445 Hoes Lane, Piscataway, New Jersey 08855-1331, USA
8 October 2002
Interpretation Request #1
Topic: Division by Zero Relevant Clause: Subclause 7.2
Division by Zero, it says: "If the divisor is zero and the dividend is a finite nonzero number, then the division by zero shall be signaled. The result, when no trap occurs, shall be a correctly signed (infinity symbol)(6.3)."
While this is apparently the convention decided on by the committee, it is mathematically incorrect and it seems as if it should have been designated as Not-a-Number, since division by zero is mathematically undefined and implies that 0*infinity=1, which is patently absurd.
Why was this convention chosen instead of NaN, since it leads to a further degradation of our children's math abilities, given that the IEEE floating-point standard would be considered to be authoritative on this subject, yet produces an erroneous results.
When a non-zero number is divided by a zero number, that is a divide by zero. It is interpreted as an attempt to take a limit of the ratio of two numbers as the denominator becomes too small to be represented in the number system while the numerator remains representable. Such a limit is best represented by an infinity of the appropriate sign.
When zero is divided by zero, no such extrapolation can be made. If it is caused by an attempt to take the limit of the ratio of two numbers when both become two small to be represented, then the limit cannot be determined. If it is caused by some mistake in the programming, then no limit exists. Thus, this case is thought to be invalid and a NaN of appropriate sign is returned. (The sign is the only bit of information that can be determined.
While counter examples to the mathematical interpretation of both of these results can be constructed they tend to be either the result of extreme scaling or an attempt to evaluate a non-analytic function. The former can be resolved by rescaling. But, as the latter involve functions that cannot (formally) be evaluated on a computer (without extreme effort anyway) in the region of their non-analyticity, usually no good solution exists.