William Kahan
From Wikipedia, the free encyclopedia
William Morton Kahan (born June 5, 1933, in Toronto, Ontario, Canada) is a mathematician and computer scientist whose main area of contribution has been numerical analysis.
He attended the University of Toronto, where he received his Bachelor's degree in 1954, his Master's degree in 1956, and his Ph.D. in 1958, all in the field of mathematics.
Among his many contributions, Kahan was the primary architect behind the IEEE 754 standard for floating-point computation (and its radix-independent follow-on, IEEE 854) and developed the Kahan summation algorithm, an important algorithm for minimizing error introduced when adding a sequence of finite precision floating point numbers.
In the 1980s he developed the landmark program "paranoia", a benchmark that tests for a wide range of potential floating point bugs. It would go on to find the infamous Pentium division bug, and continues to have important uses to this day.
He received the Turing Award in 1989, and was named an ACM Fellow in 1994.
Kahan is now a professor of mathematics, computer science, and electrical engineering at the University of California, Berkeley, and continues his contributions to the ongoing revision of IEEE 754. He has been called “The Father of Floating Point,” since he was instrumental in creating the IEEE 754 specification.
He is an outspoken advocate of better education of the general computing population about floating-point issues, and regularly denounces decisions in the design of computers and programming languages that may impair good floating-point computations.
He coined the term "The Table-Maker's Dilemma" for the unknown cost of rounding transcendental functions. "Nobody knows how much it would cost to compute y^w correctly rounded for every two floating-point arguments at which it does not over/underflow. Instead, reputable math libraries compute elementary transcendental functions mostly within slightly more than half an ulp and almost always well within one ulp. Why can't Y^W be rounded within half an ulp like SQRT? Because nobody knows how much computation it would cost... No general way exists to predict how many extra digits will have to be carried to compute a transcendental expression and round it correctly to some preassigned number of digits. Even the fact (if true) that a finite number of extra digits will ultimately suffice may be a deep theorem." [1]
Kahan invented the Kahan summation algorithm for compensating for rounding errors.
[edit] External links
- William Kahan's home page
- portrait picture of Kahan
- 2004 discussion of flaws found by paranoia on multiple cpu/compiler combinations
- Paranoia for modern graphics processing units (GPUs)
- Paranoia source code in multiple languages
See
- Richard Karpinski. 1985. Paranoia: A floating-point benchmark. Byte Magazine 10, 2 (Feb.), 223-235
- IEEE. 1987. IEEE standard for binary floating-point arithmetic [url]. ACM SIGPLAN Notices 22, 2 (Feb.), 9-25
- An Interview with the Old Man of Floating-Point, 1998-Feb-20 [2]