f14fb60209
* Updating common/lib * Updating lib/csu * Updating lib/libc * Updating libexec/ld.elf_so * Corrected test on __minix in featuretest to actually follow the meaning of the comment. * Cleaned up _REENTRANT-related defintions. * Disabled -D_REENTRANT for libfetch * Removing some unneeded __NBSD_LIBC defines and tests Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
81 lines
3.3 KiB
Text
81 lines
3.3 KiB
Text
This directory contains source for several test programs:
|
|
|
|
dt is for conversion to/from double; it permits input of pairs of
|
|
32-bit hex integers as #hhhhhhhh hhhhhhhh (i.e., the initial '#'
|
|
indicates hex input). No initial # ==> decimal input.
|
|
After the input number is an optional : mode ndigits
|
|
(colon, and decimal integers for parameters "mode" and "ndigits"
|
|
to gdtoa).
|
|
|
|
Qtest, ddtest, dtest, ftest, xLtest and xtest are for conversion to/from
|
|
|
|
f IEEE single precision
|
|
d IEEE double precision
|
|
xL IEEE extended precision, as on Motorola 680x0 chips
|
|
x IEEE extended precision, as on Intel 80x87 chips or
|
|
software emulation of Motorola 680x0 chips
|
|
Q quad precision, as on Sun Sparc chips
|
|
dd double double, pairs of IEEE double numbers
|
|
whose sum is the desired value
|
|
|
|
They're all similar, except for the precision. They test both
|
|
directed roundings and interval input (the strtoI* routines).
|
|
Lines that begin with "r" specify or interrogate the desired rounding
|
|
direction:
|
|
|
|
0 = toward 0
|
|
1 = nearest (default)
|
|
2 = toward +Infinity
|
|
3 = toward -Infinity
|
|
|
|
These are the FPI_Round_* values in gdota.h. The "r" value is sticky:
|
|
it stays in effect til changed. To change the value, give a line that
|
|
starts with r followed by 0, 1, 2, or 3. To check the value, give "r"
|
|
by itself.
|
|
|
|
Lines that begin with n followed by a number specify the ndig
|
|
argument for subsequent calls to the relevant g_*fmt routine.
|
|
|
|
Lines that start with # followed by the appropriate number of
|
|
hexadecimal strings (see the comments) give the big-endian
|
|
internal representation of the desired number.
|
|
|
|
When routines Qtest, xLtest, and xtest are used on machines whose
|
|
long double is of type "quad" (for Qtest) or "extended" (for x*test),
|
|
they try to print with %Lg as another way to show binary values.
|
|
|
|
Program ddtest also accepts (white-space separated) pairs of decimal
|
|
input numbers; it converts both with strtod and feeds the result
|
|
to g_ddfmt.
|
|
|
|
Program dItest exercises strtodI and strtoId.
|
|
|
|
Programs dItestsi and ddtestsi are for testing the sudden-underflow
|
|
logic (on double and double-double conversions).
|
|
|
|
Program strtodt tests strtod on some hard cases (in file testnos3)
|
|
posted by Fred Tydeman to comp.arch.arithmetic on 26 Feb. 1996.
|
|
To get correct results on Intel (x86) systems, the rounding precision
|
|
must be set to 53 bits. This can be done, e.g., by invoking
|
|
fpinit_ASL(), whose source appears in
|
|
http://www.netlib.org/ampl/solvers/fpinit.c .
|
|
|
|
The obad directory shows results expected on (at least some) Intel x86
|
|
Linux systems and may not be relevant to other systems.
|
|
|
|
You can optionally compile getround.c with -DHonor_FLT_ROUNDS
|
|
to manually test strtof, strtod, etc., using fegetround().
|
|
You can also or alternatively compile getround.c with
|
|
-DUSE_MY_LOCALE (when ../gdtoa.a is compiled with -DUSE_LOCALE)
|
|
to test multi-byte decimal points.
|
|
|
|
If in the parent directory, you have sucessfully invoked "make Printf"
|
|
to add a "printf" (called Printf and accessed via ../stdio1.h), then
|
|
here you can use "make pf_test" and (if you have both a 64-bit long
|
|
double and a 113-bit "quad" double type) "make pf_testLq" for a brief
|
|
test of %g and %a variants in Printf.
|
|
|
|
These are simple test programs, not meant for exhaustive testing,
|
|
but for manually testing "interesting" cases. Paxson's testbase
|
|
is good for more exhaustive testing, in part with random inputs.
|
|
See ftp://ftp.ee.lbl.gov/testbase-report.ps.Z .
|