minix/lib/libc/gdtoa/test
Lionel Sambuc f14fb60209 Libraries updates and cleanup
* 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
2013-01-14 11:36:26 +01:00
..
obad Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
d.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dd.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
ddsi.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
ddtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dI.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dIsi.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dItest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dt.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
dtst.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
f.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
ftest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
getround.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
makefile Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pfLqtestnos Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pftest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pftestLq.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pftestnos Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pftestQ.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
pftestx.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
Q.ou0 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
Q.ou1 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
Qtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
README Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
rtestnos Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtodISI.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtodt.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtoIddSI.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtoIdSI.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtopddSI.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
strtorddSI.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
testnos Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
testnos1 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
testnos3 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
x.ou0 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
x.ou1 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xL.ou0 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xL.ou1 Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xLtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xQtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xsum0.out Libraries updates and cleanup 2013-01-14 11:36:26 +01:00
xtest.c Libraries updates and cleanup 2013-01-14 11:36:26 +01:00

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 .