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