Common Lisp and IEEE 754

Introduction

The IEEE standard for floating point operations, IEEE 754, was standardized in 1985. The ANSI standard for Common Lisp specifies that implementations purporting to conform to this IEEE standard should have the :ieee-floating-point keyword on the *features* variable. However, there is no discussion of what purporting to conform to the IEEE 754 standard means in the context of Common Lisp.

Short-term goals

In the short term, we aim to provide a comformance test for reasonable expectations of a Common Lisp implementation purporting to conform to the IEEE 754 standard. While we hope that this conformance test will also be useful to implementors not claiming conformance with :ieee-floating-point, they are not our primary audience.

Development milestones for thise goals might include

  1. adaption of the UCBTEST tests for the IEEE-specified operations (addition, subtraction, multiplication, division, square root and rounding);
  2. evaluation and adaption of the ucblibtests from UCBTEST for transcendental functions with real-valued answers;
  3. further development of ucblibtests to enable testing of complex-valued function calls;
  4. development of an IEEE floating point unit simulator, in single-float, double-float and extended modes, and random tests of implementations against this reference implementation;
  5. development of an arbitrary-precision transcendental function evaluator (with knowledge of branch cuts specified in ANSI Common Lisp) and random tests of implementations against this.

Long-term objectives

Project resources

Further reading

Back to Common-lisp.net.

Valid XHTML 1.0 Strict