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
- adaption of the UCBTEST
tests for the IEEE-specified operations (addition, subtraction,
multiplication, division, square root and rounding);
- evaluation and adaption of the ucblibtests from UCBTEST for
transcendental functions with real-valued answers;
- further development of ucblibtests to enable testing of complex-valued
function calls;
- 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;
- 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
- Evaluation of the ongoing revision of the standard, IEEE 754R, and
adjustment or development of tests as appropriate;
- Cross-implementation development of functionality needed for control
over floating point evaluation, such as trap masking, rounding mode
control;
- Standardization of the meaning of :ieee-floating-point for
Common Lisp implementations.
Project resources
Further reading
Back to Common-lisp.net.