William "Velvel" Morton Kahan (born June 5, 1933) is a Canadian mathematician and computer scientist who received the Turing Award in 1989 for "his fundamental contributions to numerical analysis" , was named an ACM Fellow in 1994, and inducted into the National Academy of Engineering in 2005.
William Morton Kahan
|Born||June 5, 1933|
Toronto, Ontario, Canada
|Alma mater||University of Toronto|
|Known for||IEEE 754 |
Kahan summation algorithm
|Awards||Turing Award (1989)|
IEEE Emanuel R. Piore Award (2000)
National Academy of Engineering
|Institutions||University of California, Berkeley|
|Thesis||Gauss-Seidel Methods Of Solving Large Systems Of Linear Equations (1958)|
|Doctoral advisor||Byron Alexander Griffith|
|Doctoral students||James Demmel|
Born to a Canadian Jewish family, 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. Kahan is now emeritus professor of mathematics and of electrical engineering and computer sciences (EECS) at the University of California, Berkeley.
Kahan was the primary architect behind the IEEE 754-1985 standard for floating-point computation (and its radix-independent follow-on, IEEE 854). He has been called "The Father of Floating Point," since he was instrumental in creating the original IEEE 754 specification. Kahan continued his contributions to the IEEE 754 revision that led to the current IEEE 754 standard.
In the 1980s he developed the program "paranoia", a benchmark that tests for a wide range of potential floating point bugs. It would go on to detect the infamous Pentium division bug, and continues to have important uses to this day. He also developed the Kahan summation algorithm, an important algorithm for minimizing error introduced when adding a sequence of finite precision floating point numbers. He coined the term "The Table-Maker's Dilemma" for the unknown cost of correctly rounding transcendental functions to some preassigned number of digits.
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.
When Hewlett–Packard introduced the original HP-35 pocket scientific calculator, its numerical accuracy in evaluating transcendental functions for some arguments was not optimal. Hewlett–Packard worked extensively with Kahan to enhance the accuracy of the algorithms, which led to major improvements. This was documented at the time in the Hewlett-Packard Journal. He also contributed substantially to the design of the algorithms in the HP Voyager series, and wrote part of their intermediate and advanced manuals.
- Haigh, Thomas (1989). "William ("Velvel") Morton Kahan". A. M. Turing Award. Retrieved 2017-05-27.
- WILLIAM (“VELVEL”) MORTON KAHAN AM Turing Award, Author: Thomas Haigh
- Karpinski, Richard (1985), "Paranoia: A floating-point benchmark", Byte Magazine, 10 (2): 223–235
- Kahan, William. "A Logarithm Too Clever by Half". Retrieved 2008-11-14.
- Davis, Chandler; Kahan, W. M.; Weinberger, H. F. (1982). "Norm-Preserving Dilations and Their Applications to Optimal Error Bounds". SIAM Journal on Numerical Analysis. 19 (3): 445–469. doi:10.1137/0719029.
- Kahan, William M. (December 1979). "Personal Calculator Has Key to Solve Any Equation f(x) = 0" (PDF). Hewlett-Packard Journal. 30 (12): 20–26. Retrieved 2008-11-14.
- Kahan, William M. (August 1980). "Handheld Calculator Evaluates Integrals" (PDF). Hewlett-Packard Journal. 31 (8): 23–32. Retrieved 2008-11-14.
- William Kahan's home page
- An oral history of William Kahan, Revision 1.1, March, 2016
- William Kahan at the Mathematics Genealogy Project
- A Conversation with William Kahan, Dr. Dobb's Journal , November 1, 1997
- An Interview with the Old Man of Floating-Point, February 20, 1998
- IEEE 754 An Interview with William Kahan April, 1998
- Paranoia source code in multiple languages
- Paranoia for modern graphics processing units (GPUs)
- 754-1985 - IEEE Standard for Binary Floating-Point Arithmetic, 1985, Superseded by IEEE Std 754-2008