summaryrefslogtreecommitdiff
path: root/test/math/ieetst.doc
diff options
context:
space:
mode:
Diffstat (limited to 'test/math/ieetst.doc')
-rw-r--r--test/math/ieetst.doc132
1 files changed, 0 insertions, 132 deletions
diff --git a/test/math/ieetst.doc b/test/math/ieetst.doc
deleted file mode 100644
index bd5134beb..000000000
--- a/test/math/ieetst.doc
+++ /dev/null
@@ -1,132 +0,0 @@
-
- ieetst, version 0.2
-
- This software tests the numerical accuracy of floating point
-binary <-> decimal string conversion, as done by your C language
-library functions printf() and scanf(), for compliance with the
-IEEE arithmetic standards ANSI/IEEE Std 754-1985 and ANSI/IEEE
-Std 854-1987. The test covers 32-bit float, 64-bit double, and
-80-bit long double precision conversions to and from decimal
-ASCII strings.
-
- The test program checks for proper implementation of the
-following specifications of the standards:
-
- (1) correctly rounded conversions of numbers of the form M *
- 10^N, where M and N are integers such that, in double precision,
- for example, |M| < 10^17, |N| <= 27.
-
- (2) binary -> decimal -> binary conversions to be an identity
- if a sufficiently large number of decimal digits is requested.
-
- (3) correctly rounded decimal outputs of less than the maximum
- number of digits
-
- (4) The maximum observed conversion error of numbers outside the
- domain covered by (1) is reported by the test program; it is
- not supposed to exceed 0.97 ulp.
-
-There are 10 separate tests. Tests 1 through 6 use values near
-2^n and 10^n. Test 7 addresses item (1) above. Test 8 checks
-the rounding of exact half-integer numbers. Test 9 is for item
-(4) above. Test 10 checks denormal numbers. Tests 8 through 10
-address item (3) using printf formats that produce outputs of 1,
-2, 3, ... digits after the decimal point. All tests check, when
-appropriate, that the binary output of scanf is the same as the
-binary input to printf, item (2).
-
-Example error messages:
-
- 0000 0000 0000 1000 8000 3f80 ->printf-> 5.87748296e-39 ->scanf->
- 0000 0000 0000 0000 8000 3f6e is not an identity.
-
- scanf(-9.9999900000000003e-01) -> 0000 4800 085f ef39 ffff bffe
- should be 0000 5000 085f ef39 ffff bffe .
-
- printf("%.14e", 6.13592315154256467968352E-3) -> 6.13592315154257e-03
- should be 6.13592315154256E-3 .
-
-Binary values are displayed as four-digit hex groups in the
-little-endian format of the internal reference arithmetic. The
-least significant 16-bit word is first, the exponent is last.
-
- The design of the test program requires knowing the binary
-data structure of the floating point format under test. For
-configuration, check the .h files carefully. All the programs
-need to be told via mconf.h if the numeric format is
-little-endian (IBMPC) or big-endian (MIEEE). If your system
-supports an 80-bit long double precision data type, define
-LDOUBLE 1 in ieetst.c; otherwise define LDOUBLE 0. A provision
-for DEC PDP-11/VAX numbers is implemented (double precision
-only). Conversions for other data structures can be added by
-analogy to the ifdefs for DEC.
-
- Most of the tests rely on comparison with the results of a
-portable reference arithmetic, contained in the file ieee.c.
-This is configured for an 80-bit significand, to have enough
-precision to satisfy the conversion requirements of IEEE 854 for
-the extended double format of IEEE 754. The reference arithmetic
-includes binary <--> ASCII conversion routines and single <-->
-double <--> extended double conversions. A strictly rounded
-square root function is given in esqrt.c. Additional functions
-are provided by elog.c, eexp.c, etanh.c, epow.c, all of which
-call on ieee.c for their arithmetic. Some of the ANSI C
-functions are supplied in ieee.c; for example, efloor(),
-efrexp(), eldexp(). The functions and the reference arithmetic
-are described further in the book _Methods and Programs for
-Mathematical Functions_ (Prentice-Hall or Simon & Schuster
-International, 1989), by S. L. Moshier.
-
- As an aid in diagnosis, a calculator program, ecalc.c, is
-supplied. It uses ieee.c for its arithmetic. Documentation for
-the calculator's user interface is in the file calc100.doc
-(calc100 is a fuller featured 100-digit version of ecalc). The
-calculator needs to be told by qcalc.h if addresses are 32 bits
-long (define LARGEMEM 1) or 16 bits long (define LARGEMEM 0).
-
- Because the source code of ieee.c is included here, a version
-of W. Kahan's PARANOIA is also provided; this has been heavily
-modified by substituting subroutine calls to ieee.c in place of
-all arithmetic operators. It is important that you use PARANOIA
-to check the arithmetic after any modifications you may make to
-ieee.c.
-
- Several systems have been tested with the initial version of
-ieetst. Sun 4 (SPARC) passes; DEC VMS C has only a small flaw;
-Microsoft flunks; ATT SysVR2 (Motorola) flunks even worse.
-
-
- Files:
-
-calc100.doc calculator documentaton
-descrip.mms part of VAX VMS makefile
-drand.c random number generator
-ecalc.c calculator
-ecalc.opt part of VAX VMS makefile
-econst.c constants for reference arithmetic
-eexp.c reference exponential function
-ehead.h declarations for reference arithmetic routines
-elog.c reference logarithm
-eparanoi.c floating point arithmetic tester
-eparanoi.opt part of VAX VMS makefile
-epow.c reference exponentiation
-esqrt.c reference square root
-etanh.c reference hyperbolic tangent
-etodec.c conversions to and from DEC double precision format
-ieee.c the reference arithmetic
-ieetst.c printf/scanf tester
-ieetst.doc this file
-ieetst.mak Microsoft make file
-ieetst.opt part of VAX VMS makefile
-makefile Unix make file
-mconf.h definitions for arithmetic format
-mtherr.c common error reporter
-qcalc.h definitions for calculator
-
-
-This software may be copied freely.
-
--- Steve Moshier
-
-v0.1 July, 1992
-v0.2 January, 1993