11.001001000011111101101010100010001000 Arithmazium

Library

E The Library is for Everyone.

The Floating Point Standard – a reader's guide and timeline

IEEE Standard 754-1985 for Binary Floating-Point Arithmetic

The original, launched 1977 and approved 1985. It's binary only, and lacking many refinements of later revisions. Permission from IEEE is pending to post this decades-old version that got it all started.

IEEE Standard 854-1987 for Radix-Independent Floating-Point Arithmetic

The radix-independent sequel to 754. Pending.

IEEE Standard 754-2019 for Floating-Point Arithmetic

The latest revision of the floating point standard is available from the IEEE, for a fee. Pending.

Contributions to a Proposed Standard for Binary Floating-Point Arithmetic

Ph.D. thesis of Jerome Coonen, including several papers leading to the adoption of 754-1985 and the original IEEE test vectors, made publicly available by Zilog, Inc. in 1980.

An Advanced Set of Tools to Check IEEE 754-2008 Conformity

Ph.D. thesis of Matthias Hüsken.

Draft of material on a Floating-Point Standard from discussions

The April 1978 draft of what was initially called the KCS proposal. This draft contained much supporting material by Harold Stone. It led to what became IEEE 754.

Final Program -- Fourth IEEE Symposium on Computer Arithmetic

Over a year after the first IEEE 754 committee meeting, and with several proposals already on the table, ARITH 1978 featured the panel session Is Floating-Point Arithmetic Standardization Possible?, chaired by William J. Cody.


William Kahan

IEEE 754

Why do we need a floating-point arithmetic standard?

Motivation for the features of IEEE 754 and many examples of their uses. If you are going to read just one of all these papers, read this one.

The Baleful Effect of Computer Languages and Benchmarks on Applied Mathematics, Physics and Chemistry (talk 1997)

Slides for the John von Neumann Lecture at the 45th Annual Meeting of S.I.A.M., at Stanford University.

The Baleful Effect of SPEC Benchmarks on Applied Mathematics, Physics and Chemistry (talk 2005)

Variation prepared for SPEC benchmark group. With the IEEE 754 revision committee.

The Baleful Effect of Computer Benchmarks on Applied Mathematics, Physics and Chemistry (talk 1996)

Early version of the John von Neumann lecture.

Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic

A State-of-the-Standard report a dozen years after adoption of 754, with a focus on the dismal state of support in programming languages.

An Interview with the Old Man of Floating-Point

A candid recounting of the emergence of the standard.

Software \( \sqrt{x} \) for the Proposed IEEE Floating-Point Standard

How to extract a square root in software, honoring the IEEE 754 rounding direction. Includes comments on testing, and historical notes.

Square Root without Division

Extacting a square root with addition, subtraction, and multiplication. Includes MatLab code.

SoftSqrt

With K.C. Ng. Two algorithms for correctly rounded square root. One uses Newton's Method, with divisions. The other is a variant of reciproot, requiring more mulitiplicitons.

Pseudo-Divison Algorithms for Floating-Point Logarithms and Exponentials

Some of the ideas underlying the transcendental funtions on the Intel 8087.

Pseudo-Divison Algorithms for Floating-Point Logarithms and Exponentials (Revised)

Updated, typeset discussion of the ideas underlying the transcendental funtions on the Intel 8087.

Elementary Functions from Kernels

Compute the common trigonometric and hyperbolic functions from a core set of logarithm, exponential, tangent, and arctangent functions.

Elementary Inqualities among Elementary Functions

A discussion of not entirely elementray relationships among the elementary functions, including special values \( \pm 0, \pm 1, \pm \infty \).

Mathematics Written in Sand – the hp-15C, Intel 8087, etc.

Discussion of the computational benefits of the Intel 8087 math coprocessor and the HP-15C scientific calculator. Prepared for the Joint Statistical Meetings of ASA-ENAR-WNAR-IMS-SSC, August 1983.

A Computer Program with Almost No Significance

"An amusing little program that computes Z = 2.0 correctly, despite roundoff, only on computers that round products and quotients in the way specifed by IEEE Standard 754 . . .", from the Abstract, November 1988.

The Occasional Futility of Higher-Precision Arithmetic

