blob: 95f13266026c6ed5755c0e8d270e5f59bd895d75 [file] [log] [blame]
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001------------------------------------------------------------------------
2-- rounding.decTest -- decimal rounding modes testcases --
Benjamin Petersonf17ff4e2008-07-31 16:32:12 +00003-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00004------------------------------------------------------------------------
5-- Please see the document "General Decimal Arithmetic Testcases" --
6-- at http://www2.hursley.ibm.com/decimal for the description of --
7-- these testcases. --
8-- --
9-- These testcases are experimental ('beta' versions), and they --
10-- may contain errors. They are offered on an as-is basis. In --
11-- particular, achieving the same results as the tests here is not --
12-- a guarantee that an implementation complies with any Standard --
13-- or specification. The tests are not exhaustive. --
14-- --
15-- Please send comments, suggestions, and corrections to the author: --
16-- Mike Cowlishaw, IBM Fellow --
17-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
18-- mfc@uk.ibm.com --
19------------------------------------------------------------------------
Mark Dickinson8a546532009-10-08 16:30:38 +000020version: 2.59
Raymond Hettinger7c85fa42004-07-01 11:01:35 +000021
22-- These tests require that implementations take account of residues in
23-- order to get correct results for some rounding modes. Rather than
24-- single rounding tests we therefore need tests for most operators.
25-- [We do assume add/minus/plus/subtract are common paths, however, as
26-- is rounding of negatives (if the latter works for addition, assume it
27-- works for the others, too).]
28--
Thomas Wouters1b7f8912007-09-19 03:06:30 +000029-- Round-for-reround (05UP) is tested as a separate block, mostly for
30-- 'historical' reasons.
31--
32-- Underflow Subnormal and overflow behaviours are tested under the
33-- individual operators.
Raymond Hettinger7c85fa42004-07-01 11:01:35 +000034
35extended: 1
36precision: 5 -- for easier visual inspection
37maxExponent: 999
38minexponent: -999
39
40-- Addition operators -------------------------------------------------
41rounding: down
42
43radx100 add 12345 -0.1 -> 12344 Inexact Rounded
44radx101 add 12345 -0.01 -> 12344 Inexact Rounded
45radx102 add 12345 -0.001 -> 12344 Inexact Rounded
46radx103 add 12345 -0.00001 -> 12344 Inexact Rounded
47radx104 add 12345 -0.000001 -> 12344 Inexact Rounded
48radx105 add 12345 -0.0000001 -> 12344 Inexact Rounded
49radx106 add 12345 0 -> 12345
50radx107 add 12345 0.0000001 -> 12345 Inexact Rounded
51radx108 add 12345 0.000001 -> 12345 Inexact Rounded
52radx109 add 12345 0.00001 -> 12345 Inexact Rounded
53radx110 add 12345 0.0001 -> 12345 Inexact Rounded
54radx111 add 12345 0.001 -> 12345 Inexact Rounded
55radx112 add 12345 0.01 -> 12345 Inexact Rounded
56radx113 add 12345 0.1 -> 12345 Inexact Rounded
57
58radx115 add 12346 0.49999 -> 12346 Inexact Rounded
59radx116 add 12346 0.5 -> 12346 Inexact Rounded
60radx117 add 12346 0.50001 -> 12346 Inexact Rounded
61
62radx120 add 12345 0.4 -> 12345 Inexact Rounded
63radx121 add 12345 0.49 -> 12345 Inexact Rounded
64radx122 add 12345 0.499 -> 12345 Inexact Rounded
65radx123 add 12345 0.49999 -> 12345 Inexact Rounded
66radx124 add 12345 0.5 -> 12345 Inexact Rounded
67radx125 add 12345 0.50001 -> 12345 Inexact Rounded
68radx126 add 12345 0.5001 -> 12345 Inexact Rounded
69radx127 add 12345 0.501 -> 12345 Inexact Rounded
70radx128 add 12345 0.51 -> 12345 Inexact Rounded
71radx129 add 12345 0.6 -> 12345 Inexact Rounded
72
73rounding: half_down
74
75radx140 add 12345 -0.1 -> 12345 Inexact Rounded
76radx141 add 12345 -0.01 -> 12345 Inexact Rounded
77radx142 add 12345 -0.001 -> 12345 Inexact Rounded
78radx143 add 12345 -0.00001 -> 12345 Inexact Rounded
79radx144 add 12345 -0.000001 -> 12345 Inexact Rounded
80radx145 add 12345 -0.0000001 -> 12345 Inexact Rounded
81radx146 add 12345 0 -> 12345
82radx147 add 12345 0.0000001 -> 12345 Inexact Rounded
83radx148 add 12345 0.000001 -> 12345 Inexact Rounded
84radx149 add 12345 0.00001 -> 12345 Inexact Rounded
85radx150 add 12345 0.0001 -> 12345 Inexact Rounded
86radx151 add 12345 0.001 -> 12345 Inexact Rounded
87radx152 add 12345 0.01 -> 12345 Inexact Rounded
88radx153 add 12345 0.1 -> 12345 Inexact Rounded
89
90radx155 add 12346 0.49999 -> 12346 Inexact Rounded
91radx156 add 12346 0.5 -> 12346 Inexact Rounded
92radx157 add 12346 0.50001 -> 12347 Inexact Rounded
93
94radx160 add 12345 0.4 -> 12345 Inexact Rounded
95radx161 add 12345 0.49 -> 12345 Inexact Rounded
96radx162 add 12345 0.499 -> 12345 Inexact Rounded
97radx163 add 12345 0.49999 -> 12345 Inexact Rounded
98radx164 add 12345 0.5 -> 12345 Inexact Rounded
99radx165 add 12345 0.50001 -> 12346 Inexact Rounded
100radx166 add 12345 0.5001 -> 12346 Inexact Rounded
101radx167 add 12345 0.501 -> 12346 Inexact Rounded
102radx168 add 12345 0.51 -> 12346 Inexact Rounded
103radx169 add 12345 0.6 -> 12346 Inexact Rounded
104
105rounding: half_even
106
107radx170 add 12345 -0.1 -> 12345 Inexact Rounded
108radx171 add 12345 -0.01 -> 12345 Inexact Rounded
109radx172 add 12345 -0.001 -> 12345 Inexact Rounded
110radx173 add 12345 -0.00001 -> 12345 Inexact Rounded
111radx174 add 12345 -0.000001 -> 12345 Inexact Rounded
112radx175 add 12345 -0.0000001 -> 12345 Inexact Rounded
113radx176 add 12345 0 -> 12345
114radx177 add 12345 0.0000001 -> 12345 Inexact Rounded
115radx178 add 12345 0.000001 -> 12345 Inexact Rounded
116radx179 add 12345 0.00001 -> 12345 Inexact Rounded
117radx180 add 12345 0.0001 -> 12345 Inexact Rounded
118radx181 add 12345 0.001 -> 12345 Inexact Rounded
119radx182 add 12345 0.01 -> 12345 Inexact Rounded
120radx183 add 12345 0.1 -> 12345 Inexact Rounded
121
122radx185 add 12346 0.49999 -> 12346 Inexact Rounded
123radx186 add 12346 0.5 -> 12346 Inexact Rounded
124radx187 add 12346 0.50001 -> 12347 Inexact Rounded
125
126radx190 add 12345 0.4 -> 12345 Inexact Rounded
127radx191 add 12345 0.49 -> 12345 Inexact Rounded
128radx192 add 12345 0.499 -> 12345 Inexact Rounded
129radx193 add 12345 0.49999 -> 12345 Inexact Rounded
130radx194 add 12345 0.5 -> 12346 Inexact Rounded
131radx195 add 12345 0.50001 -> 12346 Inexact Rounded
132radx196 add 12345 0.5001 -> 12346 Inexact Rounded
133radx197 add 12345 0.501 -> 12346 Inexact Rounded
134radx198 add 12345 0.51 -> 12346 Inexact Rounded
135radx199 add 12345 0.6 -> 12346 Inexact Rounded
136
137rounding: half_up
138
139radx200 add 12345 -0.1 -> 12345 Inexact Rounded
140radx201 add 12345 -0.01 -> 12345 Inexact Rounded
141radx202 add 12345 -0.001 -> 12345 Inexact Rounded
142radx203 add 12345 -0.00001 -> 12345 Inexact Rounded
143radx204 add 12345 -0.000001 -> 12345 Inexact Rounded
144radx205 add 12345 -0.0000001 -> 12345 Inexact Rounded
145radx206 add 12345 0 -> 12345
146radx207 add 12345 0.0000001 -> 12345 Inexact Rounded
147radx208 add 12345 0.000001 -> 12345 Inexact Rounded
148radx209 add 12345 0.00001 -> 12345 Inexact Rounded
149radx210 add 12345 0.0001 -> 12345 Inexact Rounded
150radx211 add 12345 0.001 -> 12345 Inexact Rounded
151radx212 add 12345 0.01 -> 12345 Inexact Rounded
152radx213 add 12345 0.1 -> 12345 Inexact Rounded
153
154radx215 add 12346 0.49999 -> 12346 Inexact Rounded
155radx216 add 12346 0.5 -> 12347 Inexact Rounded
156radx217 add 12346 0.50001 -> 12347 Inexact Rounded
157
158radx220 add 12345 0.4 -> 12345 Inexact Rounded
159radx221 add 12345 0.49 -> 12345 Inexact Rounded
160radx222 add 12345 0.499 -> 12345 Inexact Rounded
161radx223 add 12345 0.49999 -> 12345 Inexact Rounded
162radx224 add 12345 0.5 -> 12346 Inexact Rounded
163radx225 add 12345 0.50001 -> 12346 Inexact Rounded
164radx226 add 12345 0.5001 -> 12346 Inexact Rounded
165radx227 add 12345 0.501 -> 12346 Inexact Rounded
166radx228 add 12345 0.51 -> 12346 Inexact Rounded
167radx229 add 12345 0.6 -> 12346 Inexact Rounded
168
169rounding: up
170
171radx230 add 12345 -0.1 -> 12345 Inexact Rounded
172radx231 add 12345 -0.01 -> 12345 Inexact Rounded
173radx232 add 12345 -0.001 -> 12345 Inexact Rounded
174radx233 add 12345 -0.00001 -> 12345 Inexact Rounded
175radx234 add 12345 -0.000001 -> 12345 Inexact Rounded
176radx235 add 12345 -0.0000001 -> 12345 Inexact Rounded
177radx236 add 12345 0 -> 12345
178radx237 add 12345 0.0000001 -> 12346 Inexact Rounded
179radx238 add 12345 0.000001 -> 12346 Inexact Rounded
180radx239 add 12345 0.00001 -> 12346 Inexact Rounded
181radx240 add 12345 0.0001 -> 12346 Inexact Rounded
182radx241 add 12345 0.001 -> 12346 Inexact Rounded
183radx242 add 12345 0.01 -> 12346 Inexact Rounded
184radx243 add 12345 0.1 -> 12346 Inexact Rounded
185
186radx245 add 12346 0.49999 -> 12347 Inexact Rounded
187radx246 add 12346 0.5 -> 12347 Inexact Rounded
188radx247 add 12346 0.50001 -> 12347 Inexact Rounded
189
190radx250 add 12345 0.4 -> 12346 Inexact Rounded
191radx251 add 12345 0.49 -> 12346 Inexact Rounded
192radx252 add 12345 0.499 -> 12346 Inexact Rounded
193radx253 add 12345 0.49999 -> 12346 Inexact Rounded
194radx254 add 12345 0.5 -> 12346 Inexact Rounded
195radx255 add 12345 0.50001 -> 12346 Inexact Rounded
196radx256 add 12345 0.5001 -> 12346 Inexact Rounded
197radx257 add 12345 0.501 -> 12346 Inexact Rounded
198radx258 add 12345 0.51 -> 12346 Inexact Rounded
199radx259 add 12345 0.6 -> 12346 Inexact Rounded
200
201rounding: floor
202
203radx300 add 12345 -0.1 -> 12344 Inexact Rounded
204radx301 add 12345 -0.01 -> 12344 Inexact Rounded
205radx302 add 12345 -0.001 -> 12344 Inexact Rounded
206radx303 add 12345 -0.00001 -> 12344 Inexact Rounded
207radx304 add 12345 -0.000001 -> 12344 Inexact Rounded
208radx305 add 12345 -0.0000001 -> 12344 Inexact Rounded
209radx306 add 12345 0 -> 12345
210radx307 add 12345 0.0000001 -> 12345 Inexact Rounded
211radx308 add 12345 0.000001 -> 12345 Inexact Rounded
212radx309 add 12345 0.00001 -> 12345 Inexact Rounded
213radx310 add 12345 0.0001 -> 12345 Inexact Rounded
214radx311 add 12345 0.001 -> 12345 Inexact Rounded
215radx312 add 12345 0.01 -> 12345 Inexact Rounded
216radx313 add 12345 0.1 -> 12345 Inexact Rounded
217
218radx315 add 12346 0.49999 -> 12346 Inexact Rounded
219radx316 add 12346 0.5 -> 12346 Inexact Rounded
220radx317 add 12346 0.50001 -> 12346 Inexact Rounded
221
222radx320 add 12345 0.4 -> 12345 Inexact Rounded
223radx321 add 12345 0.49 -> 12345 Inexact Rounded
224radx322 add 12345 0.499 -> 12345 Inexact Rounded
225radx323 add 12345 0.49999 -> 12345 Inexact Rounded
226radx324 add 12345 0.5 -> 12345 Inexact Rounded
227radx325 add 12345 0.50001 -> 12345 Inexact Rounded
228radx326 add 12345 0.5001 -> 12345 Inexact Rounded
229radx327 add 12345 0.501 -> 12345 Inexact Rounded
230radx328 add 12345 0.51 -> 12345 Inexact Rounded
231radx329 add 12345 0.6 -> 12345 Inexact Rounded
232
233rounding: ceiling
234
235radx330 add 12345 -0.1 -> 12345 Inexact Rounded
236radx331 add 12345 -0.01 -> 12345 Inexact Rounded
237radx332 add 12345 -0.001 -> 12345 Inexact Rounded
238radx333 add 12345 -0.00001 -> 12345 Inexact Rounded
239radx334 add 12345 -0.000001 -> 12345 Inexact Rounded
240radx335 add 12345 -0.0000001 -> 12345 Inexact Rounded
241radx336 add 12345 0 -> 12345
242radx337 add 12345 0.0000001 -> 12346 Inexact Rounded
243radx338 add 12345 0.000001 -> 12346 Inexact Rounded
244radx339 add 12345 0.00001 -> 12346 Inexact Rounded
245radx340 add 12345 0.0001 -> 12346 Inexact Rounded
246radx341 add 12345 0.001 -> 12346 Inexact Rounded
247radx342 add 12345 0.01 -> 12346 Inexact Rounded
248radx343 add 12345 0.1 -> 12346 Inexact Rounded
249
250radx345 add 12346 0.49999 -> 12347 Inexact Rounded
251radx346 add 12346 0.5 -> 12347 Inexact Rounded
252radx347 add 12346 0.50001 -> 12347 Inexact Rounded
253
254radx350 add 12345 0.4 -> 12346 Inexact Rounded
255radx351 add 12345 0.49 -> 12346 Inexact Rounded
256radx352 add 12345 0.499 -> 12346 Inexact Rounded
257radx353 add 12345 0.49999 -> 12346 Inexact Rounded
258radx354 add 12345 0.5 -> 12346 Inexact Rounded
259radx355 add 12345 0.50001 -> 12346 Inexact Rounded
260radx356 add 12345 0.5001 -> 12346 Inexact Rounded
261radx357 add 12345 0.501 -> 12346 Inexact Rounded
262radx358 add 12345 0.51 -> 12346 Inexact Rounded
263radx359 add 12345 0.6 -> 12346 Inexact Rounded
264
265-- negatives...
266
267rounding: down
268
269rsux100 add -12345 -0.1 -> -12345 Inexact Rounded
270rsux101 add -12345 -0.01 -> -12345 Inexact Rounded
271rsux102 add -12345 -0.001 -> -12345 Inexact Rounded
272rsux103 add -12345 -0.00001 -> -12345 Inexact Rounded
273rsux104 add -12345 -0.000001 -> -12345 Inexact Rounded
274rsux105 add -12345 -0.0000001 -> -12345 Inexact Rounded
275rsux106 add -12345 0 -> -12345
276rsux107 add -12345 0.0000001 -> -12344 Inexact Rounded
277rsux108 add -12345 0.000001 -> -12344 Inexact Rounded
278rsux109 add -12345 0.00001 -> -12344 Inexact Rounded
279rsux110 add -12345 0.0001 -> -12344 Inexact Rounded
280rsux111 add -12345 0.001 -> -12344 Inexact Rounded
281rsux112 add -12345 0.01 -> -12344 Inexact Rounded
282rsux113 add -12345 0.1 -> -12344 Inexact Rounded
283
284rsux115 add -12346 0.49999 -> -12345 Inexact Rounded
285rsux116 add -12346 0.5 -> -12345 Inexact Rounded
286rsux117 add -12346 0.50001 -> -12345 Inexact Rounded
287
288rsux120 add -12345 0.4 -> -12344 Inexact Rounded
289rsux121 add -12345 0.49 -> -12344 Inexact Rounded
290rsux122 add -12345 0.499 -> -12344 Inexact Rounded
291rsux123 add -12345 0.49999 -> -12344 Inexact Rounded
292rsux124 add -12345 0.5 -> -12344 Inexact Rounded
293rsux125 add -12345 0.50001 -> -12344 Inexact Rounded
294rsux126 add -12345 0.5001 -> -12344 Inexact Rounded
295rsux127 add -12345 0.501 -> -12344 Inexact Rounded
296rsux128 add -12345 0.51 -> -12344 Inexact Rounded
297rsux129 add -12345 0.6 -> -12344 Inexact Rounded
298
299rounding: half_down
300
301rsux140 add -12345 -0.1 -> -12345 Inexact Rounded
302rsux141 add -12345 -0.01 -> -12345 Inexact Rounded
303rsux142 add -12345 -0.001 -> -12345 Inexact Rounded
304rsux143 add -12345 -0.00001 -> -12345 Inexact Rounded
305rsux144 add -12345 -0.000001 -> -12345 Inexact Rounded
306rsux145 add -12345 -0.0000001 -> -12345 Inexact Rounded
307rsux146 add -12345 0 -> -12345
308rsux147 add -12345 0.0000001 -> -12345 Inexact Rounded
309rsux148 add -12345 0.000001 -> -12345 Inexact Rounded
310rsux149 add -12345 0.00001 -> -12345 Inexact Rounded
311rsux150 add -12345 0.0001 -> -12345 Inexact Rounded
312rsux151 add -12345 0.001 -> -12345 Inexact Rounded
313rsux152 add -12345 0.01 -> -12345 Inexact Rounded
314rsux153 add -12345 0.1 -> -12345 Inexact Rounded
315
316rsux155 add -12346 0.49999 -> -12346 Inexact Rounded
317rsux156 add -12346 0.5 -> -12345 Inexact Rounded
318rsux157 add -12346 0.50001 -> -12345 Inexact Rounded
319
320rsux160 add -12345 0.4 -> -12345 Inexact Rounded
321rsux161 add -12345 0.49 -> -12345 Inexact Rounded
322rsux162 add -12345 0.499 -> -12345 Inexact Rounded
323rsux163 add -12345 0.49999 -> -12345 Inexact Rounded
324rsux164 add -12345 0.5 -> -12344 Inexact Rounded
325rsux165 add -12345 0.50001 -> -12344 Inexact Rounded
326rsux166 add -12345 0.5001 -> -12344 Inexact Rounded
327rsux167 add -12345 0.501 -> -12344 Inexact Rounded
328rsux168 add -12345 0.51 -> -12344 Inexact Rounded
329rsux169 add -12345 0.6 -> -12344 Inexact Rounded
330
331rounding: half_even
332
333rsux170 add -12345 -0.1 -> -12345 Inexact Rounded
334rsux171 add -12345 -0.01 -> -12345 Inexact Rounded
335rsux172 add -12345 -0.001 -> -12345 Inexact Rounded
336rsux173 add -12345 -0.00001 -> -12345 Inexact Rounded
337rsux174 add -12345 -0.000001 -> -12345 Inexact Rounded
338rsux175 add -12345 -0.0000001 -> -12345 Inexact Rounded
339rsux176 add -12345 0 -> -12345
340rsux177 add -12345 0.0000001 -> -12345 Inexact Rounded
341rsux178 add -12345 0.000001 -> -12345 Inexact Rounded
342rsux179 add -12345 0.00001 -> -12345 Inexact Rounded
343rsux180 add -12345 0.0001 -> -12345 Inexact Rounded
344rsux181 add -12345 0.001 -> -12345 Inexact Rounded
345rsux182 add -12345 0.01 -> -12345 Inexact Rounded
346rsux183 add -12345 0.1 -> -12345 Inexact Rounded
347
348rsux185 add -12346 0.49999 -> -12346 Inexact Rounded
349rsux186 add -12346 0.5 -> -12346 Inexact Rounded
350rsux187 add -12346 0.50001 -> -12345 Inexact Rounded
351
352rsux190 add -12345 0.4 -> -12345 Inexact Rounded
353rsux191 add -12345 0.49 -> -12345 Inexact Rounded
354rsux192 add -12345 0.499 -> -12345 Inexact Rounded
355rsux193 add -12345 0.49999 -> -12345 Inexact Rounded
356rsux194 add -12345 0.5 -> -12344 Inexact Rounded
357rsux195 add -12345 0.50001 -> -12344 Inexact Rounded
358rsux196 add -12345 0.5001 -> -12344 Inexact Rounded
359rsux197 add -12345 0.501 -> -12344 Inexact Rounded
360rsux198 add -12345 0.51 -> -12344 Inexact Rounded
361rsux199 add -12345 0.6 -> -12344 Inexact Rounded
362
363rounding: half_up
364
365rsux200 add -12345 -0.1 -> -12345 Inexact Rounded
366rsux201 add -12345 -0.01 -> -12345 Inexact Rounded
367rsux202 add -12345 -0.001 -> -12345 Inexact Rounded
368rsux203 add -12345 -0.00001 -> -12345 Inexact Rounded
369rsux204 add -12345 -0.000001 -> -12345 Inexact Rounded
370rsux205 add -12345 -0.0000001 -> -12345 Inexact Rounded
371rsux206 add -12345 0 -> -12345
372rsux207 add -12345 0.0000001 -> -12345 Inexact Rounded
373rsux208 add -12345 0.000001 -> -12345 Inexact Rounded
374rsux209 add -12345 0.00001 -> -12345 Inexact Rounded
375rsux210 add -12345 0.0001 -> -12345 Inexact Rounded
376rsux211 add -12345 0.001 -> -12345 Inexact Rounded
377rsux212 add -12345 0.01 -> -12345 Inexact Rounded
378rsux213 add -12345 0.1 -> -12345 Inexact Rounded
379
380rsux215 add -12346 0.49999 -> -12346 Inexact Rounded
381rsux216 add -12346 0.5 -> -12346 Inexact Rounded
382rsux217 add -12346 0.50001 -> -12345 Inexact Rounded
383
384rsux220 add -12345 0.4 -> -12345 Inexact Rounded
385rsux221 add -12345 0.49 -> -12345 Inexact Rounded
386rsux222 add -12345 0.499 -> -12345 Inexact Rounded
387rsux223 add -12345 0.49999 -> -12345 Inexact Rounded
388rsux224 add -12345 0.5 -> -12345 Inexact Rounded
389rsux225 add -12345 0.50001 -> -12344 Inexact Rounded
390rsux226 add -12345 0.5001 -> -12344 Inexact Rounded
391rsux227 add -12345 0.501 -> -12344 Inexact Rounded
392rsux228 add -12345 0.51 -> -12344 Inexact Rounded
393rsux229 add -12345 0.6 -> -12344 Inexact Rounded
394
395rounding: up
396
397rsux230 add -12345 -0.1 -> -12346 Inexact Rounded
398rsux231 add -12345 -0.01 -> -12346 Inexact Rounded
399rsux232 add -12345 -0.001 -> -12346 Inexact Rounded
400rsux233 add -12345 -0.00001 -> -12346 Inexact Rounded
401rsux234 add -12345 -0.000001 -> -12346 Inexact Rounded
402rsux235 add -12345 -0.0000001 -> -12346 Inexact Rounded
403rsux236 add -12345 0 -> -12345
404rsux237 add -12345 0.0000001 -> -12345 Inexact Rounded
405rsux238 add -12345 0.000001 -> -12345 Inexact Rounded
406rsux239 add -12345 0.00001 -> -12345 Inexact Rounded
407rsux240 add -12345 0.0001 -> -12345 Inexact Rounded
408rsux241 add -12345 0.001 -> -12345 Inexact Rounded
409rsux242 add -12345 0.01 -> -12345 Inexact Rounded
410rsux243 add -12345 0.1 -> -12345 Inexact Rounded
411
412rsux245 add -12346 0.49999 -> -12346 Inexact Rounded
413rsux246 add -12346 0.5 -> -12346 Inexact Rounded
414rsux247 add -12346 0.50001 -> -12346 Inexact Rounded
415
416rsux250 add -12345 0.4 -> -12345 Inexact Rounded
417rsux251 add -12345 0.49 -> -12345 Inexact Rounded
418rsux252 add -12345 0.499 -> -12345 Inexact Rounded
419rsux253 add -12345 0.49999 -> -12345 Inexact Rounded
420rsux254 add -12345 0.5 -> -12345 Inexact Rounded
421rsux255 add -12345 0.50001 -> -12345 Inexact Rounded
422rsux256 add -12345 0.5001 -> -12345 Inexact Rounded
423rsux257 add -12345 0.501 -> -12345 Inexact Rounded
424rsux258 add -12345 0.51 -> -12345 Inexact Rounded
425rsux259 add -12345 0.6 -> -12345 Inexact Rounded
426
427rounding: floor
428
429rsux300 add -12345 -0.1 -> -12346 Inexact Rounded
430rsux301 add -12345 -0.01 -> -12346 Inexact Rounded
431rsux302 add -12345 -0.001 -> -12346 Inexact Rounded
432rsux303 add -12345 -0.00001 -> -12346 Inexact Rounded
433rsux304 add -12345 -0.000001 -> -12346 Inexact Rounded
434rsux305 add -12345 -0.0000001 -> -12346 Inexact Rounded
435rsux306 add -12345 0 -> -12345
436rsux307 add -12345 0.0000001 -> -12345 Inexact Rounded
437rsux308 add -12345 0.000001 -> -12345 Inexact Rounded
438rsux309 add -12345 0.00001 -> -12345 Inexact Rounded
439rsux310 add -12345 0.0001 -> -12345 Inexact Rounded
440rsux311 add -12345 0.001 -> -12345 Inexact Rounded
441rsux312 add -12345 0.01 -> -12345 Inexact Rounded
442rsux313 add -12345 0.1 -> -12345 Inexact Rounded
443
444rsux315 add -12346 0.49999 -> -12346 Inexact Rounded
445rsux316 add -12346 0.5 -> -12346 Inexact Rounded
446rsux317 add -12346 0.50001 -> -12346 Inexact Rounded
447
448rsux320 add -12345 0.4 -> -12345 Inexact Rounded
449rsux321 add -12345 0.49 -> -12345 Inexact Rounded
450rsux322 add -12345 0.499 -> -12345 Inexact Rounded
451rsux323 add -12345 0.49999 -> -12345 Inexact Rounded
452rsux324 add -12345 0.5 -> -12345 Inexact Rounded
453rsux325 add -12345 0.50001 -> -12345 Inexact Rounded
454rsux326 add -12345 0.5001 -> -12345 Inexact Rounded
455rsux327 add -12345 0.501 -> -12345 Inexact Rounded
456rsux328 add -12345 0.51 -> -12345 Inexact Rounded
457rsux329 add -12345 0.6 -> -12345 Inexact Rounded
458
459rounding: ceiling
460
461rsux330 add -12345 -0.1 -> -12345 Inexact Rounded
462rsux331 add -12345 -0.01 -> -12345 Inexact Rounded
463rsux332 add -12345 -0.001 -> -12345 Inexact Rounded
464rsux333 add -12345 -0.00001 -> -12345 Inexact Rounded
465rsux334 add -12345 -0.000001 -> -12345 Inexact Rounded
466rsux335 add -12345 -0.0000001 -> -12345 Inexact Rounded
467rsux336 add -12345 0 -> -12345
468rsux337 add -12345 0.0000001 -> -12344 Inexact Rounded
469rsux338 add -12345 0.000001 -> -12344 Inexact Rounded
470rsux339 add -12345 0.00001 -> -12344 Inexact Rounded
471rsux340 add -12345 0.0001 -> -12344 Inexact Rounded
472rsux341 add -12345 0.001 -> -12344 Inexact Rounded
473rsux342 add -12345 0.01 -> -12344 Inexact Rounded
474rsux343 add -12345 0.1 -> -12344 Inexact Rounded
475
476rsux345 add -12346 0.49999 -> -12345 Inexact Rounded
477rsux346 add -12346 0.5 -> -12345 Inexact Rounded
478rsux347 add -12346 0.50001 -> -12345 Inexact Rounded
479
480rsux350 add -12345 0.4 -> -12344 Inexact Rounded
481rsux351 add -12345 0.49 -> -12344 Inexact Rounded
482rsux352 add -12345 0.499 -> -12344 Inexact Rounded
483rsux353 add -12345 0.49999 -> -12344 Inexact Rounded
484rsux354 add -12345 0.5 -> -12344 Inexact Rounded
485rsux355 add -12345 0.50001 -> -12344 Inexact Rounded
486rsux356 add -12345 0.5001 -> -12344 Inexact Rounded
487rsux357 add -12345 0.501 -> -12344 Inexact Rounded
488rsux358 add -12345 0.51 -> -12344 Inexact Rounded
489rsux359 add -12345 0.6 -> -12344 Inexact Rounded
490
491-- Check cancellation subtractions
492-- (The IEEE 854 'curious rule' in $6.3)
493
494rounding: down
495rzex001 add 0 0 -> 0
496rzex002 add 0 -0 -> 0
497rzex003 add -0 0 -> 0
498rzex004 add -0 -0 -> -0
499rzex005 add 1 -1 -> 0
500rzex006 add -1 1 -> 0
501rzex007 add 1.5 -1.5 -> 0.0
502rzex008 add -1.5 1.5 -> 0.0
503rzex009 add 2 -2 -> 0
504rzex010 add -2 2 -> 0
505
506rounding: up
507rzex011 add 0 0 -> 0
508rzex012 add 0 -0 -> 0
509rzex013 add -0 0 -> 0
510rzex014 add -0 -0 -> -0
511rzex015 add 1 -1 -> 0
512rzex016 add -1 1 -> 0
513rzex017 add 1.5 -1.5 -> 0.0
514rzex018 add -1.5 1.5 -> 0.0
515rzex019 add 2 -2 -> 0
516rzex020 add -2 2 -> 0
517
518rounding: half_up
519rzex021 add 0 0 -> 0
520rzex022 add 0 -0 -> 0
521rzex023 add -0 0 -> 0
522rzex024 add -0 -0 -> -0
523rzex025 add 1 -1 -> 0
524rzex026 add -1 1 -> 0
525rzex027 add 1.5 -1.5 -> 0.0
526rzex028 add -1.5 1.5 -> 0.0
527rzex029 add 2 -2 -> 0
528rzex030 add -2 2 -> 0
529
530rounding: half_down
531rzex031 add 0 0 -> 0
532rzex032 add 0 -0 -> 0
533rzex033 add -0 0 -> 0
534rzex034 add -0 -0 -> -0
535rzex035 add 1 -1 -> 0
536rzex036 add -1 1 -> 0
537rzex037 add 1.5 -1.5 -> 0.0
538rzex038 add -1.5 1.5 -> 0.0
539rzex039 add 2 -2 -> 0
540rzex040 add -2 2 -> 0
541
542rounding: half_even
543rzex041 add 0 0 -> 0
544rzex042 add 0 -0 -> 0
545rzex043 add -0 0 -> 0
546rzex044 add -0 -0 -> -0
547rzex045 add 1 -1 -> 0
548rzex046 add -1 1 -> 0
549rzex047 add 1.5 -1.5 -> 0.0
550rzex048 add -1.5 1.5 -> 0.0
551rzex049 add 2 -2 -> 0
552rzex050 add -2 2 -> 0
553
554rounding: floor
555rzex051 add 0 0 -> 0
556rzex052 add 0 -0 -> -0 -- here are two 'curious'
557rzex053 add -0 0 -> -0 --
558rzex054 add -0 -0 -> -0
559rzex055 add 1 -1 -> -0 -- here are the rest
560rzex056 add -1 1 -> -0 -- ..
561rzex057 add 1.5 -1.5 -> -0.0 -- ..
562rzex058 add -1.5 1.5 -> -0.0 -- ..
563rzex059 add 2 -2 -> -0 -- ..
564rzex060 add -2 2 -> -0 -- ..
565
566rounding: ceiling
567rzex061 add 0 0 -> 0
568rzex062 add 0 -0 -> 0
569rzex063 add -0 0 -> 0
570rzex064 add -0 -0 -> -0
571rzex065 add 1 -1 -> 0
572rzex066 add -1 1 -> 0
573rzex067 add 1.5 -1.5 -> 0.0
574rzex068 add -1.5 1.5 -> 0.0
575rzex069 add 2 -2 -> 0
576rzex070 add -2 2 -> 0
577
578
579-- Division operators -------------------------------------------------
580
581rounding: down
582rdvx101 divide 12345 1 -> 12345
583rdvx102 divide 12345 1.0001 -> 12343 Inexact Rounded
584rdvx103 divide 12345 1.001 -> 12332 Inexact Rounded
585rdvx104 divide 12345 1.01 -> 12222 Inexact Rounded
586rdvx105 divide 12345 1.1 -> 11222 Inexact Rounded
587rdvx106 divide 12355 4 -> 3088.7 Inexact Rounded
588rdvx107 divide 12345 4 -> 3086.2 Inexact Rounded
589rdvx108 divide 12355 4.0001 -> 3088.6 Inexact Rounded
590rdvx109 divide 12345 4.0001 -> 3086.1 Inexact Rounded
591rdvx110 divide 12345 4.9 -> 2519.3 Inexact Rounded
592rdvx111 divide 12345 4.99 -> 2473.9 Inexact Rounded
593rdvx112 divide 12345 4.999 -> 2469.4 Inexact Rounded
594rdvx113 divide 12345 4.9999 -> 2469.0 Inexact Rounded
595rdvx114 divide 12345 5 -> 2469
596rdvx115 divide 12345 5.0001 -> 2468.9 Inexact Rounded
597rdvx116 divide 12345 5.001 -> 2468.5 Inexact Rounded
598rdvx117 divide 12345 5.01 -> 2464.0 Inexact Rounded
599rdvx118 divide 12345 5.1 -> 2420.5 Inexact Rounded
600
601rounding: half_down
602rdvx201 divide 12345 1 -> 12345
603rdvx202 divide 12345 1.0001 -> 12344 Inexact Rounded
604rdvx203 divide 12345 1.001 -> 12333 Inexact Rounded
605rdvx204 divide 12345 1.01 -> 12223 Inexact Rounded
606rdvx205 divide 12345 1.1 -> 11223 Inexact Rounded
607rdvx206 divide 12355 4 -> 3088.7 Inexact Rounded
608rdvx207 divide 12345 4 -> 3086.2 Inexact Rounded
609rdvx208 divide 12355 4.0001 -> 3088.7 Inexact Rounded
610rdvx209 divide 12345 4.0001 -> 3086.2 Inexact Rounded
611rdvx210 divide 12345 4.9 -> 2519.4 Inexact Rounded
612rdvx211 divide 12345 4.99 -> 2473.9 Inexact Rounded
613rdvx212 divide 12345 4.999 -> 2469.5 Inexact Rounded
614rdvx213 divide 12345 4.9999 -> 2469.0 Inexact Rounded
615rdvx214 divide 12345 5 -> 2469
616rdvx215 divide 12345 5.0001 -> 2469.0 Inexact Rounded
617rdvx216 divide 12345 5.001 -> 2468.5 Inexact Rounded
618rdvx217 divide 12345 5.01 -> 2464.1 Inexact Rounded
619rdvx218 divide 12345 5.1 -> 2420.6 Inexact Rounded
620
621rounding: half_even
622rdvx301 divide 12345 1 -> 12345
623rdvx302 divide 12345 1.0001 -> 12344 Inexact Rounded
624rdvx303 divide 12345 1.001 -> 12333 Inexact Rounded
625rdvx304 divide 12345 1.01 -> 12223 Inexact Rounded
626rdvx305 divide 12345 1.1 -> 11223 Inexact Rounded
627rdvx306 divide 12355 4 -> 3088.8 Inexact Rounded
628rdvx307 divide 12345 4 -> 3086.2 Inexact Rounded
629rdvx308 divide 12355 4.0001 -> 3088.7 Inexact Rounded
630rdvx309 divide 12345 4.0001 -> 3086.2 Inexact Rounded
631rdvx310 divide 12345 4.9 -> 2519.4 Inexact Rounded
632rdvx311 divide 12345 4.99 -> 2473.9 Inexact Rounded
633rdvx312 divide 12345 4.999 -> 2469.5 Inexact Rounded
634rdvx313 divide 12345 4.9999 -> 2469.0 Inexact Rounded
635rdvx314 divide 12345 5 -> 2469
636rdvx315 divide 12345 5.0001 -> 2469.0 Inexact Rounded
637rdvx316 divide 12345 5.001 -> 2468.5 Inexact Rounded
638rdvx317 divide 12345 5.01 -> 2464.1 Inexact Rounded
639rdvx318 divide 12345 5.1 -> 2420.6 Inexact Rounded
640
641rounding: half_up
642rdvx401 divide 12345 1 -> 12345
643rdvx402 divide 12345 1.0001 -> 12344 Inexact Rounded
644rdvx403 divide 12345 1.001 -> 12333 Inexact Rounded
645rdvx404 divide 12345 1.01 -> 12223 Inexact Rounded
646rdvx405 divide 12345 1.1 -> 11223 Inexact Rounded
647rdvx406 divide 12355 4 -> 3088.8 Inexact Rounded
648rdvx407 divide 12345 4 -> 3086.3 Inexact Rounded
649rdvx408 divide 12355 4.0001 -> 3088.7 Inexact Rounded
650rdvx409 divide 12345 4.0001 -> 3086.2 Inexact Rounded
651rdvx410 divide 12345 4.9 -> 2519.4 Inexact Rounded
652rdvx411 divide 12345 4.99 -> 2473.9 Inexact Rounded
653rdvx412 divide 12345 4.999 -> 2469.5 Inexact Rounded
654rdvx413 divide 12345 4.9999 -> 2469.0 Inexact Rounded
655rdvx414 divide 12345 5 -> 2469
656rdvx415 divide 12345 5.0001 -> 2469.0 Inexact Rounded
657rdvx416 divide 12345 5.001 -> 2468.5 Inexact Rounded
658rdvx417 divide 12345 5.01 -> 2464.1 Inexact Rounded
659rdvx418 divide 12345 5.1 -> 2420.6 Inexact Rounded
660
661rounding: up
662rdvx501 divide 12345 1 -> 12345
663rdvx502 divide 12345 1.0001 -> 12344 Inexact Rounded
664rdvx503 divide 12345 1.001 -> 12333 Inexact Rounded
665rdvx504 divide 12345 1.01 -> 12223 Inexact Rounded
666rdvx505 divide 12345 1.1 -> 11223 Inexact Rounded
667rdvx506 divide 12355 4 -> 3088.8 Inexact Rounded
668rdvx507 divide 12345 4 -> 3086.3 Inexact Rounded
669rdvx508 divide 12355 4.0001 -> 3088.7 Inexact Rounded
670rdvx509 divide 12345 4.0001 -> 3086.2 Inexact Rounded
671rdvx510 divide 12345 4.9 -> 2519.4 Inexact Rounded
672rdvx511 divide 12345 4.99 -> 2474.0 Inexact Rounded
673rdvx512 divide 12345 4.999 -> 2469.5 Inexact Rounded
674rdvx513 divide 12345 4.9999 -> 2469.1 Inexact Rounded
675rdvx514 divide 12345 5 -> 2469
676rdvx515 divide 12345 5.0001 -> 2469.0 Inexact Rounded
677rdvx516 divide 12345 5.001 -> 2468.6 Inexact Rounded
678rdvx517 divide 12345 5.01 -> 2464.1 Inexact Rounded
679rdvx518 divide 12345 5.1 -> 2420.6 Inexact Rounded
680
681rounding: floor
682rdvx601 divide 12345 1 -> 12345
683rdvx602 divide 12345 1.0001 -> 12343 Inexact Rounded
684rdvx603 divide 12345 1.001 -> 12332 Inexact Rounded
685rdvx604 divide 12345 1.01 -> 12222 Inexact Rounded
686rdvx605 divide 12345 1.1 -> 11222 Inexact Rounded
687rdvx606 divide 12355 4 -> 3088.7 Inexact Rounded
688rdvx607 divide 12345 4 -> 3086.2 Inexact Rounded
689rdvx608 divide 12355 4.0001 -> 3088.6 Inexact Rounded
690rdvx609 divide 12345 4.0001 -> 3086.1 Inexact Rounded
691rdvx610 divide 12345 4.9 -> 2519.3 Inexact Rounded
692rdvx611 divide 12345 4.99 -> 2473.9 Inexact Rounded
693rdvx612 divide 12345 4.999 -> 2469.4 Inexact Rounded
694rdvx613 divide 12345 4.9999 -> 2469.0 Inexact Rounded
695rdvx614 divide 12345 5 -> 2469
696rdvx615 divide 12345 5.0001 -> 2468.9 Inexact Rounded
697rdvx616 divide 12345 5.001 -> 2468.5 Inexact Rounded
698rdvx617 divide 12345 5.01 -> 2464.0 Inexact Rounded
699rdvx618 divide 12345 5.1 -> 2420.5 Inexact Rounded
700
701rounding: ceiling
702rdvx701 divide 12345 1 -> 12345
703rdvx702 divide 12345 1.0001 -> 12344 Inexact Rounded
704rdvx703 divide 12345 1.001 -> 12333 Inexact Rounded
705rdvx704 divide 12345 1.01 -> 12223 Inexact Rounded
706rdvx705 divide 12345 1.1 -> 11223 Inexact Rounded
707rdvx706 divide 12355 4 -> 3088.8 Inexact Rounded
708rdvx707 divide 12345 4 -> 3086.3 Inexact Rounded
709rdvx708 divide 12355 4.0001 -> 3088.7 Inexact Rounded
710rdvx709 divide 12345 4.0001 -> 3086.2 Inexact Rounded
711rdvx710 divide 12345 4.9 -> 2519.4 Inexact Rounded
712rdvx711 divide 12345 4.99 -> 2474.0 Inexact Rounded
713rdvx712 divide 12345 4.999 -> 2469.5 Inexact Rounded
714rdvx713 divide 12345 4.9999 -> 2469.1 Inexact Rounded
715rdvx714 divide 12345 5 -> 2469
716rdvx715 divide 12345 5.0001 -> 2469.0 Inexact Rounded
717rdvx716 divide 12345 5.001 -> 2468.6 Inexact Rounded
718rdvx717 divide 12345 5.01 -> 2464.1 Inexact Rounded
719rdvx718 divide 12345 5.1 -> 2420.6 Inexact Rounded
720
721-- [divideInteger and remainder unaffected]
722
723-- Multiplication operator --------------------------------------------
724
725rounding: down
726rmux101 multiply 12345 1 -> 12345
727rmux102 multiply 12345 1.0001 -> 12346 Inexact Rounded
728rmux103 multiply 12345 1.001 -> 12357 Inexact Rounded
729rmux104 multiply 12345 1.01 -> 12468 Inexact Rounded
730rmux105 multiply 12345 1.1 -> 13579 Inexact Rounded
731rmux106 multiply 12345 4 -> 49380
732rmux107 multiply 12345 4.0001 -> 49381 Inexact Rounded
733rmux108 multiply 12345 4.9 -> 60490 Inexact Rounded
734rmux109 multiply 12345 4.99 -> 61601 Inexact Rounded
735rmux110 multiply 12345 4.999 -> 61712 Inexact Rounded
736rmux111 multiply 12345 4.9999 -> 61723 Inexact Rounded
737rmux112 multiply 12345 5 -> 61725
738rmux113 multiply 12345 5.0001 -> 61726 Inexact Rounded
739rmux114 multiply 12345 5.001 -> 61737 Inexact Rounded
740rmux115 multiply 12345 5.01 -> 61848 Inexact Rounded
741rmux116 multiply 12345 12 -> 1.4814E+5 Rounded
742rmux117 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
743rmux118 multiply 12355 12 -> 1.4826E+5 Rounded
744rmux119 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
745
746rounding: half_down
747rmux201 multiply 12345 1 -> 12345
748rmux202 multiply 12345 1.0001 -> 12346 Inexact Rounded
749rmux203 multiply 12345 1.001 -> 12357 Inexact Rounded
750rmux204 multiply 12345 1.01 -> 12468 Inexact Rounded
751rmux205 multiply 12345 1.1 -> 13579 Inexact Rounded
752rmux206 multiply 12345 4 -> 49380
753rmux207 multiply 12345 4.0001 -> 49381 Inexact Rounded
754rmux208 multiply 12345 4.9 -> 60490 Inexact Rounded
755rmux209 multiply 12345 4.99 -> 61602 Inexact Rounded
756rmux210 multiply 12345 4.999 -> 61713 Inexact Rounded
757rmux211 multiply 12345 4.9999 -> 61724 Inexact Rounded
758rmux212 multiply 12345 5 -> 61725
759rmux213 multiply 12345 5.0001 -> 61726 Inexact Rounded
760rmux214 multiply 12345 5.001 -> 61737 Inexact Rounded
761rmux215 multiply 12345 5.01 -> 61848 Inexact Rounded
762rmux216 multiply 12345 12 -> 1.4814E+5 Rounded
763rmux217 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
764rmux218 multiply 12355 12 -> 1.4826E+5 Rounded
765rmux219 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
766
767rounding: half_even
768rmux301 multiply 12345 1 -> 12345
769rmux302 multiply 12345 1.0001 -> 12346 Inexact Rounded
770rmux303 multiply 12345 1.001 -> 12357 Inexact Rounded
771rmux304 multiply 12345 1.01 -> 12468 Inexact Rounded
772rmux305 multiply 12345 1.1 -> 13580 Inexact Rounded
773rmux306 multiply 12345 4 -> 49380
774rmux307 multiply 12345 4.0001 -> 49381 Inexact Rounded
775rmux308 multiply 12345 4.9 -> 60490 Inexact Rounded
776rmux309 multiply 12345 4.99 -> 61602 Inexact Rounded
777rmux310 multiply 12345 4.999 -> 61713 Inexact Rounded
778rmux311 multiply 12345 4.9999 -> 61724 Inexact Rounded
779rmux312 multiply 12345 5 -> 61725
780rmux313 multiply 12345 5.0001 -> 61726 Inexact Rounded
781rmux314 multiply 12345 5.001 -> 61737 Inexact Rounded
782rmux315 multiply 12345 5.01 -> 61848 Inexact Rounded
783rmux316 multiply 12345 12 -> 1.4814E+5 Rounded
784rmux317 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
785rmux318 multiply 12355 12 -> 1.4826E+5 Rounded
786rmux319 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
787
788rounding: half_up
789rmux401 multiply 12345 1 -> 12345
790rmux402 multiply 12345 1.0001 -> 12346 Inexact Rounded
791rmux403 multiply 12345 1.001 -> 12357 Inexact Rounded
792rmux404 multiply 12345 1.01 -> 12468 Inexact Rounded
793rmux405 multiply 12345 1.1 -> 13580 Inexact Rounded
794rmux406 multiply 12345 4 -> 49380
795rmux407 multiply 12345 4.0001 -> 49381 Inexact Rounded
796rmux408 multiply 12345 4.9 -> 60491 Inexact Rounded
797rmux409 multiply 12345 4.99 -> 61602 Inexact Rounded
798rmux410 multiply 12345 4.999 -> 61713 Inexact Rounded
799rmux411 multiply 12345 4.9999 -> 61724 Inexact Rounded
800rmux412 multiply 12345 5 -> 61725
801rmux413 multiply 12345 5.0001 -> 61726 Inexact Rounded
802rmux414 multiply 12345 5.001 -> 61737 Inexact Rounded
803rmux415 multiply 12345 5.01 -> 61848 Inexact Rounded
804rmux416 multiply 12345 12 -> 1.4814E+5 Rounded
805rmux417 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
806rmux418 multiply 12355 12 -> 1.4826E+5 Rounded
807rmux419 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
808
809rounding: up
810rmux501 multiply 12345 1 -> 12345
811rmux502 multiply 12345 1.0001 -> 12347 Inexact Rounded
812rmux503 multiply 12345 1.001 -> 12358 Inexact Rounded
813rmux504 multiply 12345 1.01 -> 12469 Inexact Rounded
814rmux505 multiply 12345 1.1 -> 13580 Inexact Rounded
815rmux506 multiply 12345 4 -> 49380
816rmux507 multiply 12345 4.0001 -> 49382 Inexact Rounded
817rmux508 multiply 12345 4.9 -> 60491 Inexact Rounded
818rmux509 multiply 12345 4.99 -> 61602 Inexact Rounded
819rmux510 multiply 12345 4.999 -> 61713 Inexact Rounded
820rmux511 multiply 12345 4.9999 -> 61724 Inexact Rounded
821rmux512 multiply 12345 5 -> 61725
822rmux513 multiply 12345 5.0001 -> 61727 Inexact Rounded
823rmux514 multiply 12345 5.001 -> 61738 Inexact Rounded
824rmux515 multiply 12345 5.01 -> 61849 Inexact Rounded
825rmux516 multiply 12345 12 -> 1.4814E+5 Rounded
826rmux517 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
827rmux518 multiply 12355 12 -> 1.4826E+5 Rounded
828rmux519 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
829-- [rmux516 & rmux518] can surprise
830
831rounding: floor
832rmux601 multiply 12345 1 -> 12345
833rmux602 multiply 12345 1.0001 -> 12346 Inexact Rounded
834rmux603 multiply 12345 1.001 -> 12357 Inexact Rounded
835rmux604 multiply 12345 1.01 -> 12468 Inexact Rounded
836rmux605 multiply 12345 1.1 -> 13579 Inexact Rounded
837rmux606 multiply 12345 4 -> 49380
838rmux607 multiply 12345 4.0001 -> 49381 Inexact Rounded
839rmux608 multiply 12345 4.9 -> 60490 Inexact Rounded
840rmux609 multiply 12345 4.99 -> 61601 Inexact Rounded
841rmux610 multiply 12345 4.999 -> 61712 Inexact Rounded
842rmux611 multiply 12345 4.9999 -> 61723 Inexact Rounded
843rmux612 multiply 12345 5 -> 61725
844rmux613 multiply 12345 5.0001 -> 61726 Inexact Rounded
845rmux614 multiply 12345 5.001 -> 61737 Inexact Rounded
846rmux615 multiply 12345 5.01 -> 61848 Inexact Rounded
847rmux616 multiply 12345 12 -> 1.4814E+5 Rounded
848rmux617 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
849rmux618 multiply 12355 12 -> 1.4826E+5 Rounded
850rmux619 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
851
852rounding: ceiling
853rmux701 multiply 12345 1 -> 12345
854rmux702 multiply 12345 1.0001 -> 12347 Inexact Rounded
855rmux703 multiply 12345 1.001 -> 12358 Inexact Rounded
856rmux704 multiply 12345 1.01 -> 12469 Inexact Rounded
857rmux705 multiply 12345 1.1 -> 13580 Inexact Rounded
858rmux706 multiply 12345 4 -> 49380
859rmux707 multiply 12345 4.0001 -> 49382 Inexact Rounded
860rmux708 multiply 12345 4.9 -> 60491 Inexact Rounded
861rmux709 multiply 12345 4.99 -> 61602 Inexact Rounded
862rmux710 multiply 12345 4.999 -> 61713 Inexact Rounded
863rmux711 multiply 12345 4.9999 -> 61724 Inexact Rounded
864rmux712 multiply 12345 5 -> 61725
865rmux713 multiply 12345 5.0001 -> 61727 Inexact Rounded
866rmux714 multiply 12345 5.001 -> 61738 Inexact Rounded
867rmux715 multiply 12345 5.01 -> 61849 Inexact Rounded
868rmux716 multiply 12345 12 -> 1.4814E+5 Rounded
869rmux717 multiply 12345 13 -> 1.6049E+5 Inexact Rounded
870rmux718 multiply 12355 12 -> 1.4826E+5 Rounded
871rmux719 multiply 12355 13 -> 1.6062E+5 Inexact Rounded
872
873-- Power operator -----------------------------------------------------
874
875rounding: down
876rpox101 power 12345 -5 -> 3.4877E-21 Inexact Rounded
877rpox102 power 12345 -4 -> 4.3056E-17 Inexact Rounded
878rpox103 power 12345 -3 -> 5.3152E-13 Inexact Rounded
879rpox104 power 12345 -2 -> 6.5617E-9 Inexact Rounded
880rpox105 power 12345 -1 -> 0.000081004 Inexact Rounded
881rpox106 power 12345 0 -> 1
882rpox107 power 12345 1 -> 12345
883rpox108 power 12345 2 -> 1.5239E+8 Inexact Rounded
884rpox109 power 12345 3 -> 1.8813E+12 Inexact Rounded
885rpox110 power 12345 4 -> 2.3225E+16 Inexact Rounded
886rpox111 power 12345 5 -> 2.8671E+20 Inexact Rounded
887rpox112 power 415 2 -> 1.7222E+5 Inexact Rounded
888rpox113 power 75 3 -> 4.2187E+5 Inexact Rounded
889
890rounding: half_down
891rpox201 power 12345 -5 -> 3.4877E-21 Inexact Rounded
892rpox202 power 12345 -4 -> 4.3056E-17 Inexact Rounded
893rpox203 power 12345 -3 -> 5.3153E-13 Inexact Rounded
894rpox204 power 12345 -2 -> 6.5617E-9 Inexact Rounded
895rpox205 power 12345 -1 -> 0.000081004 Inexact Rounded
896rpox206 power 12345 0 -> 1
897rpox207 power 12345 1 -> 12345
898rpox208 power 12345 2 -> 1.5240E+8 Inexact Rounded
899rpox209 power 12345 3 -> 1.8814E+12 Inexact Rounded
900rpox210 power 12345 4 -> 2.3225E+16 Inexact Rounded
901rpox211 power 12345 5 -> 2.8672E+20 Inexact Rounded
902rpox212 power 415 2 -> 1.7222E+5 Inexact Rounded
903rpox213 power 75 3 -> 4.2187E+5 Inexact Rounded
904
905rounding: half_even
906rpox301 power 12345 -5 -> 3.4877E-21 Inexact Rounded
907rpox302 power 12345 -4 -> 4.3056E-17 Inexact Rounded
908rpox303 power 12345 -3 -> 5.3153E-13 Inexact Rounded
909rpox304 power 12345 -2 -> 6.5617E-9 Inexact Rounded
910rpox305 power 12345 -1 -> 0.000081004 Inexact Rounded
911rpox306 power 12345 0 -> 1
912rpox307 power 12345 1 -> 12345
913rpox308 power 12345 2 -> 1.5240E+8 Inexact Rounded
914rpox309 power 12345 3 -> 1.8814E+12 Inexact Rounded
915rpox310 power 12345 4 -> 2.3225E+16 Inexact Rounded
916rpox311 power 12345 5 -> 2.8672E+20 Inexact Rounded
917rpox312 power 415 2 -> 1.7222E+5 Inexact Rounded
918rpox313 power 75 3 -> 4.2188E+5 Inexact Rounded
919
920rounding: half_up
921rpox401 power 12345 -5 -> 3.4877E-21 Inexact Rounded
922rpox402 power 12345 -4 -> 4.3056E-17 Inexact Rounded
923rpox403 power 12345 -3 -> 5.3153E-13 Inexact Rounded
924rpox404 power 12345 -2 -> 6.5617E-9 Inexact Rounded
925rpox405 power 12345 -1 -> 0.000081004 Inexact Rounded
926rpox406 power 12345 0 -> 1
927rpox407 power 12345 1 -> 12345
928rpox408 power 12345 2 -> 1.5240E+8 Inexact Rounded
929rpox409 power 12345 3 -> 1.8814E+12 Inexact Rounded
930rpox410 power 12345 4 -> 2.3225E+16 Inexact Rounded
931rpox411 power 12345 5 -> 2.8672E+20 Inexact Rounded
932rpox412 power 415 2 -> 1.7223E+5 Inexact Rounded
933rpox413 power 75 3 -> 4.2188E+5 Inexact Rounded
934
935rounding: up
936rpox501 power 12345 -5 -> 3.4878E-21 Inexact Rounded
937rpox502 power 12345 -4 -> 4.3057E-17 Inexact Rounded
938rpox503 power 12345 -3 -> 5.3153E-13 Inexact Rounded
939rpox504 power 12345 -2 -> 6.5618E-9 Inexact Rounded
940rpox505 power 12345 -1 -> 0.000081005 Inexact Rounded
941rpox506 power 12345 0 -> 1
942rpox507 power 12345 1 -> 12345
943rpox508 power 12345 2 -> 1.5240E+8 Inexact Rounded
944rpox509 power 12345 3 -> 1.8814E+12 Inexact Rounded
945rpox510 power 12345 4 -> 2.3226E+16 Inexact Rounded
946rpox511 power 12345 5 -> 2.8672E+20 Inexact Rounded
947rpox512 power 415 2 -> 1.7223E+5 Inexact Rounded
948rpox513 power 75 3 -> 4.2188E+5 Inexact Rounded
949
950rounding: floor
951rpox601 power 12345 -5 -> 3.4877E-21 Inexact Rounded
952rpox602 power 12345 -4 -> 4.3056E-17 Inexact Rounded
953rpox603 power 12345 -3 -> 5.3152E-13 Inexact Rounded
954rpox604 power 12345 -2 -> 6.5617E-9 Inexact Rounded
955rpox605 power 12345 -1 -> 0.000081004 Inexact Rounded
956rpox606 power 12345 0 -> 1
957rpox607 power 12345 1 -> 12345
958rpox608 power 12345 2 -> 1.5239E+8 Inexact Rounded
959rpox609 power 12345 3 -> 1.8813E+12 Inexact Rounded
960rpox610 power 12345 4 -> 2.3225E+16 Inexact Rounded
961rpox611 power 12345 5 -> 2.8671E+20 Inexact Rounded
962rpox612 power 415 2 -> 1.7222E+5 Inexact Rounded
963rpox613 power 75 3 -> 4.2187E+5 Inexact Rounded
964
965rounding: ceiling
966rpox701 power 12345 -5 -> 3.4878E-21 Inexact Rounded
967rpox702 power 12345 -4 -> 4.3057E-17 Inexact Rounded
968rpox703 power 12345 -3 -> 5.3153E-13 Inexact Rounded
969rpox704 power 12345 -2 -> 6.5618E-9 Inexact Rounded
970rpox705 power 12345 -1 -> 0.000081005 Inexact Rounded
971rpox706 power 12345 0 -> 1
972rpox707 power 12345 1 -> 12345
973rpox708 power 12345 2 -> 1.5240E+8 Inexact Rounded
974rpox709 power 12345 3 -> 1.8814E+12 Inexact Rounded
975rpox710 power 12345 4 -> 2.3226E+16 Inexact Rounded
976rpox711 power 12345 5 -> 2.8672E+20 Inexact Rounded
977rpox712 power 415 2 -> 1.7223E+5 Inexact Rounded
978rpox713 power 75 3 -> 4.2188E+5 Inexact Rounded
979
980-- Underflow Subnormal and overflow values vary with rounding mode and sign
981maxexponent: 999999999
982minexponent: -999999999
983rounding: down
984rovx100 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
985rovx101 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +0000986rovx102 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
987rovx104 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +0000988
989rounding: up
990rovx110 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
991rovx111 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
992rovx112 divide 1E-9 9E+999999999 -> 1E-1000000003 Underflow Subnormal Inexact Rounded
993rovx114 divide -1E-9 9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
994
995rounding: ceiling
996rovx120 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
997rovx121 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
998rovx122 divide 1E-9 9E+999999999 -> 1E-1000000003 Underflow Subnormal Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +0000999rovx124 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001000
1001rounding: floor
1002rovx130 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
1003rovx131 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001004rovx132 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001005rovx134 divide -1E-9 9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
1006
1007rounding: half_up
1008rovx140 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
1009rovx141 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001010rovx142 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
1011rovx144 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001012
1013rounding: half_even
1014rovx150 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
1015rovx151 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001016rovx152 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
1017rovx154 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001018
1019rounding: half_down
1020rovx160 multiply 10 9E+999999999 -> Infinity Overflow Inexact Rounded
1021rovx161 multiply -10 9E+999999999 -> -Infinity Overflow Inexact Rounded
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001022rovx162 divide 1E-9 9E+999999999 -> 0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
1023rovx164 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped
Raymond Hettinger7c85fa42004-07-01 11:01:35 +00001024
1025-- check maximum finite value over a range of precisions
1026rounding: down
1027precision: 1
1028rovx200 multiply 10 9E+999999999 -> 9E+999999999 Overflow Inexact Rounded
1029rovx201 multiply -10 9E+999999999 -> -9E+999999999 Overflow Inexact Rounded
1030precision: 2
1031rovx210 multiply 10 9E+999999999 -> 9.9E+999999999 Overflow Inexact Rounded
1032rovx211 multiply -10 9E+999999999 -> -9.9E+999999999 Overflow Inexact Rounded
1033precision: 3
1034rovx220 multiply 10 9E+999999999 -> 9.99E+999999999 Overflow Inexact Rounded
1035rovx221 multiply -10 9E+999999999 -> -9.99E+999999999 Overflow Inexact Rounded
1036precision: 4
1037rovx230 multiply 10 9E+999999999 -> 9.999E+999999999 Overflow Inexact Rounded
1038rovx231 multiply -10 9E+999999999 -> -9.999E+999999999 Overflow Inexact Rounded
1039precision: 5
1040rovx240 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
1041rovx241 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
1042precision: 6
1043rovx250 multiply 10 9E+999999999 -> 9.99999E+999999999 Overflow Inexact Rounded
1044rovx251 multiply -10 9E+999999999 -> -9.99999E+999999999 Overflow Inexact Rounded
1045precision: 7
1046rovx260 multiply 10 9E+999999999 -> 9.999999E+999999999 Overflow Inexact Rounded
1047rovx261 multiply -10 9E+999999999 -> -9.999999E+999999999 Overflow Inexact Rounded
1048precision: 8
1049rovx270 multiply 10 9E+999999999 -> 9.9999999E+999999999 Overflow Inexact Rounded
1050rovx271 multiply -10 9E+999999999 -> -9.9999999E+999999999 Overflow Inexact Rounded
1051precision: 9
1052rovx280 multiply 10 9E+999999999 -> 9.99999999E+999999999 Overflow Inexact Rounded
1053rovx281 multiply -10 9E+999999999 -> -9.99999999E+999999999 Overflow Inexact Rounded
1054precision: 10
1055rovx290 multiply 10 9E+999999999 -> 9.999999999E+999999999 Overflow Inexact Rounded
1056rovx291 multiply -10 9E+999999999 -> -9.999999999E+999999999 Overflow Inexact Rounded
1057
1058-- reprise rounding mode effect (using multiplies so precision directive used)
1059precision: 9
1060maxexponent: 999999999
1061rounding: half_up
1062rmex400 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
1063rmex401 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
1064rounding: half_down
1065rmex402 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
1066rmex403 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
1067rounding: half_even
1068rmex404 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
1069rmex405 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
1070rounding: floor
1071rmex406 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
1072rmex407 multiply 9.999E+999999999 10 -> 9.99999999E+999999999 Overflow Inexact Rounded
1073rounding: ceiling
1074rmex408 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
1075rmex409 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
1076rounding: up
1077rmex410 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded
1078rmex411 multiply 9.999E+999999999 10 -> Infinity Overflow Inexact Rounded
1079rounding: down
1080rmex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
1081rmex413 multiply 9.999E+999999999 10 -> 9.99999999E+999999999 Overflow Inexact Rounded
1082
Thomas Wouters1b7f8912007-09-19 03:06:30 +00001083----- Round-for-reround -----
1084rounding: 05up
1085precision: 5 -- for easier visual inspection
1086maxExponent: 999
1087minexponent: -999
1088
1089-- basic rounding; really is just 0 and 5 up
1090r05up001 add 12340 0.001 -> 12341 Inexact Rounded
1091r05up002 add 12341 0.001 -> 12341 Inexact Rounded
1092r05up003 add 12342 0.001 -> 12342 Inexact Rounded
1093r05up004 add 12343 0.001 -> 12343 Inexact Rounded
1094r05up005 add 12344 0.001 -> 12344 Inexact Rounded
1095r05up006 add 12345 0.001 -> 12346 Inexact Rounded
1096r05up007 add 12346 0.001 -> 12346 Inexact Rounded
1097r05up008 add 12347 0.001 -> 12347 Inexact Rounded
1098r05up009 add 12348 0.001 -> 12348 Inexact Rounded
1099r05up010 add 12349 0.001 -> 12349 Inexact Rounded
1100
1101r05up011 add 12340 0.000 -> 12340 Rounded
1102r05up012 add 12341 0.000 -> 12341 Rounded
1103r05up013 add 12342 0.000 -> 12342 Rounded
1104r05up014 add 12343 0.000 -> 12343 Rounded
1105r05up015 add 12344 0.000 -> 12344 Rounded
1106r05up016 add 12345 0.000 -> 12345 Rounded
1107r05up017 add 12346 0.000 -> 12346 Rounded
1108r05up018 add 12347 0.000 -> 12347 Rounded
1109r05up019 add 12348 0.000 -> 12348 Rounded
1110r05up020 add 12349 0.000 -> 12349 Rounded
1111
1112r05up021 add 12340 0.901 -> 12341 Inexact Rounded
1113r05up022 add 12341 0.901 -> 12341 Inexact Rounded
1114r05up023 add 12342 0.901 -> 12342 Inexact Rounded
1115r05up024 add 12343 0.901 -> 12343 Inexact Rounded
1116r05up025 add 12344 0.901 -> 12344 Inexact Rounded
1117r05up026 add 12345 0.901 -> 12346 Inexact Rounded
1118r05up027 add 12346 0.901 -> 12346 Inexact Rounded
1119r05up028 add 12347 0.901 -> 12347 Inexact Rounded
1120r05up029 add 12348 0.901 -> 12348 Inexact Rounded
1121r05up030 add 12349 0.901 -> 12349 Inexact Rounded
1122
1123r05up031 add -12340 -0.001 -> -12341 Inexact Rounded
1124r05up032 add -12341 -0.001 -> -12341 Inexact Rounded
1125r05up033 add -12342 -0.001 -> -12342 Inexact Rounded
1126r05up034 add -12343 -0.001 -> -12343 Inexact Rounded
1127r05up035 add -12344 -0.001 -> -12344 Inexact Rounded
1128r05up036 add -12345 -0.001 -> -12346 Inexact Rounded
1129r05up037 add -12346 -0.001 -> -12346 Inexact Rounded
1130r05up038 add -12347 -0.001 -> -12347 Inexact Rounded
1131r05up039 add -12348 -0.001 -> -12348 Inexact Rounded
1132r05up040 add -12349 -0.001 -> -12349 Inexact Rounded
1133
1134r05up041 add -12340 0.001 -> -12339 Inexact Rounded
1135r05up042 add -12341 0.001 -> -12341 Inexact Rounded
1136r05up043 add -12342 0.001 -> -12341 Inexact Rounded
1137r05up044 add -12343 0.001 -> -12342 Inexact Rounded
1138r05up045 add -12344 0.001 -> -12343 Inexact Rounded
1139r05up046 add -12345 0.001 -> -12344 Inexact Rounded
1140r05up047 add -12346 0.001 -> -12346 Inexact Rounded
1141r05up048 add -12347 0.001 -> -12346 Inexact Rounded
1142r05up049 add -12348 0.001 -> -12347 Inexact Rounded
1143r05up050 add -12349 0.001 -> -12348 Inexact Rounded
1144
1145-- Addition operators -------------------------------------------------
1146-- [The first few of these check negative residue possibilities; these
1147-- cases may be implemented as a negative residue in fastpaths]
1148
1149r0adx100 add 12345 -0.1 -> 12344 Inexact Rounded
1150r0adx101 add 12345 -0.01 -> 12344 Inexact Rounded
1151r0adx102 add 12345 -0.001 -> 12344 Inexact Rounded
1152r0adx103 add 12345 -0.00001 -> 12344 Inexact Rounded
1153r0adx104 add 12345 -0.000001 -> 12344 Inexact Rounded
1154r0adx105 add 12345 -0.0000001 -> 12344 Inexact Rounded
1155r0adx106 add 12345 0 -> 12345
1156r0adx107 add 12345 0.0000001 -> 12346 Inexact Rounded
1157r0adx108 add 12345 0.000001 -> 12346 Inexact Rounded
1158r0adx109 add 12345 0.00001 -> 12346 Inexact Rounded
1159r0adx110 add 12345 0.0001 -> 12346 Inexact Rounded
1160r0adx111 add 12345 0.001 -> 12346 Inexact Rounded
1161r0adx112 add 12345 0.01 -> 12346 Inexact Rounded
1162r0adx113 add 12345 0.1 -> 12346 Inexact Rounded
1163
1164r0adx115 add 12346 0.49999 -> 12346 Inexact Rounded
1165r0adx116 add 12346 0.5 -> 12346 Inexact Rounded
1166r0adx117 add 12346 0.50001 -> 12346 Inexact Rounded
1167
1168r0adx120 add 12345 0.4 -> 12346 Inexact Rounded
1169r0adx121 add 12345 0.49 -> 12346 Inexact Rounded
1170r0adx122 add 12345 0.499 -> 12346 Inexact Rounded
1171r0adx123 add 12345 0.49999 -> 12346 Inexact Rounded
1172r0adx124 add 12345 0.5 -> 12346 Inexact Rounded
1173r0adx125 add 12345 0.50001 -> 12346 Inexact Rounded
1174r0adx126 add 12345 0.5001 -> 12346 Inexact Rounded
1175r0adx127 add 12345 0.501 -> 12346 Inexact Rounded
1176r0adx128 add 12345 0.51 -> 12346 Inexact Rounded
1177r0adx129 add 12345 0.6 -> 12346 Inexact Rounded
1178
1179-- negatives...
1180
1181r0sux100 add -12345 -0.1 -> -12346 Inexact Rounded
1182r0sux101 add -12345 -0.01 -> -12346 Inexact Rounded
1183r0sux102 add -12345 -0.001 -> -12346 Inexact Rounded
1184r0sux103 add -12345 -0.00001 -> -12346 Inexact Rounded
1185r0sux104 add -12345 -0.000001 -> -12346 Inexact Rounded
1186r0sux105 add -12345 -0.0000001 -> -12346 Inexact Rounded
1187r0sux106 add -12345 0 -> -12345
1188r0sux107 add -12345 0.0000001 -> -12344 Inexact Rounded
1189r0sux108 add -12345 0.000001 -> -12344 Inexact Rounded
1190r0sux109 add -12345 0.00001 -> -12344 Inexact Rounded
1191r0sux110 add -12345 0.0001 -> -12344 Inexact Rounded
1192r0sux111 add -12345 0.001 -> -12344 Inexact Rounded
1193r0sux112 add -12345 0.01 -> -12344 Inexact Rounded
1194r0sux113 add -12345 0.1 -> -12344 Inexact Rounded
1195
1196r0sux115 add -12346 0.49999 -> -12346 Inexact Rounded
1197r0sux116 add -12346 0.5 -> -12346 Inexact Rounded
1198r0sux117 add -12346 0.50001 -> -12346 Inexact Rounded
1199
1200r0sux120 add -12345 0.4 -> -12344 Inexact Rounded
1201r0sux121 add -12345 0.49 -> -12344 Inexact Rounded
1202r0sux122 add -12345 0.499 -> -12344 Inexact Rounded
1203r0sux123 add -12345 0.49999 -> -12344 Inexact Rounded
1204r0sux124 add -12345 0.5 -> -12344 Inexact Rounded
1205r0sux125 add -12345 0.50001 -> -12344 Inexact Rounded
1206r0sux126 add -12345 0.5001 -> -12344 Inexact Rounded
1207r0sux127 add -12345 0.501 -> -12344 Inexact Rounded
1208r0sux128 add -12345 0.51 -> -12344 Inexact Rounded
1209r0sux129 add -12345 0.6 -> -12344 Inexact Rounded
1210
1211-- Check cancellation subtractions
1212-- (The IEEE 854 'curious rule' in $6.3)
1213
1214r0zex001 add 0 0 -> 0
1215r0zex002 add 0 -0 -> 0
1216r0zex003 add -0 0 -> 0
1217r0zex004 add -0 -0 -> -0
1218r0zex005 add 1 -1 -> 0
1219r0zex006 add -1 1 -> 0
1220r0zex007 add 1.5 -1.5 -> 0.0
1221r0zex008 add -1.5 1.5 -> 0.0
1222r0zex009 add 2 -2 -> 0
1223r0zex010 add -2 2 -> 0
1224
1225
1226-- Division operators -------------------------------------------------
1227
1228r0dvx101 divide 12345 1 -> 12345
1229r0dvx102 divide 12345 1.0001 -> 12343 Inexact Rounded
1230r0dvx103 divide 12345 1.001 -> 12332 Inexact Rounded
1231r0dvx104 divide 12345 1.01 -> 12222 Inexact Rounded
1232r0dvx105 divide 12345 1.1 -> 11222 Inexact Rounded
1233r0dvx106 divide 12355 4 -> 3088.7 Inexact Rounded
1234r0dvx107 divide 12345 4 -> 3086.2 Inexact Rounded
1235r0dvx108 divide 12355 4.0001 -> 3088.6 Inexact Rounded
1236r0dvx109 divide 12345 4.0001 -> 3086.1 Inexact Rounded
1237r0dvx110 divide 12345 4.9 -> 2519.3 Inexact Rounded
1238r0dvx111 divide 12345 4.99 -> 2473.9 Inexact Rounded
1239r0dvx112 divide 12345 4.999 -> 2469.4 Inexact Rounded
1240r0dvx113 divide 12345 4.9999 -> 2469.1 Inexact Rounded
1241r0dvx114 divide 12345 5 -> 2469
1242r0dvx115 divide 12345 5.0001 -> 2468.9 Inexact Rounded
1243r0dvx116 divide 12345 5.001 -> 2468.6 Inexact Rounded
1244r0dvx117 divide 12345 5.01 -> 2464.1 Inexact Rounded
1245r0dvx118 divide 12345 5.1 -> 2420.6 Inexact Rounded
1246
1247-- [divideInteger and remainder unaffected]
1248
1249-- Multiplication operator --------------------------------------------
1250
1251r0mux101 multiply 12345 1 -> 12345
1252r0mux102 multiply 12345 1.0001 -> 12346 Inexact Rounded
1253r0mux103 multiply 12345 1.001 -> 12357 Inexact Rounded
1254r0mux104 multiply 12345 1.01 -> 12468 Inexact Rounded
1255r0mux105 multiply 12345 1.1 -> 13579 Inexact Rounded
1256r0mux106 multiply 12345 4 -> 49380
1257r0mux107 multiply 12345 4.0001 -> 49381 Inexact Rounded
1258r0mux108 multiply 12345 4.9 -> 60491 Inexact Rounded
1259r0mux109 multiply 12345 4.99 -> 61601 Inexact Rounded
1260r0mux110 multiply 12345 4.999 -> 61712 Inexact Rounded
1261r0mux111 multiply 12345 4.9999 -> 61723 Inexact Rounded
1262r0mux112 multiply 12345 5 -> 61725
1263r0mux113 multiply 12345 5.0001 -> 61726 Inexact Rounded
1264r0mux114 multiply 12345 5.001 -> 61737 Inexact Rounded
1265r0mux115 multiply 12345 5.01 -> 61848 Inexact Rounded
1266r0mux116 multiply 12345 12 -> 1.4814E+5 Rounded
1267r0mux117 multiply 12345 13 -> 1.6048E+5 Inexact Rounded
1268r0mux118 multiply 12355 12 -> 1.4826E+5 Rounded
1269r0mux119 multiply 12355 13 -> 1.6061E+5 Inexact Rounded
1270
1271
1272-- Power operator -----------------------------------------------------
1273
1274r0pox101 power 12345 -5 -> 3.4877E-21 Inexact Rounded
1275r0pox102 power 12345 -4 -> 4.3056E-17 Inexact Rounded
1276r0pox103 power 12345 -3 -> 5.3152E-13 Inexact Rounded
1277r0pox104 power 12345 -2 -> 6.5617E-9 Inexact Rounded
1278r0pox105 power 12345 -1 -> 0.000081004 Inexact Rounded
1279r0pox106 power 12345 0 -> 1
1280r0pox107 power 12345 1 -> 12345
1281r0pox108 power 12345 2 -> 1.5239E+8 Inexact Rounded
1282r0pox109 power 12345 3 -> 1.8813E+12 Inexact Rounded
1283r0pox110 power 12345 4 -> 2.3226E+16 Inexact Rounded
1284r0pox111 power 12345 5 -> 2.8671E+20 Inexact Rounded
1285r0pox112 power 415 2 -> 1.7222E+5 Inexact Rounded
1286r0pox113 power 75 3 -> 4.2187E+5 Inexact Rounded
1287
1288
1289-- Underflow Subnormal and overflow values vary with rounding mode and sign
1290maxexponent: 999999999
1291minexponent: -999999999
1292-- [round down gives Nmax on first two and .0E... on the next two]
1293r0ovx100 multiply 10 9E+999999999 -> 9.9999E+999999999 Overflow Inexact Rounded
1294r0ovx101 multiply -10 9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded
1295r0ovx102 divide 1E-9 9E+999999999 -> 1E-1000000003 Underflow Subnormal Inexact Rounded
1296r0ovx104 divide -1E-9 9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded
1297
1298-- reprise rounding mode effect (using multiplies so precision directive used)
1299precision: 9
1300maxexponent: 999999999
1301r0mex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded
1302r0mex413 multiply 9.999E+999999999 10 -> 9.99999999E+999999999 Overflow Inexact Rounded
1303