Project 44: Arithmetic specification
Pasadena 1984:
===============
(Hull - Cody): Should WG 2.5 try to agree on recommended
specifications for floating point arithmetic and related functions?
They could look something like the following:
The arithmetic must be well documented and the documentation should
include
(1) base, precision, minexp, maxexp
(2) accuracy
- results of 4 arithmetic operations rounded to nearest
(nearest even in case of a tie) [ref. to IEEE]
- but, if not, at least explain how results are obtained
and, in any event, provide rreb (for relative round off
error bound) such that fl(a op b) = (a op b)(1+eps) where
|eps| <= rreb and rreb is at most 1 or 2 ulps (units in the
last place).
(3) in case an exception (overflow, underflow, indeterminate, or
zerodivide) arises,
- the type of exception should be made known
- provision should be made for continuing with the computations
All the above applies both at the hardware level and at the language
level. At the language level, the 5 parameters (base, precision, mine;
maxexp, rreb) may also be made available through environment enquires!
Certain related operators should also be available. These include
- relational operators (there should be exact)
- mod (should be exact for all floating arguments - but can raise an
exception, except overflow)
- div (can raise integeroverflow)
- setexp, getexp (the latter can raise overflow or underflow)
- conversions to and from integer (integeroverflow may be raised in
conversion to integer, a rounding error may occur in conversion
from integer)
- flow, ceil, round (may raise integeroverflow)
- I/O conversions (rounded)
The group votes on the usefulness of such a document : 12 yes, 0 no
and 4 abstentions. Cody, Lawson and Hull agree to prepare a document.
They will circulate it to Smith, Ford, Aird, Einarsson, Feldman, Reid, Paul.
Sophia-Antipolis 1985:
======================
Floating point validation package (Ford)
----------------------------------------
A package for testing floating-point arithmetic has been developed
at NAG Central Office, in collaboration with Dr. B.A. Wichmann of
the National Physical Laboratory. The testing strategy is similar
to that used by Dr. N.L. Schryer (A.T. & T. Bell Laboratories) in
his program FPTST, but includes a number of extensions. The Brown
model of floating-point arithmetic is used to provide a generally
applicable criterion of correctness, but the package can also check
for conformity with certain specific rounding rules. Values must
be supplied to the package for the basic parameters of the model:
base, precision, and minimum and maximum exponent. The following
operations are tested: addition, subtraction, multiplication,
division, square root, negation, absolute value, and comparisons.
The package (called FPV) has been written in both Fortran and
Pascal versions. If desired, the operation of the package can be
split into two phases: generation of a file of test data, followed
by execution of the tests (possibly on a different machine). This
makes it easier to test arithmetic on small microcomputers, and in
other languages (e.g. Ada, Basic), since only the program for the
second phase need be translated. The package is being prepared for
marketing by NAG. It has already detected errors in floating-point
arithmetic on the following systems: DEC VAX-11 (Software for G-
floating and H-floating formats): ICL 2988: Cray-1 (double
precision routines in COS 1.14).
Como 1987:
==========
Hull: An algorithm for specifying arithmetic and other basic
operations such as div and mod and the directed roundings was
presented, but no decision was made on where this might head.
Stanford 1988:
==============
T. Hull will provide a closing document for this project.
Jerusalem 1990:
===============
Hull suggested merging [44] and [54] with [63] (Vouk). Accepted. Project [44] closed.