Analysis of a function G(x) which should evaluate to \( 1.0 \) for all real x, but which misbehaves for x = 15, 16, 17, .... The misbehavior persists despite extra precision used in the computation.

Presubstitution, and Continued Fractions

"This is a case study of attemps to program the computation of a continued fraction and its derivative in a way that avoids spurious behavior . . .", from the Abstract, March 1987.

Branch Cuts for Complex Elementary Functions
or Much Ado About Nothing's Sign Bit

Prepared for the joint IMA/SIAM Conference on "The State of the Art in Numerical Analysis" held April 1986. Oxford University Press published the proceedings, edited by M. J. D. Powell and A. Iserles, in 1987.

Augmenting a Programming Language with Complex Aritmetic

With J. W. Thomas. This paper proposes augmenting languages already with complex arithmetic by adding an imaginary type. UC Berkeley Technical Report UCB/CSD 91/667, Dec. 1991

Beastly Numbers

Short paper about FIST, a program to test the conversion of floating point numbers to an integer format.

How Futile are Mindless Assessments of Roundoff in Floating-Point Computation?

A baker's dozen examples discussed in detail.

Why Gradual Underflow?

Argunment at the height of the debate.

Two Questions for Drs. Payne and Bhandarkar concerning their paper VAX FLOATING POINT: A Solid Foundation for Numerical Computation presented at Electro/80

Debate with DEC engineers.

Why Must \( 0^0 = 1 \)?

Several pages of examples in support.

Fclass: a Proposed Classification of Standard Floating-Point Operands

Suggestions for compiler writers to support the treatment of floating point values as strings of bits, both at compile time and at run time.

Names for Standardized Floating-Point Formats

Discussion of the floating point entities we must refer to in programming languages – and the challenges of choosing names.

Rational Arithmetic in Floating-Point

How to compute M/N := A/B ± C/D given integer values whose various products may exceed the number of available significant bits.

About Standard Numerics

Foreword to the Apple Numerics Manual of the early 1980s.

Documentation for CTRL87

Description of CTRL87.EXE, which ran on MS-DOS 3.3 and later systems. Includes details of IEEE 754 exceptions as realized on 8087. An appendix describes how to change the state of the Motorola 68881 math coprocessor on an Apple Macintosh using the venerable Macsbug debugger.

What Can You Learn about Floating-Pooint Arithmetic in One Hour?

23 pretty self-contained slides. Lecture not included.


Calculators

Can You Count on Your Calculator?

Many examples of how things can go wrong – and sometimes right – on a variety of calculators. With Beresford N. Parlett.

Do You Trust Your Calculator?

Slides from a popular talk delivered many times. Includes many decimal examples.

Personal Calculator Has Key to Solve Any Equation f(x) = 0

Paper in Hewlett Packard Journal, December 1979, describes the Solve key, introduced on the HP-34C and featured on the HP-15C. This article, along with the calculator's manual, provides a short course in equation solving.

Handheld Calculator Evaluates Integrals

Paper in Hewlett Packard Journal, August 1980, describes the \( \int_y^x \) key, introduced on the HP-34C and featured on the HP-15C. This article, along with the calculator's manual, provides a short course in numerical integration.


Other arithmetic

Ruminations on the Design of Floating-Point Arithmetic

An error analyst looks at the state of the computing world over 40 years after launching the design of IEEE 754.

Floating-Point: Historical Perspective and Further Reading

Historical note tracing floating point experiences as far back as the 1930s that led to IEEE 754.

Anomalies in the IBM ACRITH Package

Discussion of the super-accuumulator promoted in ACRITH. Paper to the 7th IEEE Symposium on Computer Arithmetic, with Emile LeBlanc, 1985.

Further Remarks on Reducing Truncation Errors

An early look at doubled precision in a sum. CACM January 1965.

Lecture notes on the floating point arithmetic of three machines, 1972

Fun facts about the IBM 650, IBM 360, and the CDC 6000-7000 for engineers and scientists trying to port numerical codes.

Default Rules for Rounding Fixed Precision Floating Point Arithmetic (Ignoring Over/Underflow)

Faded one-page note on tattered paper, from September 1969. It was Prof. W. Kahan's first fall quarter at U.C. Berkeley.


Numerical algorithms and error analysis

A Survey of Error Analysis

