summaryrefslogtreecommitdiff
path: root/doc/TestFloat-history.html
blob: 34aeeda74dc7f262a8b990d9b39a0df4df2505c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204

<HTML>

<HEAD>
<TITLE>Berkeley TestFloat History</TITLE>
</HEAD>

<BODY>

<H1>History of Berkeley TestFloat, to Release 3b</H1>

<P>
John R. Hauser<BR>
2016 July 22<BR>
</P>


<P>
Releases of Berkeley TestFloat normally parallel those of Berkeley SoftFloat,
on which TestFloat is based.
Each TestFloat release necessarily incorporates all bug fixes from the
corresponding release of SoftFloat.
</P>


<H3>Release 3b (2016 July)</H3>

<UL>

<LI>
Added the ability to test the common <NOBR>16-bit</NOBR>
&ldquo;half-precision&rdquo; floating-point format.

<LI>
Added a <CODE>-seed</CODE> option to programs <CODE>testfloat_gen</CODE>,
<CODE>testfloat</CODE>, and <CODE>testsoftfloat</CODE> for setting the seed for
the pseudo-random number generator used to generate test cases.

<LI>
Where a specific choice is needed for how tininess is detected on underflow,
changed the default to be the detection of tininess after rounding
(<CODE>-tininessafter</CODE>) instead of before rounding
(<CODE>-tininessbefore</CODE>).

<LI>
Modified the format of reported discrepancies to show the signs of
floating-point values using <CODE>+</CODE> and <CODE>-</CODE> characters.

<LI>
Documented the use of the <CODE>INLINE</CODE> macro, and fixed the sources for
the case that function inlining is not supported by the C compiler.

<LI>
Documented the possible need to define macro <CODE>THREAD_LOCAL</CODE> to match
how the SoftFloat library was built.

<LI>
Modified the provided Makefiles to allow some options to be overridden from the
<CODE>make</CODE> command.

</UL>


<H3>Release 3a (2015 October)</H3>

<UL>

<LI>
Replaced the license text supplied by the University of California, Berkeley,
and fixed some minor build problems.

</UL>


<H3>Release 3 (2015 February)</H3>

<UL>

<LI>
Complete rewrite, funded by the University of California, Berkeley, and
consequently having a different use license than earlier releases.
Visible changes included different names for testable functions and command
options.

<LI>
Reinstated separate programs for generating test cases
(<CODE>testfloat_ver</CODE>) and verifying test results
(<CODE>testfloat_gen</CODE>), as alternatives to the all-in-one
<CODE>testfloat</CODE> program (which remained supported).

<LI>
Added support for testing conversions between floating-point and unsigned
integers, both <NOBR>32-bit</NOBR> and <NOBR>64-bit</NOBR>.

<LI>
Added support for testing a fused multiply-add operation, for all testable
floating-point formats except <NOBR>80-bit</NOBR> double-extended-precision.

<LI>
Added support for testing a fifth rounding mode, <CODE>near_maxMag</CODE>
(round to nearest, with ties to maximum magnitude, away from zero).

<LI>
Added <CODE>timesoftfloat</CODE> (previously found in the Berkeley SoftFloat
package).

</UL>


<H3>Release 2c (2015 January)</H3>

<UL>

<LI>
Fixed mistakes affecting some <NOBR>64-bit</NOBR> processors.

<LI>
Made minor updates to the documentation, including improved wording for the
legal restrictions on using TestFloat releases <NOBR>through 2c</NOBR> (not
applicable to <NOBR>Release 3</NOBR> or later).

</UL>


<P>
There was never a <NOBR>Release 2b</NOBR>.
</P>


<H3>Release 2a (1998 December)</H3>

<UL>

<LI>
Added support for testing conversions between floating-point and
<NOBR>64-bit</NOBR> signed integers.

<LI>
Improved the Makefiles.

</UL>


<H3>Release 2 (1997 June)</H3>

<UL>

<LI>
Integrated the generation of test cases and the checking of system results into
a single program.
(Before they were separate programs, normally joined by explicit command-line
pipes.)

<LI>
Improved the sequence of test cases.

<LI>
Added support for testing <NOBR>80-bit</NOBR> double-extended-precision and
<NOBR>128-bit</NOBR> quadruple precision.

<LI>
Made program output more readable, and added new command arguments.

<LI>
Reduced dependence on the quality of the standard <CODE>rand</CODE> function
for generating test cases.
(Previously naively expected <CODE>rand</CODE> to be able to generate good
random bits for the entire machine word width.)

<LI>
Created <CODE>testsoftfloat</CODE>, with its own simpler complete software
floating-point (&ldquo;slowfloat&rdquo;) for comparison purposes.

<LI>
Made some changes to the source file structure, including renaming
<CODE>environment.h</CODE> to <CODE>milieu.h</CODE> (to avoid confusion with
environment variables).

</UL>


<H3>Release 1a (1996 July)</H3>

<UL>

<LI>
Added the <CODE>-tininessbefore</CODE> and <CODE>-tininessafter</CODE> options
to control whether tininess should be detected before or after rounding.

</UL>


<H3>Release 1 (1996 July)</H3>

<UL>

<LI>
Original release.

</UL>


</BODY>