A compilation of expert techniques in the mainframe era, with examples in Fortran. Submitted to IFIP 1971.

Implementation of Algorithns, Part I

Detailed notes by W.S. Haugeland and D. Hough from Kahan's course of the same name, taught at U.C. Berkeley in 1970 and 1972. PartI covers basic methods, with much discussion of the arithmetic on the CDC 6000 and Burroughs B5000 machines.

Implementation of Algorithns, Part II

Part II of the notes by W.S. Haugeland and D. Hough has more mathematical content and appendices by other students.

The Table-Makers' Dilemma (paper)

Accuracy is not an end in itself, but a means to other ends. From the Abstract, 1971.

The Table-Maker's Dilemma and Other Quandaries (talk)

Verbatin transcript of a talk given at Purdue University in May 1974.

Why Can I Debug some Numerical Programs that You Can't?

Slides for the celebration of 50th Anniversary of George Forsythe’s founding of Stanford’s Computer Science Dept.

The Error-Analyst's Quandary

Short note on numerical stability.

Summing a Slowly Convergent Series

Analysis of a sum known to converge slowly to \( \pi / 2 \).

How To Solve a Real Cubic Equation

Expert techniques of numerical analysis applied to an ordinary-looking problem.

Analysis and Application of Simply Compensated Summation

Detailed analysis of a “simple” sum.

Computing \( 1 - s^{2} \) Accurately in Binary Floating-Point

How best to compute \( cos( \theta ) \) given \( sin( \theta ) \).

Machine-Independent Algorithms for floor(x) and ceil(x)

Covers arithmetics including those predating IEEE 754. Includes a short Basic program to determine the smallest positive number beyond which all floating point values are integers.

What's Wrong with These Programs?

Three short, tricky programs.

Where Does Laguerre's Method Come From?

One-page summary.


Intel

Implementation of Transcendental Functions on a Numerics Processor

Rafi Nave, who led the 8087 development team in Haifa, Israel describes the CORDIC algorithm used to implement the “kernel” functions, on which a full function library could be built.

The Difference Between x87 Instructions FSIN, FCOS, FSINCOS, and FPTAN and Mathematical Functions sin, cos, sincos, and tan

Description of the polynomial approximations on 80387 and later implementations, which superceded the earlier pseudo-division algorithms on the 8087.

80286 and 80287 Programmer's Reference Manual

80287 supported the arithmetic and transcendtal functions of the original 8087.

80387 Programmer's Reference Manual

80387 was the first big step up from 8087, 80187, and 80287.

Intel Microprocessors: 8008 to 8086

Stephen Morse, Bruce Ravenel, Stanley Mazor, and William Pohlman tell the story of Intel microprocessors leading up to the 8087 coprocessor.

Coprocessor implements floating-point math

Electronic Design article with the basic facts about the new chip.

The Intel 8087 Numerics Processor Extension

April 1983 Byte article by Robert Simington of Intel.


Articles related to IEEE 754

2007 interview of Robert G. Stewart by Stephen Diamond

The story of the origin of the IEEE Microprocessor Standards, including 754.

Letter from Donald Knuth to Richard Delp

April 1980 letter to the 754 subcommittee from the author of The Art of Computer Programming. Knuth praises the use of gradual underflow and urges adoption of the proposal.

Summary of a Discussion on Machine Arithmetic

Notes from a panel at the Workshop on Portability of Numerical Software, June 1976. The experts could never have guessed that one year laater IEEE Standard 754 would be launched.

Can You Count on Your Computer?

A piece by Ivars Peterson in Science News.


Arithmetic other than IEEE 754

A Unified Decimal Floating-Point Architecture to Support High-Level Languages by Frederic N. Ris, 1976

IBM Research, 1976. Frederic N. Ris and others at Yorktown Heihts studied the possibility of decimal arithmetic in machines to succeed the 360 family. This is all that was ever revealed of that years-long effort.

Proposal for Decimal Floating-Point Arithmetic

An early proposal from Pat Sterbenz addressed to William Kahan, 1973.

Summary of a discussion on machine arithmetic

Notes from a panel chaired by Christian Reinsch, during the Workshop on Portability of Numerical Software held in June 1976


The beauty of continued fractions

© 2024 Jerome Coonen