------------------------------------------------------------------------

-- rounding.decTest -- decimal rounding modes testcases               --

-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --

------------------------------------------------------------------------

-- Please see the document "General Decimal Arithmetic Testcases"     --

-- at http://www2.hursley.ibm.com/decimal for the description of      --

-- these testcases.                                                   --

--                                                                    --

-- These testcases are experimental ('beta' versions), and they       --

-- may contain errors.  They are offered on an as-is basis.  In       --

-- particular, achieving the same results as the tests here is not    --

-- a guarantee that an implementation complies with any Standard      --

-- or specification.  The tests are not exhaustive.                   --

--                                                                    --

-- Please send comments, suggestions, and corrections to the author:  --

--   Mike Cowlishaw, IBM Fellow                                       --

--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

--   mfc@uk.ibm.com                                                   --

------------------------------------------------------------------------

version: 2.58



-- These tests require that implementations take account of residues in

-- order to get correct results for some rounding modes.  Rather than

-- single rounding tests we therefore need tests for most operators.

-- [We do assume add/minus/plus/subtract are common paths, however, as

-- is rounding of negatives (if the latter works for addition, assume it

-- works for the others, too).]

--

-- Round-for-reround (05UP) is tested as a separate block, mostly for

-- 'historical' reasons.

--

-- Underflow Subnormal and overflow behaviours are tested under the

-- individual operators.



extended:    1

precision:   5           -- for easier visual inspection

maxExponent: 999

minexponent: -999



-- Addition operators -------------------------------------------------

rounding: down



radx100  add 12345 -0.1       -> 12344 Inexact Rounded

radx101  add 12345 -0.01      -> 12344 Inexact Rounded

radx102  add 12345 -0.001     -> 12344 Inexact Rounded

radx103  add 12345 -0.00001   -> 12344 Inexact Rounded

radx104  add 12345 -0.000001  -> 12344 Inexact Rounded

radx105  add 12345 -0.0000001 -> 12344 Inexact Rounded

radx106  add 12345  0         -> 12345

radx107  add 12345  0.0000001 -> 12345 Inexact Rounded

radx108  add 12345  0.000001  -> 12345 Inexact Rounded

radx109  add 12345  0.00001   -> 12345 Inexact Rounded

radx110  add 12345  0.0001    -> 12345 Inexact Rounded

radx111  add 12345  0.001     -> 12345 Inexact Rounded

radx112  add 12345  0.01      -> 12345 Inexact Rounded

radx113  add 12345  0.1       -> 12345 Inexact Rounded



radx115  add 12346  0.49999   -> 12346 Inexact Rounded

radx116  add 12346  0.5       -> 12346 Inexact Rounded

radx117  add 12346  0.50001   -> 12346 Inexact Rounded



radx120  add 12345  0.4       -> 12345 Inexact Rounded

radx121  add 12345  0.49      -> 12345 Inexact Rounded

radx122  add 12345  0.499     -> 12345 Inexact Rounded

radx123  add 12345  0.49999   -> 12345 Inexact Rounded

radx124  add 12345  0.5       -> 12345 Inexact Rounded

radx125  add 12345  0.50001   -> 12345 Inexact Rounded

radx126  add 12345  0.5001    -> 12345 Inexact Rounded

radx127  add 12345  0.501     -> 12345 Inexact Rounded

radx128  add 12345  0.51      -> 12345 Inexact Rounded

radx129  add 12345  0.6       -> 12345 Inexact Rounded



rounding: half_down



radx140  add 12345 -0.1       -> 12345 Inexact Rounded

radx141  add 12345 -0.01      -> 12345 Inexact Rounded

radx142  add 12345 -0.001     -> 12345 Inexact Rounded

radx143  add 12345 -0.00001   -> 12345 Inexact Rounded

radx144  add 12345 -0.000001  -> 12345 Inexact Rounded

radx145  add 12345 -0.0000001 -> 12345 Inexact Rounded

radx146  add 12345  0         -> 12345

radx147  add 12345  0.0000001 -> 12345 Inexact Rounded

radx148  add 12345  0.000001  -> 12345 Inexact Rounded

radx149  add 12345  0.00001   -> 12345 Inexact Rounded

radx150  add 12345  0.0001    -> 12345 Inexact Rounded

radx151  add 12345  0.001     -> 12345 Inexact Rounded

radx152  add 12345  0.01      -> 12345 Inexact Rounded

radx153  add 12345  0.1       -> 12345 Inexact Rounded



radx155  add 12346  0.49999   -> 12346 Inexact Rounded

radx156  add 12346  0.5       -> 12346 Inexact Rounded

radx157  add 12346  0.50001   -> 12347 Inexact Rounded



radx160  add 12345  0.4       -> 12345 Inexact Rounded

radx161  add 12345  0.49      -> 12345 Inexact Rounded

radx162  add 12345  0.499     -> 12345 Inexact Rounded

radx163  add 12345  0.49999   -> 12345 Inexact Rounded

radx164  add 12345  0.5       -> 12345 Inexact Rounded

radx165  add 12345  0.50001   -> 12346 Inexact Rounded

radx166  add 12345  0.5001    -> 12346 Inexact Rounded

radx167  add 12345  0.501     -> 12346 Inexact Rounded

radx168  add 12345  0.51      -> 12346 Inexact Rounded

radx169  add 12345  0.6       -> 12346 Inexact Rounded



rounding: half_even



radx170  add 12345 -0.1       -> 12345 Inexact Rounded

radx171  add 12345 -0.01      -> 12345 Inexact Rounded

radx172  add 12345 -0.001     -> 12345 Inexact Rounded

radx173  add 12345 -0.00001   -> 12345 Inexact Rounded

radx174  add 12345 -0.000001  -> 12345 Inexact Rounded

radx175  add 12345 -0.0000001 -> 12345 Inexact Rounded

radx176  add 12345  0         -> 12345

radx177  add 12345  0.0000001 -> 12345 Inexact Rounded

radx178  add 12345  0.000001  -> 12345 Inexact Rounded

radx179  add 12345  0.00001   -> 12345 Inexact Rounded

radx180  add 12345  0.0001    -> 12345 Inexact Rounded

radx181  add 12345  0.001     -> 12345 Inexact Rounded

radx182  add 12345  0.01      -> 12345 Inexact Rounded

radx183  add 12345  0.1       -> 12345 Inexact Rounded



radx185  add 12346  0.49999   -> 12346 Inexact Rounded

radx186  add 12346  0.5       -> 12346 Inexact Rounded

radx187  add 12346  0.50001   -> 12347 Inexact Rounded



radx190  add 12345  0.4       -> 12345 Inexact Rounded

radx191  add 12345  0.49      -> 12345 Inexact Rounded

radx192  add 12345  0.499     -> 12345 Inexact Rounded

radx193  add 12345  0.49999   -> 12345 Inexact Rounded

radx194  add 12345  0.5       -> 12346 Inexact Rounded

radx195  add 12345  0.50001   -> 12346 Inexact Rounded

radx196  add 12345  0.5001    -> 12346 Inexact Rounded

radx197  add 12345  0.501     -> 12346 Inexact Rounded

radx198  add 12345  0.51      -> 12346 Inexact Rounded

radx199  add 12345  0.6       -> 12346 Inexact Rounded



rounding: half_up



radx200  add 12345 -0.1       -> 12345 Inexact Rounded

radx201  add 12345 -0.01      -> 12345 Inexact Rounded

radx202  add 12345 -0.001     -> 12345 Inexact Rounded

radx203  add 12345 -0.00001   -> 12345 Inexact Rounded

radx204  add 12345 -0.000001  -> 12345 Inexact Rounded

radx205  add 12345 -0.0000001 -> 12345 Inexact Rounded

radx206  add 12345  0         -> 12345

radx207  add 12345  0.0000001 -> 12345 Inexact Rounded

radx208  add 12345  0.000001  -> 12345 Inexact Rounded

radx209  add 12345  0.00001   -> 12345 Inexact Rounded

radx210  add 12345  0.0001    -> 12345 Inexact Rounded

radx211  add 12345  0.001     -> 12345 Inexact Rounded

radx212  add 12345  0.01      -> 12345 Inexact Rounded

radx213  add 12345  0.1       -> 12345 Inexact Rounded



radx215  add 12346  0.49999   -> 12346 Inexact Rounded

radx216  add 12346  0.5       -> 12347 Inexact Rounded

radx217  add 12346  0.50001   -> 12347 Inexact Rounded



radx220  add 12345  0.4       -> 12345 Inexact Rounded

radx221  add 12345  0.49      -> 12345 Inexact Rounded

radx222  add 12345  0.499     -> 12345 Inexact Rounded

radx223  add 12345  0.49999   -> 12345 Inexact Rounded

radx224  add 12345  0.5       -> 12346 Inexact Rounded

radx225  add 12345  0.50001   -> 12346 Inexact Rounded

radx226  add 12345  0.5001    -> 12346 Inexact Rounded

radx227  add 12345  0.501     -> 12346 Inexact Rounded

radx228  add 12345  0.51      -> 12346 Inexact Rounded

radx229  add 12345  0.6       -> 12346 Inexact Rounded



rounding: up



radx230  add 12345 -0.1       -> 12345 Inexact Rounded

radx231  add 12345 -0.01      -> 12345 Inexact Rounded

radx232  add 12345 -0.001     -> 12345 Inexact Rounded

radx233  add 12345 -0.00001   -> 12345 Inexact Rounded

radx234  add 12345 -0.000001  -> 12345 Inexact Rounded

radx235  add 12345 -0.0000001 -> 12345 Inexact Rounded

radx236  add 12345  0         -> 12345

radx237  add 12345  0.0000001 -> 12346 Inexact Rounded

radx238  add 12345  0.000001  -> 12346 Inexact Rounded

radx239  add 12345  0.00001   -> 12346 Inexact Rounded

radx240  add 12345  0.0001    -> 12346 Inexact Rounded

radx241  add 12345  0.001     -> 12346 Inexact Rounded

radx242  add 12345  0.01      -> 12346 Inexact Rounded

radx243  add 12345  0.1       -> 12346 Inexact Rounded



radx245  add 12346  0.49999   -> 12347 Inexact Rounded

radx246  add 12346  0.5       -> 12347 Inexact Rounded

radx247  add 12346  0.50001   -> 12347 Inexact Rounded



radx250  add 12345  0.4       -> 12346 Inexact Rounded

radx251  add 12345  0.49      -> 12346 Inexact Rounded

radx252  add 12345  0.499     -> 12346 Inexact Rounded

radx253  add 12345  0.49999   -> 12346 Inexact Rounded

radx254  add 12345  0.5       -> 12346 Inexact Rounded

radx255  add 12345  0.50001   -> 12346 Inexact Rounded

radx256  add 12345  0.5001    -> 12346 Inexact Rounded

radx257  add 12345  0.501     -> 12346 Inexact Rounded

radx258  add 12345  0.51      -> 12346 Inexact Rounded

radx259  add 12345  0.6       -> 12346 Inexact Rounded



rounding: floor



radx300  add 12345 -0.1       -> 12344 Inexact Rounded

radx301  add 12345 -0.01      -> 12344 Inexact Rounded

radx302  add 12345 -0.001     -> 12344 Inexact Rounded

radx303  add 12345 -0.00001   -> 12344 Inexact Rounded

radx304  add 12345 -0.000001  -> 12344 Inexact Rounded

radx305  add 12345 -0.0000001 -> 12344 Inexact Rounded

radx306  add 12345  0         -> 12345

radx307  add 12345  0.0000001 -> 12345 Inexact Rounded

radx308  add 12345  0.000001  -> 12345 Inexact Rounded

radx309  add 12345  0.00001   -> 12345 Inexact Rounded

radx310  add 12345  0.0001    -> 12345 Inexact Rounded

radx311  add 12345  0.001     -> 12345 Inexact Rounded

radx312  add 12345  0.01      -> 12345 Inexact Rounded

radx313  add 12345  0.1       -> 12345 Inexact Rounded



radx315  add 12346  0.49999   -> 12346 Inexact Rounded

radx316  add 12346  0.5       -> 12346 Inexact Rounded

radx317  add 12346  0.50001   -> 12346 Inexact Rounded



radx320  add 12345  0.4       -> 12345 Inexact Rounded

radx321  add 12345  0.49      -> 12345 Inexact Rounded

radx322  add 12345  0.499     -> 12345 Inexact Rounded

radx323  add 12345  0.49999   -> 12345 Inexact Rounded

radx324  add 12345  0.5       -> 12345 Inexact Rounded

radx325  add 12345  0.50001   -> 12345 Inexact Rounded

radx326  add 12345  0.5001    -> 12345 Inexact Rounded

radx327  add 12345  0.501     -> 12345 Inexact Rounded

radx328  add 12345  0.51      -> 12345 Inexact Rounded

radx329  add 12345  0.6       -> 12345 Inexact Rounded



rounding: ceiling



radx330  add 12345 -0.1       -> 12345 Inexact Rounded

radx331  add 12345 -0.01      -> 12345 Inexact Rounded

radx332  add 12345 -0.001     -> 12345 Inexact Rounded

radx333  add 12345 -0.00001   -> 12345 Inexact Rounded

radx334  add 12345 -0.000001  -> 12345 Inexact Rounded

radx335  add 12345 -0.0000001 -> 12345 Inexact Rounded

radx336  add 12345  0         -> 12345

radx337  add 12345  0.0000001 -> 12346 Inexact Rounded

radx338  add 12345  0.000001  -> 12346 Inexact Rounded

radx339  add 12345  0.00001   -> 12346 Inexact Rounded

radx340  add 12345  0.0001    -> 12346 Inexact Rounded

radx341  add 12345  0.001     -> 12346 Inexact Rounded

radx342  add 12345  0.01      -> 12346 Inexact Rounded

radx343  add 12345  0.1       -> 12346 Inexact Rounded



radx345  add 12346  0.49999   -> 12347 Inexact Rounded

radx346  add 12346  0.5       -> 12347 Inexact Rounded

radx347  add 12346  0.50001   -> 12347 Inexact Rounded



radx350  add 12345  0.4       -> 12346 Inexact Rounded

radx351  add 12345  0.49      -> 12346 Inexact Rounded

radx352  add 12345  0.499     -> 12346 Inexact Rounded

radx353  add 12345  0.49999   -> 12346 Inexact Rounded

radx354  add 12345  0.5       -> 12346 Inexact Rounded

radx355  add 12345  0.50001   -> 12346 Inexact Rounded

radx356  add 12345  0.5001    -> 12346 Inexact Rounded

radx357  add 12345  0.501     -> 12346 Inexact Rounded

radx358  add 12345  0.51      -> 12346 Inexact Rounded

radx359  add 12345  0.6       -> 12346 Inexact Rounded



-- negatives...



rounding: down



rsux100  add -12345 -0.1       -> -12345 Inexact Rounded

rsux101  add -12345 -0.01      -> -12345 Inexact Rounded

rsux102  add -12345 -0.001     -> -12345 Inexact Rounded

rsux103  add -12345 -0.00001   -> -12345 Inexact Rounded

rsux104  add -12345 -0.000001  -> -12345 Inexact Rounded

rsux105  add -12345 -0.0000001 -> -12345 Inexact Rounded

rsux106  add -12345  0         -> -12345

rsux107  add -12345  0.0000001 -> -12344 Inexact Rounded

rsux108  add -12345  0.000001  -> -12344 Inexact Rounded

rsux109  add -12345  0.00001   -> -12344 Inexact Rounded

rsux110  add -12345  0.0001    -> -12344 Inexact Rounded

rsux111  add -12345  0.001     -> -12344 Inexact Rounded

rsux112  add -12345  0.01      -> -12344 Inexact Rounded

rsux113  add -12345  0.1       -> -12344 Inexact Rounded



rsux115  add -12346  0.49999   -> -12345 Inexact Rounded

rsux116  add -12346  0.5       -> -12345 Inexact Rounded

rsux117  add -12346  0.50001   -> -12345 Inexact Rounded



rsux120  add -12345  0.4       -> -12344 Inexact Rounded

rsux121  add -12345  0.49      -> -12344 Inexact Rounded

rsux122  add -12345  0.499     -> -12344 Inexact Rounded

rsux123  add -12345  0.49999   -> -12344 Inexact Rounded

rsux124  add -12345  0.5       -> -12344 Inexact Rounded

rsux125  add -12345  0.50001   -> -12344 Inexact Rounded

rsux126  add -12345  0.5001    -> -12344 Inexact Rounded

rsux127  add -12345  0.501     -> -12344 Inexact Rounded

rsux128  add -12345  0.51      -> -12344 Inexact Rounded

rsux129  add -12345  0.6       -> -12344 Inexact Rounded



rounding: half_down



rsux140  add -12345 -0.1       -> -12345 Inexact Rounded

rsux141  add -12345 -0.01      -> -12345 Inexact Rounded

rsux142  add -12345 -0.001     -> -12345 Inexact Rounded

rsux143  add -12345 -0.00001   -> -12345 Inexact Rounded

rsux144  add -12345 -0.000001  -> -12345 Inexact Rounded

rsux145  add -12345 -0.0000001 -> -12345 Inexact Rounded

rsux146  add -12345  0         -> -12345

rsux147  add -12345  0.0000001 -> -12345 Inexact Rounded

rsux148  add -12345  0.000001  -> -12345 Inexact Rounded

rsux149  add -12345  0.00001   -> -12345 Inexact Rounded

rsux150  add -12345  0.0001    -> -12345 Inexact Rounded

rsux151  add -12345  0.001     -> -12345 Inexact Rounded

rsux152  add -12345  0.01      -> -12345 Inexact Rounded

rsux153  add -12345  0.1       -> -12345 Inexact Rounded



rsux155  add -12346  0.49999   -> -12346 Inexact Rounded

rsux156  add -12346  0.5       -> -12345 Inexact Rounded

rsux157  add -12346  0.50001   -> -12345 Inexact Rounded



rsux160  add -12345  0.4       -> -12345 Inexact Rounded

rsux161  add -12345  0.49      -> -12345 Inexact Rounded

rsux162  add -12345  0.499     -> -12345 Inexact Rounded

rsux163  add -12345  0.49999   -> -12345 Inexact Rounded

rsux164  add -12345  0.5       -> -12344 Inexact Rounded

rsux165  add -12345  0.50001   -> -12344 Inexact Rounded

rsux166  add -12345  0.5001    -> -12344 Inexact Rounded

rsux167  add -12345  0.501     -> -12344 Inexact Rounded

rsux168  add -12345  0.51      -> -12344 Inexact Rounded

rsux169  add -12345  0.6       -> -12344 Inexact Rounded



rounding: half_even



rsux170  add -12345 -0.1       -> -12345 Inexact Rounded

rsux171  add -12345 -0.01      -> -12345 Inexact Rounded

rsux172  add -12345 -0.001     -> -12345 Inexact Rounded

rsux173  add -12345 -0.00001   -> -12345 Inexact Rounded

rsux174  add -12345 -0.000001  -> -12345 Inexact Rounded

rsux175  add -12345 -0.0000001 -> -12345 Inexact Rounded

rsux176  add -12345  0         -> -12345

rsux177  add -12345  0.0000001 -> -12345 Inexact Rounded

rsux178  add -12345  0.000001  -> -12345 Inexact Rounded

rsux179  add -12345  0.00001   -> -12345 Inexact Rounded

rsux180  add -12345  0.0001    -> -12345 Inexact Rounded

rsux181  add -12345  0.001     -> -12345 Inexact Rounded

rsux182  add -12345  0.01      -> -12345 Inexact Rounded

rsux183  add -12345  0.1       -> -12345 Inexact Rounded



rsux185  add -12346  0.49999   -> -12346 Inexact Rounded

rsux186  add -12346  0.5       -> -12346 Inexact Rounded

rsux187  add -12346  0.50001   -> -12345 Inexact Rounded



rsux190  add -12345  0.4       -> -12345 Inexact Rounded

rsux191  add -12345  0.49      -> -12345 Inexact Rounded

rsux192  add -12345  0.499     -> -12345 Inexact Rounded

rsux193  add -12345  0.49999   -> -12345 Inexact Rounded

rsux194  add -12345  0.5       -> -12344 Inexact Rounded

rsux195  add -12345  0.50001   -> -12344 Inexact Rounded

rsux196  add -12345  0.5001    -> -12344 Inexact Rounded

rsux197  add -12345  0.501     -> -12344 Inexact Rounded

rsux198  add -12345  0.51      -> -12344 Inexact Rounded

rsux199  add -12345  0.6       -> -12344 Inexact Rounded



rounding: half_up



rsux200  add -12345 -0.1       -> -12345 Inexact Rounded

rsux201  add -12345 -0.01      -> -12345 Inexact Rounded

rsux202  add -12345 -0.001     -> -12345 Inexact Rounded

rsux203  add -12345 -0.00001   -> -12345 Inexact Rounded

rsux204  add -12345 -0.000001  -> -12345 Inexact Rounded

rsux205  add -12345 -0.0000001 -> -12345 Inexact Rounded

rsux206  add -12345  0         -> -12345

rsux207  add -12345  0.0000001 -> -12345 Inexact Rounded

rsux208  add -12345  0.000001  -> -12345 Inexact Rounded

rsux209  add -12345  0.00001   -> -12345 Inexact Rounded

rsux210  add -12345  0.0001    -> -12345 Inexact Rounded

rsux211  add -12345  0.001     -> -12345 Inexact Rounded

rsux212  add -12345  0.01      -> -12345 Inexact Rounded

rsux213  add -12345  0.1       -> -12345 Inexact Rounded



rsux215  add -12346  0.49999   -> -12346 Inexact Rounded

rsux216  add -12346  0.5       -> -12346 Inexact Rounded

rsux217  add -12346  0.50001   -> -12345 Inexact Rounded



rsux220  add -12345  0.4       -> -12345 Inexact Rounded

rsux221  add -12345  0.49      -> -12345 Inexact Rounded

rsux222  add -12345  0.499     -> -12345 Inexact Rounded

rsux223  add -12345  0.49999   -> -12345 Inexact Rounded

rsux224  add -12345  0.5       -> -12345 Inexact Rounded

rsux225  add -12345  0.50001   -> -12344 Inexact Rounded

rsux226  add -12345  0.5001    -> -12344 Inexact Rounded

rsux227  add -12345  0.501     -> -12344 Inexact Rounded

rsux228  add -12345  0.51      -> -12344 Inexact Rounded

rsux229  add -12345  0.6       -> -12344 Inexact Rounded



rounding: up



rsux230  add -12345 -0.1       -> -12346 Inexact Rounded

rsux231  add -12345 -0.01      -> -12346 Inexact Rounded

rsux232  add -12345 -0.001     -> -12346 Inexact Rounded

rsux233  add -12345 -0.00001   -> -12346 Inexact Rounded

rsux234  add -12345 -0.000001  -> -12346 Inexact Rounded

rsux235  add -12345 -0.0000001 -> -12346 Inexact Rounded

rsux236  add -12345  0         -> -12345

rsux237  add -12345  0.0000001 -> -12345 Inexact Rounded

rsux238  add -12345  0.000001  -> -12345 Inexact Rounded

rsux239  add -12345  0.00001   -> -12345 Inexact Rounded

rsux240  add -12345  0.0001    -> -12345 Inexact Rounded

rsux241  add -12345  0.001     -> -12345 Inexact Rounded

rsux242  add -12345  0.01      -> -12345 Inexact Rounded

rsux243  add -12345  0.1       -> -12345 Inexact Rounded



rsux245  add -12346  0.49999   -> -12346 Inexact Rounded

rsux246  add -12346  0.5       -> -12346 Inexact Rounded

rsux247  add -12346  0.50001   -> -12346 Inexact Rounded



rsux250  add -12345  0.4       -> -12345 Inexact Rounded

rsux251  add -12345  0.49      -> -12345 Inexact Rounded

rsux252  add -12345  0.499     -> -12345 Inexact Rounded

rsux253  add -12345  0.49999   -> -12345 Inexact Rounded

rsux254  add -12345  0.5       -> -12345 Inexact Rounded

rsux255  add -12345  0.50001   -> -12345 Inexact Rounded

rsux256  add -12345  0.5001    -> -12345 Inexact Rounded

rsux257  add -12345  0.501     -> -12345 Inexact Rounded

rsux258  add -12345  0.51      -> -12345 Inexact Rounded

rsux259  add -12345  0.6       -> -12345 Inexact Rounded



rounding: floor



rsux300  add -12345 -0.1       -> -12346 Inexact Rounded

rsux301  add -12345 -0.01      -> -12346 Inexact Rounded

rsux302  add -12345 -0.001     -> -12346 Inexact Rounded

rsux303  add -12345 -0.00001   -> -12346 Inexact Rounded

rsux304  add -12345 -0.000001  -> -12346 Inexact Rounded

rsux305  add -12345 -0.0000001 -> -12346 Inexact Rounded

rsux306  add -12345  0         -> -12345

rsux307  add -12345  0.0000001 -> -12345 Inexact Rounded

rsux308  add -12345  0.000001  -> -12345 Inexact Rounded

rsux309  add -12345  0.00001   -> -12345 Inexact Rounded

rsux310  add -12345  0.0001    -> -12345 Inexact Rounded

rsux311  add -12345  0.001     -> -12345 Inexact Rounded

rsux312  add -12345  0.01      -> -12345 Inexact Rounded

rsux313  add -12345  0.1       -> -12345 Inexact Rounded



rsux315  add -12346  0.49999   -> -12346 Inexact Rounded

rsux316  add -12346  0.5       -> -12346 Inexact Rounded

rsux317  add -12346  0.50001   -> -12346 Inexact Rounded



rsux320  add -12345  0.4       -> -12345 Inexact Rounded

rsux321  add -12345  0.49      -> -12345 Inexact Rounded

rsux322  add -12345  0.499     -> -12345 Inexact Rounded

rsux323  add -12345  0.49999   -> -12345 Inexact Rounded

rsux324  add -12345  0.5       -> -12345 Inexact Rounded

rsux325  add -12345  0.50001   -> -12345 Inexact Rounded

rsux326  add -12345  0.5001    -> -12345 Inexact Rounded

rsux327  add -12345  0.501     -> -12345 Inexact Rounded

rsux328  add -12345  0.51      -> -12345 Inexact Rounded

rsux329  add -12345  0.6       -> -12345 Inexact Rounded



rounding: ceiling



rsux330  add -12345 -0.1       -> -12345 Inexact Rounded

rsux331  add -12345 -0.01      -> -12345 Inexact Rounded

rsux332  add -12345 -0.001     -> -12345 Inexact Rounded

rsux333  add -12345 -0.00001   -> -12345 Inexact Rounded

rsux334  add -12345 -0.000001  -> -12345 Inexact Rounded

rsux335  add -12345 -0.0000001 -> -12345 Inexact Rounded

rsux336  add -12345  0         -> -12345

rsux337  add -12345  0.0000001 -> -12344 Inexact Rounded

rsux338  add -12345  0.000001  -> -12344 Inexact Rounded

rsux339  add -12345  0.00001   -> -12344 Inexact Rounded

rsux340  add -12345  0.0001    -> -12344 Inexact Rounded

rsux341  add -12345  0.001     -> -12344 Inexact Rounded

rsux342  add -12345  0.01      -> -12344 Inexact Rounded

rsux343  add -12345  0.1       -> -12344 Inexact Rounded



rsux345  add -12346  0.49999   -> -12345 Inexact Rounded

rsux346  add -12346  0.5       -> -12345 Inexact Rounded

rsux347  add -12346  0.50001   -> -12345 Inexact Rounded



rsux350  add -12345  0.4       -> -12344 Inexact Rounded

rsux351  add -12345  0.49      -> -12344 Inexact Rounded

rsux352  add -12345  0.499     -> -12344 Inexact Rounded

rsux353  add -12345  0.49999   -> -12344 Inexact Rounded

rsux354  add -12345  0.5       -> -12344 Inexact Rounded

rsux355  add -12345  0.50001   -> -12344 Inexact Rounded

rsux356  add -12345  0.5001    -> -12344 Inexact Rounded

rsux357  add -12345  0.501     -> -12344 Inexact Rounded

rsux358  add -12345  0.51      -> -12344 Inexact Rounded

rsux359  add -12345  0.6       -> -12344 Inexact Rounded



-- Check cancellation subtractions

-- (The IEEE 854 'curious rule' in $6.3)



rounding: down

rzex001  add  0    0    ->  0

rzex002  add  0   -0    ->  0

rzex003  add -0    0    ->  0

rzex004  add -0   -0    -> -0

rzex005  add  1   -1    ->  0

rzex006  add -1    1    ->  0

rzex007  add  1.5 -1.5  ->  0.0

rzex008  add -1.5  1.5  ->  0.0

rzex009  add  2   -2    ->  0

rzex010  add -2    2    ->  0



rounding: up

rzex011  add  0    0    ->  0

rzex012  add  0   -0    ->  0

rzex013  add -0    0    ->  0

rzex014  add -0   -0    -> -0

rzex015  add  1   -1    ->  0

rzex016  add -1    1    ->  0

rzex017  add  1.5 -1.5  ->  0.0

rzex018  add -1.5  1.5  ->  0.0

rzex019  add  2   -2    ->  0

rzex020  add -2    2    ->  0



rounding: half_up

rzex021  add  0    0    ->  0

rzex022  add  0   -0    ->  0

rzex023  add -0    0    ->  0

rzex024  add -0   -0    -> -0

rzex025  add  1   -1    ->  0

rzex026  add -1    1    ->  0

rzex027  add  1.5 -1.5  ->  0.0

rzex028  add -1.5  1.5  ->  0.0

rzex029  add  2   -2    ->  0

rzex030  add -2    2    ->  0



rounding: half_down

rzex031  add  0    0    ->  0

rzex032  add  0   -0    ->  0

rzex033  add -0    0    ->  0

rzex034  add -0   -0    -> -0

rzex035  add  1   -1    ->  0

rzex036  add -1    1    ->  0

rzex037  add  1.5 -1.5  ->  0.0

rzex038  add -1.5  1.5  ->  0.0

rzex039  add  2   -2    ->  0

rzex040  add -2    2    ->  0



rounding: half_even

rzex041  add  0    0    ->  0

rzex042  add  0   -0    ->  0

rzex043  add -0    0    ->  0

rzex044  add -0   -0    -> -0

rzex045  add  1   -1    ->  0

rzex046  add -1    1    ->  0

rzex047  add  1.5 -1.5  ->  0.0

rzex048  add -1.5  1.5  ->  0.0

rzex049  add  2   -2    ->  0

rzex050  add -2    2    ->  0



rounding: floor

rzex051  add  0    0    ->  0

rzex052  add  0   -0    -> -0    -- here are two 'curious'

rzex053  add -0    0    -> -0    --

rzex054  add -0   -0    -> -0

rzex055  add  1   -1    -> -0    -- here are the rest

rzex056  add -1    1    -> -0    -- ..

rzex057  add  1.5 -1.5  -> -0.0  -- ..

rzex058  add -1.5  1.5  -> -0.0  -- ..

rzex059  add  2   -2    -> -0    -- ..

rzex060  add -2    2    -> -0    -- ..



rounding: ceiling

rzex061  add  0    0    ->  0

rzex062  add  0   -0    ->  0

rzex063  add -0    0    ->  0

rzex064  add -0   -0    -> -0

rzex065  add  1   -1    ->  0

rzex066  add -1    1    ->  0

rzex067  add  1.5 -1.5  ->  0.0

rzex068  add -1.5  1.5  ->  0.0

rzex069  add  2   -2    ->  0

rzex070  add -2    2    ->  0





-- Division operators -------------------------------------------------



rounding: down

rdvx101  divide 12345  1         ->  12345

rdvx102  divide 12345  1.0001    ->  12343 Inexact Rounded

rdvx103  divide 12345  1.001     ->  12332 Inexact Rounded

rdvx104  divide 12345  1.01      ->  12222 Inexact Rounded

rdvx105  divide 12345  1.1       ->  11222 Inexact Rounded

rdvx106  divide 12355  4         ->   3088.7 Inexact Rounded

rdvx107  divide 12345  4         ->   3086.2 Inexact Rounded

rdvx108  divide 12355  4.0001    ->   3088.6 Inexact Rounded

rdvx109  divide 12345  4.0001    ->   3086.1 Inexact Rounded

rdvx110  divide 12345  4.9       ->   2519.3 Inexact Rounded

rdvx111  divide 12345  4.99      ->   2473.9 Inexact Rounded

rdvx112  divide 12345  4.999     ->   2469.4 Inexact Rounded

rdvx113  divide 12345  4.9999    ->   2469.0 Inexact Rounded

rdvx114  divide 12345  5         ->   2469

rdvx115  divide 12345  5.0001    ->  2468.9 Inexact Rounded

rdvx116  divide 12345  5.001     ->  2468.5 Inexact Rounded

rdvx117  divide 12345  5.01      ->  2464.0 Inexact Rounded

rdvx118  divide 12345  5.1       ->  2420.5 Inexact Rounded



rounding: half_down

rdvx201  divide 12345  1         ->  12345

rdvx202  divide 12345  1.0001    ->  12344 Inexact Rounded

rdvx203  divide 12345  1.001     ->  12333 Inexact Rounded

rdvx204  divide 12345  1.01      ->  12223 Inexact Rounded

rdvx205  divide 12345  1.1       ->  11223 Inexact Rounded

rdvx206  divide 12355  4         ->   3088.7 Inexact Rounded

rdvx207  divide 12345  4         ->   3086.2 Inexact Rounded

rdvx208  divide 12355  4.0001    ->   3088.7 Inexact Rounded

rdvx209  divide 12345  4.0001    ->   3086.2 Inexact Rounded

rdvx210  divide 12345  4.9       ->   2519.4 Inexact Rounded

rdvx211  divide 12345  4.99      ->   2473.9 Inexact Rounded

rdvx212  divide 12345  4.999     ->   2469.5 Inexact Rounded

rdvx213  divide 12345  4.9999    ->   2469.0 Inexact Rounded

rdvx214  divide 12345  5         ->   2469

rdvx215  divide 12345  5.0001    ->  2469.0 Inexact Rounded

rdvx216  divide 12345  5.001     ->  2468.5 Inexact Rounded

rdvx217  divide 12345  5.01      ->  2464.1 Inexact Rounded

rdvx218  divide 12345  5.1       ->  2420.6 Inexact Rounded



rounding: half_even

rdvx301  divide 12345  1         ->  12345

rdvx302  divide 12345  1.0001    ->  12344 Inexact Rounded

rdvx303  divide 12345  1.001     ->  12333 Inexact Rounded

rdvx304  divide 12345  1.01      ->  12223 Inexact Rounded

rdvx305  divide 12345  1.1       ->  11223 Inexact Rounded

rdvx306  divide 12355  4         ->   3088.8 Inexact Rounded

rdvx307  divide 12345  4         ->   3086.2 Inexact Rounded

rdvx308  divide 12355  4.0001    ->   3088.7 Inexact Rounded

rdvx309  divide 12345  4.0001    ->   3086.2 Inexact Rounded

rdvx310  divide 12345  4.9       ->   2519.4 Inexact Rounded

rdvx311  divide 12345  4.99      ->   2473.9 Inexact Rounded

rdvx312  divide 12345  4.999     ->   2469.5 Inexact Rounded

rdvx313  divide 12345  4.9999    ->   2469.0 Inexact Rounded

rdvx314  divide 12345  5         ->   2469

rdvx315  divide 12345  5.0001    ->  2469.0 Inexact Rounded

rdvx316  divide 12345  5.001     ->  2468.5 Inexact Rounded

rdvx317  divide 12345  5.01      ->  2464.1 Inexact Rounded

rdvx318  divide 12345  5.1       ->  2420.6 Inexact Rounded



rounding: half_up

rdvx401  divide 12345  1         ->  12345

rdvx402  divide 12345  1.0001    ->  12344 Inexact Rounded

rdvx403  divide 12345  1.001     ->  12333 Inexact Rounded

rdvx404  divide 12345  1.01      ->  12223 Inexact Rounded

rdvx405  divide 12345  1.1       ->  11223 Inexact Rounded

rdvx406  divide 12355  4         ->   3088.8 Inexact Rounded

rdvx407  divide 12345  4         ->   3086.3 Inexact Rounded

rdvx408  divide 12355  4.0001    ->   3088.7 Inexact Rounded

rdvx409  divide 12345  4.0001    ->   3086.2 Inexact Rounded

rdvx410  divide 12345  4.9       ->   2519.4 Inexact Rounded

rdvx411  divide 12345  4.99      ->   2473.9 Inexact Rounded

rdvx412  divide 12345  4.999     ->   2469.5 Inexact Rounded

rdvx413  divide 12345  4.9999    ->   2469.0 Inexact Rounded

rdvx414  divide 12345  5         ->   2469

rdvx415  divide 12345  5.0001    ->  2469.0 Inexact Rounded

rdvx416  divide 12345  5.001     ->  2468.5 Inexact Rounded

rdvx417  divide 12345  5.01      ->  2464.1 Inexact Rounded

rdvx418  divide 12345  5.1       ->  2420.6 Inexact Rounded



rounding: up

rdvx501  divide 12345  1         ->  12345

rdvx502  divide 12345  1.0001    ->  12344 Inexact Rounded

rdvx503  divide 12345  1.001     ->  12333 Inexact Rounded

rdvx504  divide 12345  1.01      ->  12223 Inexact Rounded

rdvx505  divide 12345  1.1       ->  11223 Inexact Rounded

rdvx506  divide 12355  4         ->   3088.8 Inexact Rounded

rdvx507  divide 12345  4         ->   3086.3 Inexact Rounded

rdvx508  divide 12355  4.0001    ->   3088.7 Inexact Rounded

rdvx509  divide 12345  4.0001    ->   3086.2 Inexact Rounded

rdvx510  divide 12345  4.9       ->   2519.4 Inexact Rounded

rdvx511  divide 12345  4.99      ->   2474.0 Inexact Rounded

rdvx512  divide 12345  4.999     ->   2469.5 Inexact Rounded

rdvx513  divide 12345  4.9999    ->   2469.1 Inexact Rounded

rdvx514  divide 12345  5         ->   2469

rdvx515  divide 12345  5.0001    ->  2469.0 Inexact Rounded

rdvx516  divide 12345  5.001     ->  2468.6 Inexact Rounded

rdvx517  divide 12345  5.01      ->  2464.1 Inexact Rounded

rdvx518  divide 12345  5.1       ->  2420.6 Inexact Rounded



rounding: floor

rdvx601  divide 12345  1         ->  12345

rdvx602  divide 12345  1.0001    ->  12343 Inexact Rounded

rdvx603  divide 12345  1.001     ->  12332 Inexact Rounded

rdvx604  divide 12345  1.01      ->  12222 Inexact Rounded

rdvx605  divide 12345  1.1       ->  11222 Inexact Rounded

rdvx606  divide 12355  4         ->   3088.7 Inexact Rounded

rdvx607  divide 12345  4         ->   3086.2 Inexact Rounded

rdvx608  divide 12355  4.0001    ->   3088.6 Inexact Rounded

rdvx609  divide 12345  4.0001    ->   3086.1 Inexact Rounded

rdvx610  divide 12345  4.9       ->   2519.3 Inexact Rounded

rdvx611  divide 12345  4.99      ->   2473.9 Inexact Rounded

rdvx612  divide 12345  4.999     ->   2469.4 Inexact Rounded

rdvx613  divide 12345  4.9999    ->   2469.0 Inexact Rounded

rdvx614  divide 12345  5         ->   2469

rdvx615  divide 12345  5.0001    ->  2468.9 Inexact Rounded

rdvx616  divide 12345  5.001     ->  2468.5 Inexact Rounded

rdvx617  divide 12345  5.01      ->  2464.0 Inexact Rounded

rdvx618  divide 12345  5.1       ->  2420.5 Inexact Rounded



rounding: ceiling

rdvx701  divide 12345  1         ->  12345

rdvx702  divide 12345  1.0001    ->  12344 Inexact Rounded

rdvx703  divide 12345  1.001     ->  12333 Inexact Rounded

rdvx704  divide 12345  1.01      ->  12223 Inexact Rounded

rdvx705  divide 12345  1.1       ->  11223 Inexact Rounded

rdvx706  divide 12355  4         ->   3088.8 Inexact Rounded

rdvx707  divide 12345  4         ->   3086.3 Inexact Rounded

rdvx708  divide 12355  4.0001    ->   3088.7 Inexact Rounded

rdvx709  divide 12345  4.0001    ->   3086.2 Inexact Rounded

rdvx710  divide 12345  4.9       ->   2519.4 Inexact Rounded

rdvx711  divide 12345  4.99      ->   2474.0 Inexact Rounded

rdvx712  divide 12345  4.999     ->   2469.5 Inexact Rounded

rdvx713  divide 12345  4.9999    ->   2469.1 Inexact Rounded

rdvx714  divide 12345  5         ->   2469

rdvx715  divide 12345  5.0001    ->  2469.0 Inexact Rounded

rdvx716  divide 12345  5.001     ->  2468.6 Inexact Rounded

rdvx717  divide 12345  5.01      ->  2464.1 Inexact Rounded

rdvx718  divide 12345  5.1       ->  2420.6 Inexact Rounded



-- [divideInteger and remainder unaffected]



-- Multiplication operator --------------------------------------------



rounding: down

rmux101  multiply 12345  1         ->  12345

rmux102  multiply 12345  1.0001    ->  12346 Inexact Rounded

rmux103  multiply 12345  1.001     ->  12357 Inexact Rounded

rmux104  multiply 12345  1.01      ->  12468 Inexact Rounded

rmux105  multiply 12345  1.1       ->  13579 Inexact Rounded

rmux106  multiply 12345  4         ->  49380

rmux107  multiply 12345  4.0001    ->  49381 Inexact Rounded

rmux108  multiply 12345  4.9       ->  60490 Inexact Rounded

rmux109  multiply 12345  4.99      ->  61601 Inexact Rounded

rmux110  multiply 12345  4.999     ->  61712 Inexact Rounded

rmux111  multiply 12345  4.9999    ->  61723 Inexact Rounded

rmux112  multiply 12345  5         ->  61725

rmux113  multiply 12345  5.0001    ->  61726 Inexact Rounded

rmux114  multiply 12345  5.001     ->  61737 Inexact Rounded

rmux115  multiply 12345  5.01      ->  61848 Inexact Rounded

rmux116  multiply 12345  12        ->  1.4814E+5 Rounded

rmux117  multiply 12345  13        ->  1.6048E+5 Inexact Rounded

rmux118  multiply 12355  12        ->  1.4826E+5 Rounded

rmux119  multiply 12355  13        ->  1.6061E+5 Inexact Rounded



rounding: half_down

rmux201  multiply 12345  1         ->  12345

rmux202  multiply 12345  1.0001    ->  12346 Inexact Rounded

rmux203  multiply 12345  1.001     ->  12357 Inexact Rounded

rmux204  multiply 12345  1.01      ->  12468 Inexact Rounded

rmux205  multiply 12345  1.1       ->  13579 Inexact Rounded

rmux206  multiply 12345  4         ->  49380

rmux207  multiply 12345  4.0001    ->  49381 Inexact Rounded

rmux208  multiply 12345  4.9       ->  60490 Inexact Rounded

rmux209  multiply 12345  4.99      ->  61602 Inexact Rounded

rmux210  multiply 12345  4.999     ->  61713 Inexact Rounded

rmux211  multiply 12345  4.9999    ->  61724 Inexact Rounded

rmux212  multiply 12345  5         ->  61725

rmux213  multiply 12345  5.0001    ->  61726 Inexact Rounded

rmux214  multiply 12345  5.001     ->  61737 Inexact Rounded

rmux215  multiply 12345  5.01      ->  61848 Inexact Rounded

rmux216  multiply 12345  12        ->  1.4814E+5 Rounded

rmux217  multiply 12345  13        ->  1.6048E+5 Inexact Rounded

rmux218  multiply 12355  12        ->  1.4826E+5 Rounded

rmux219  multiply 12355  13        ->  1.6061E+5 Inexact Rounded



rounding: half_even

rmux301  multiply 12345  1         ->  12345

rmux302  multiply 12345  1.0001    ->  12346 Inexact Rounded

rmux303  multiply 12345  1.001     ->  12357 Inexact Rounded

rmux304  multiply 12345  1.01      ->  12468 Inexact Rounded

rmux305  multiply 12345  1.1       ->  13580 Inexact Rounded

rmux306  multiply 12345  4         ->  49380

rmux307  multiply 12345  4.0001    ->  49381 Inexact Rounded

rmux308  multiply 12345  4.9       ->  60490 Inexact Rounded

rmux309  multiply 12345  4.99      ->  61602 Inexact Rounded

rmux310  multiply 12345  4.999     ->  61713 Inexact Rounded

rmux311  multiply 12345  4.9999    ->  61724 Inexact Rounded

rmux312  multiply 12345  5         ->  61725

rmux313  multiply 12345  5.0001    ->  61726 Inexact Rounded

rmux314  multiply 12345  5.001     ->  61737 Inexact Rounded

rmux315  multiply 12345  5.01      ->  61848 Inexact Rounded

rmux316  multiply 12345  12        ->  1.4814E+5 Rounded

rmux317  multiply 12345  13        ->  1.6048E+5 Inexact Rounded

rmux318  multiply 12355  12        ->  1.4826E+5 Rounded

rmux319  multiply 12355  13        ->  1.6062E+5 Inexact Rounded



rounding: half_up

rmux401  multiply 12345  1         ->  12345

rmux402  multiply 12345  1.0001    ->  12346 Inexact Rounded

rmux403  multiply 12345  1.001     ->  12357 Inexact Rounded

rmux404  multiply 12345  1.01      ->  12468 Inexact Rounded

rmux405  multiply 12345  1.1       ->  13580 Inexact Rounded

rmux406  multiply 12345  4         ->  49380

rmux407  multiply 12345  4.0001    ->  49381 Inexact Rounded

rmux408  multiply 12345  4.9       ->  60491 Inexact Rounded

rmux409  multiply 12345  4.99      ->  61602 Inexact Rounded

rmux410  multiply 12345  4.999     ->  61713 Inexact Rounded

rmux411  multiply 12345  4.9999    ->  61724 Inexact Rounded

rmux412  multiply 12345  5         ->  61725

rmux413  multiply 12345  5.0001    ->  61726 Inexact Rounded

rmux414  multiply 12345  5.001     ->  61737 Inexact Rounded

rmux415  multiply 12345  5.01      ->  61848 Inexact Rounded

rmux416  multiply 12345  12        ->  1.4814E+5 Rounded

rmux417  multiply 12345  13        ->  1.6049E+5 Inexact Rounded

rmux418  multiply 12355  12        ->  1.4826E+5 Rounded

rmux419  multiply 12355  13        ->  1.6062E+5 Inexact Rounded



rounding: up

rmux501  multiply 12345  1         ->  12345

rmux502  multiply 12345  1.0001    ->  12347 Inexact Rounded

rmux503  multiply 12345  1.001     ->  12358 Inexact Rounded

rmux504  multiply 12345  1.01      ->  12469 Inexact Rounded

rmux505  multiply 12345  1.1       ->  13580 Inexact Rounded

rmux506  multiply 12345  4         ->  49380

rmux507  multiply 12345  4.0001    ->  49382 Inexact Rounded

rmux508  multiply 12345  4.9       ->  60491 Inexact Rounded

rmux509  multiply 12345  4.99      ->  61602 Inexact Rounded

rmux510  multiply 12345  4.999     ->  61713 Inexact Rounded

rmux511  multiply 12345  4.9999    ->  61724 Inexact Rounded

rmux512  multiply 12345  5         ->  61725

rmux513  multiply 12345  5.0001    ->  61727 Inexact Rounded

rmux514  multiply 12345  5.001     ->  61738 Inexact Rounded

rmux515  multiply 12345  5.01      ->  61849 Inexact Rounded

rmux516  multiply 12345  12        ->  1.4814E+5 Rounded

rmux517  multiply 12345  13        ->  1.6049E+5 Inexact Rounded

rmux518  multiply 12355  12        ->  1.4826E+5 Rounded

rmux519  multiply 12355  13        ->  1.6062E+5 Inexact Rounded

-- [rmux516 & rmux518] can surprise



rounding: floor

rmux601  multiply 12345  1         ->  12345

rmux602  multiply 12345  1.0001    ->  12346 Inexact Rounded

rmux603  multiply 12345  1.001     ->  12357 Inexact Rounded

rmux604  multiply 12345  1.01      ->  12468 Inexact Rounded

rmux605  multiply 12345  1.1       ->  13579 Inexact Rounded

rmux606  multiply 12345  4         ->  49380

rmux607  multiply 12345  4.0001    ->  49381 Inexact Rounded

rmux608  multiply 12345  4.9       ->  60490 Inexact Rounded

rmux609  multiply 12345  4.99      ->  61601 Inexact Rounded

rmux610  multiply 12345  4.999     ->  61712 Inexact Rounded

rmux611  multiply 12345  4.9999    ->  61723 Inexact Rounded

rmux612  multiply 12345  5         ->  61725

rmux613  multiply 12345  5.0001    ->  61726 Inexact Rounded

rmux614  multiply 12345  5.001     ->  61737 Inexact Rounded

rmux615  multiply 12345  5.01      ->  61848 Inexact Rounded

rmux616  multiply 12345  12        ->  1.4814E+5 Rounded

rmux617  multiply 12345  13        ->  1.6048E+5 Inexact Rounded

rmux618  multiply 12355  12        ->  1.4826E+5 Rounded

rmux619  multiply 12355  13        ->  1.6061E+5 Inexact Rounded



rounding: ceiling

rmux701  multiply 12345  1         ->  12345

rmux702  multiply 12345  1.0001    ->  12347 Inexact Rounded

rmux703  multiply 12345  1.001     ->  12358 Inexact Rounded

rmux704  multiply 12345  1.01      ->  12469 Inexact Rounded

rmux705  multiply 12345  1.1       ->  13580 Inexact Rounded

rmux706  multiply 12345  4         ->  49380

rmux707  multiply 12345  4.0001    ->  49382 Inexact Rounded

rmux708  multiply 12345  4.9       ->  60491 Inexact Rounded

rmux709  multiply 12345  4.99      ->  61602 Inexact Rounded

rmux710  multiply 12345  4.999     ->  61713 Inexact Rounded

rmux711  multiply 12345  4.9999    ->  61724 Inexact Rounded

rmux712  multiply 12345  5         ->  61725

rmux713  multiply 12345  5.0001    ->  61727 Inexact Rounded

rmux714  multiply 12345  5.001     ->  61738 Inexact Rounded

rmux715  multiply 12345  5.01      ->  61849 Inexact Rounded

rmux716  multiply 12345  12        ->  1.4814E+5 Rounded

rmux717  multiply 12345  13        ->  1.6049E+5 Inexact Rounded

rmux718  multiply 12355  12        ->  1.4826E+5 Rounded

rmux719  multiply 12355  13        ->  1.6062E+5 Inexact Rounded



-- Power operator -----------------------------------------------------



rounding: down

rpox101  power 12345  -5        ->  3.4877E-21 Inexact Rounded

rpox102  power 12345  -4        ->  4.3056E-17 Inexact Rounded

rpox103  power 12345  -3        ->  5.3152E-13 Inexact Rounded

rpox104  power 12345  -2        ->  6.5617E-9 Inexact Rounded

rpox105  power 12345  -1        ->  0.000081004 Inexact Rounded

rpox106  power 12345  0         ->  1

rpox107  power 12345  1         ->  12345

rpox108  power 12345  2         ->  1.5239E+8 Inexact Rounded

rpox109  power 12345  3         ->  1.8813E+12 Inexact Rounded

rpox110  power 12345  4         ->  2.3225E+16 Inexact Rounded

rpox111  power 12345  5         ->  2.8671E+20 Inexact Rounded

rpox112  power   415  2         ->  1.7222E+5 Inexact Rounded

rpox113  power    75  3         ->  4.2187E+5 Inexact Rounded



rounding: half_down

rpox201  power 12345  -5        ->  3.4877E-21 Inexact Rounded

rpox202  power 12345  -4        ->  4.3056E-17 Inexact Rounded

rpox203  power 12345  -3        ->  5.3153E-13 Inexact Rounded

rpox204  power 12345  -2        ->  6.5617E-9 Inexact Rounded

rpox205  power 12345  -1        ->  0.000081004 Inexact Rounded

rpox206  power 12345  0         ->  1

rpox207  power 12345  1         ->  12345

rpox208  power 12345  2         ->  1.5240E+8 Inexact Rounded

rpox209  power 12345  3         ->  1.8814E+12 Inexact Rounded

rpox210  power 12345  4         ->  2.3225E+16 Inexact Rounded

rpox211  power 12345  5         ->  2.8672E+20 Inexact Rounded

rpox212  power   415  2         ->  1.7222E+5 Inexact Rounded

rpox213  power    75  3         ->  4.2187E+5 Inexact Rounded



rounding: half_even

rpox301  power 12345  -5        ->  3.4877E-21 Inexact Rounded

rpox302  power 12345  -4        ->  4.3056E-17 Inexact Rounded

rpox303  power 12345  -3        ->  5.3153E-13 Inexact Rounded

rpox304  power 12345  -2        ->  6.5617E-9 Inexact Rounded

rpox305  power 12345  -1        ->  0.000081004 Inexact Rounded

rpox306  power 12345  0         ->  1

rpox307  power 12345  1         ->  12345

rpox308  power 12345  2         ->  1.5240E+8 Inexact Rounded

rpox309  power 12345  3         ->  1.8814E+12 Inexact Rounded

rpox310  power 12345  4         ->  2.3225E+16 Inexact Rounded

rpox311  power 12345  5         ->  2.8672E+20 Inexact Rounded

rpox312  power   415  2         ->  1.7222E+5 Inexact Rounded

rpox313  power    75  3         ->  4.2188E+5 Inexact Rounded



rounding: half_up

rpox401  power 12345  -5        ->  3.4877E-21 Inexact Rounded

rpox402  power 12345  -4        ->  4.3056E-17 Inexact Rounded

rpox403  power 12345  -3        ->  5.3153E-13 Inexact Rounded

rpox404  power 12345  -2        ->  6.5617E-9 Inexact Rounded

rpox405  power 12345  -1        ->  0.000081004 Inexact Rounded

rpox406  power 12345  0         ->  1

rpox407  power 12345  1         ->  12345

rpox408  power 12345  2         ->  1.5240E+8 Inexact Rounded

rpox409  power 12345  3         ->  1.8814E+12 Inexact Rounded

rpox410  power 12345  4         ->  2.3225E+16 Inexact Rounded

rpox411  power 12345  5         ->  2.8672E+20 Inexact Rounded

rpox412  power   415  2         ->  1.7223E+5 Inexact Rounded

rpox413  power    75  3         ->  4.2188E+5 Inexact Rounded



rounding: up

rpox501  power 12345  -5        ->  3.4878E-21 Inexact Rounded

rpox502  power 12345  -4        ->  4.3057E-17 Inexact Rounded

rpox503  power 12345  -3        ->  5.3153E-13 Inexact Rounded

rpox504  power 12345  -2        ->  6.5618E-9 Inexact Rounded

rpox505  power 12345  -1        ->  0.000081005 Inexact Rounded

rpox506  power 12345  0         ->  1

rpox507  power 12345  1         ->  12345

rpox508  power 12345  2         ->  1.5240E+8 Inexact Rounded

rpox509  power 12345  3         ->  1.8814E+12 Inexact Rounded

rpox510  power 12345  4         ->  2.3226E+16 Inexact Rounded

rpox511  power 12345  5         ->  2.8672E+20 Inexact Rounded

rpox512  power   415  2         ->  1.7223E+5 Inexact Rounded

rpox513  power    75  3         ->  4.2188E+5 Inexact Rounded



rounding: floor

rpox601  power 12345  -5        ->  3.4877E-21 Inexact Rounded

rpox602  power 12345  -4        ->  4.3056E-17 Inexact Rounded

rpox603  power 12345  -3        ->  5.3152E-13 Inexact Rounded

rpox604  power 12345  -2        ->  6.5617E-9 Inexact Rounded

rpox605  power 12345  -1        ->  0.000081004 Inexact Rounded

rpox606  power 12345  0         ->  1

rpox607  power 12345  1         ->  12345

rpox608  power 12345  2         ->  1.5239E+8 Inexact Rounded

rpox609  power 12345  3         ->  1.8813E+12 Inexact Rounded

rpox610  power 12345  4         ->  2.3225E+16 Inexact Rounded

rpox611  power 12345  5         ->  2.8671E+20 Inexact Rounded

rpox612  power   415  2         ->  1.7222E+5 Inexact Rounded

rpox613  power    75  3         ->  4.2187E+5 Inexact Rounded



rounding: ceiling

rpox701  power 12345  -5        ->  3.4878E-21 Inexact Rounded

rpox702  power 12345  -4        ->  4.3057E-17 Inexact Rounded

rpox703  power 12345  -3        ->  5.3153E-13 Inexact Rounded

rpox704  power 12345  -2        ->  6.5618E-9 Inexact Rounded

rpox705  power 12345  -1        ->  0.000081005 Inexact Rounded

rpox706  power 12345  0         ->  1

rpox707  power 12345  1         ->  12345

rpox708  power 12345  2         ->  1.5240E+8 Inexact Rounded

rpox709  power 12345  3         ->  1.8814E+12 Inexact Rounded

rpox710  power 12345  4         ->  2.3226E+16 Inexact Rounded

rpox711  power 12345  5         ->  2.8672E+20 Inexact Rounded

rpox712  power   415  2         ->  1.7223E+5 Inexact Rounded

rpox713  power    75  3         ->  4.2188E+5 Inexact Rounded



-- Underflow Subnormal and overflow values vary with rounding mode and sign

maxexponent: 999999999

minexponent: -999999999

rounding: down

rovx100  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded

rovx101  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded

rovx102  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded Clamped

rovx104  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped



rounding: up

rovx110  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded

rovx111  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded

rovx112  divide     1E-9  9E+999999999 ->  1E-1000000003 Underflow Subnormal Inexact Rounded

rovx114  divide    -1E-9  9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded



rounding: ceiling

rovx120  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded

rovx121  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded

rovx122  divide     1E-9  9E+999999999 ->  1E-1000000003 Underflow Subnormal Inexact Rounded

rovx124  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped



rounding: floor

rovx130  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded

rovx131  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded

rovx132  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded Clamped

rovx134  divide    -1E-9  9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded



rounding: half_up

rovx140  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded

rovx141  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded

rovx142  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded Clamped

rovx144  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped



rounding: half_even

rovx150  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded

rovx151  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded

rovx152  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded Clamped

rovx154  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped



rounding: half_down

rovx160  multiply   10    9E+999999999 ->  Infinity Overflow Inexact Rounded

rovx161  multiply  -10    9E+999999999 -> -Infinity Overflow Inexact Rounded

rovx162  divide     1E-9  9E+999999999 ->  0E-1000000003 Underflow Subnormal Inexact Rounded Clamped

rovx164  divide    -1E-9  9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded Clamped



-- check maximum finite value over a range of precisions

rounding: down

precision: 1

rovx200  multiply   10    9E+999999999 ->  9E+999999999 Overflow Inexact Rounded

rovx201  multiply  -10    9E+999999999 -> -9E+999999999 Overflow Inexact Rounded

precision: 2

rovx210  multiply   10    9E+999999999 ->  9.9E+999999999 Overflow Inexact Rounded

rovx211  multiply  -10    9E+999999999 -> -9.9E+999999999 Overflow Inexact Rounded

precision: 3

rovx220  multiply   10    9E+999999999 ->  9.99E+999999999 Overflow Inexact Rounded

rovx221  multiply  -10    9E+999999999 -> -9.99E+999999999 Overflow Inexact Rounded

precision: 4

rovx230  multiply   10    9E+999999999 ->  9.999E+999999999 Overflow Inexact Rounded

rovx231  multiply  -10    9E+999999999 -> -9.999E+999999999 Overflow Inexact Rounded

precision: 5

rovx240  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded

rovx241  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded

precision: 6

rovx250  multiply   10    9E+999999999 ->  9.99999E+999999999 Overflow Inexact Rounded

rovx251  multiply  -10    9E+999999999 -> -9.99999E+999999999 Overflow Inexact Rounded

precision: 7

rovx260  multiply   10    9E+999999999 ->  9.999999E+999999999 Overflow Inexact Rounded

rovx261  multiply  -10    9E+999999999 -> -9.999999E+999999999 Overflow Inexact Rounded

precision: 8

rovx270  multiply   10    9E+999999999 ->  9.9999999E+999999999 Overflow Inexact Rounded

rovx271  multiply  -10    9E+999999999 -> -9.9999999E+999999999 Overflow Inexact Rounded

precision: 9

rovx280  multiply   10    9E+999999999 ->  9.99999999E+999999999 Overflow Inexact Rounded

rovx281  multiply  -10    9E+999999999 -> -9.99999999E+999999999 Overflow Inexact Rounded

precision: 10

rovx290  multiply   10    9E+999999999 ->  9.999999999E+999999999 Overflow Inexact Rounded

rovx291  multiply  -10    9E+999999999 -> -9.999999999E+999999999 Overflow Inexact Rounded



-- reprise rounding mode effect (using multiplies so precision directive used)

precision: 9

maxexponent: 999999999

rounding: half_up

rmex400 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded

rmex401 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded

rounding: half_down

rmex402 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded

rmex403 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded

rounding: half_even

rmex404 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded

rmex405 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded

rounding: floor

rmex406 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded

rmex407 multiply  9.999E+999999999 10 ->  9.99999999E+999999999 Overflow Inexact Rounded

rounding: ceiling

rmex408 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded

rmex409 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded

rounding: up

rmex410 multiply -9.999E+999999999 10 -> -Infinity Overflow Inexact Rounded

rmex411 multiply  9.999E+999999999 10 ->  Infinity Overflow Inexact Rounded

rounding: down

rmex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded

rmex413 multiply  9.999E+999999999 10 ->  9.99999999E+999999999 Overflow Inexact Rounded



----- Round-for-reround -----

rounding:    05up

precision:   5           -- for easier visual inspection

maxExponent: 999

minexponent: -999



-- basic rounding; really is just 0 and 5 up

r05up001 add 12340  0.001     -> 12341 Inexact Rounded

r05up002 add 12341  0.001     -> 12341 Inexact Rounded

r05up003 add 12342  0.001     -> 12342 Inexact Rounded

r05up004 add 12343  0.001     -> 12343 Inexact Rounded

r05up005 add 12344  0.001     -> 12344 Inexact Rounded

r05up006 add 12345  0.001     -> 12346 Inexact Rounded

r05up007 add 12346  0.001     -> 12346 Inexact Rounded

r05up008 add 12347  0.001     -> 12347 Inexact Rounded

r05up009 add 12348  0.001     -> 12348 Inexact Rounded

r05up010 add 12349  0.001     -> 12349 Inexact Rounded



r05up011 add 12340  0.000     -> 12340 Rounded

r05up012 add 12341  0.000     -> 12341 Rounded

r05up013 add 12342  0.000     -> 12342 Rounded

r05up014 add 12343  0.000     -> 12343 Rounded

r05up015 add 12344  0.000     -> 12344 Rounded

r05up016 add 12345  0.000     -> 12345 Rounded

r05up017 add 12346  0.000     -> 12346 Rounded

r05up018 add 12347  0.000     -> 12347 Rounded

r05up019 add 12348  0.000     -> 12348 Rounded

r05up020 add 12349  0.000     -> 12349 Rounded



r05up021 add 12340  0.901     -> 12341 Inexact Rounded

r05up022 add 12341  0.901     -> 12341 Inexact Rounded

r05up023 add 12342  0.901     -> 12342 Inexact Rounded

r05up024 add 12343  0.901     -> 12343 Inexact Rounded

r05up025 add 12344  0.901     -> 12344 Inexact Rounded

r05up026 add 12345  0.901     -> 12346 Inexact Rounded

r05up027 add 12346  0.901     -> 12346 Inexact Rounded

r05up028 add 12347  0.901     -> 12347 Inexact Rounded

r05up029 add 12348  0.901     -> 12348 Inexact Rounded

r05up030 add 12349  0.901     -> 12349 Inexact Rounded



r05up031 add -12340  -0.001     -> -12341 Inexact Rounded

r05up032 add -12341  -0.001     -> -12341 Inexact Rounded

r05up033 add -12342  -0.001     -> -12342 Inexact Rounded

r05up034 add -12343  -0.001     -> -12343 Inexact Rounded

r05up035 add -12344  -0.001     -> -12344 Inexact Rounded

r05up036 add -12345  -0.001     -> -12346 Inexact Rounded

r05up037 add -12346  -0.001     -> -12346 Inexact Rounded

r05up038 add -12347  -0.001     -> -12347 Inexact Rounded

r05up039 add -12348  -0.001     -> -12348 Inexact Rounded

r05up040 add -12349  -0.001     -> -12349 Inexact Rounded



r05up041 add -12340   0.001     -> -12339 Inexact Rounded

r05up042 add -12341   0.001     -> -12341 Inexact Rounded

r05up043 add -12342   0.001     -> -12341 Inexact Rounded

r05up044 add -12343   0.001     -> -12342 Inexact Rounded

r05up045 add -12344   0.001     -> -12343 Inexact Rounded

r05up046 add -12345   0.001     -> -12344 Inexact Rounded

r05up047 add -12346   0.001     -> -12346 Inexact Rounded

r05up048 add -12347   0.001     -> -12346 Inexact Rounded

r05up049 add -12348   0.001     -> -12347 Inexact Rounded

r05up050 add -12349   0.001     -> -12348 Inexact Rounded



-- Addition operators -------------------------------------------------

-- [The first few of these check negative residue possibilities; these

-- cases may be implemented as a negative residue in fastpaths]



r0adx100  add 12345 -0.1       -> 12344 Inexact Rounded

r0adx101  add 12345 -0.01      -> 12344 Inexact Rounded

r0adx102  add 12345 -0.001     -> 12344 Inexact Rounded

r0adx103  add 12345 -0.00001   -> 12344 Inexact Rounded

r0adx104  add 12345 -0.000001  -> 12344 Inexact Rounded

r0adx105  add 12345 -0.0000001 -> 12344 Inexact Rounded

r0adx106  add 12345  0         -> 12345

r0adx107  add 12345  0.0000001 -> 12346 Inexact Rounded

r0adx108  add 12345  0.000001  -> 12346 Inexact Rounded

r0adx109  add 12345  0.00001   -> 12346 Inexact Rounded

r0adx110  add 12345  0.0001    -> 12346 Inexact Rounded

r0adx111  add 12345  0.001     -> 12346 Inexact Rounded

r0adx112  add 12345  0.01      -> 12346 Inexact Rounded

r0adx113  add 12345  0.1       -> 12346 Inexact Rounded



r0adx115  add 12346  0.49999   -> 12346 Inexact Rounded

r0adx116  add 12346  0.5       -> 12346 Inexact Rounded

r0adx117  add 12346  0.50001   -> 12346 Inexact Rounded



r0adx120  add 12345  0.4       -> 12346 Inexact Rounded

r0adx121  add 12345  0.49      -> 12346 Inexact Rounded

r0adx122  add 12345  0.499     -> 12346 Inexact Rounded

r0adx123  add 12345  0.49999   -> 12346 Inexact Rounded

r0adx124  add 12345  0.5       -> 12346 Inexact Rounded

r0adx125  add 12345  0.50001   -> 12346 Inexact Rounded

r0adx126  add 12345  0.5001    -> 12346 Inexact Rounded

r0adx127  add 12345  0.501     -> 12346 Inexact Rounded

r0adx128  add 12345  0.51      -> 12346 Inexact Rounded

r0adx129  add 12345  0.6       -> 12346 Inexact Rounded



-- negatives...



r0sux100  add -12345 -0.1       -> -12346 Inexact Rounded

r0sux101  add -12345 -0.01      -> -12346 Inexact Rounded

r0sux102  add -12345 -0.001     -> -12346 Inexact Rounded

r0sux103  add -12345 -0.00001   -> -12346 Inexact Rounded

r0sux104  add -12345 -0.000001  -> -12346 Inexact Rounded

r0sux105  add -12345 -0.0000001 -> -12346 Inexact Rounded

r0sux106  add -12345  0         -> -12345

r0sux107  add -12345  0.0000001 -> -12344 Inexact Rounded

r0sux108  add -12345  0.000001  -> -12344 Inexact Rounded

r0sux109  add -12345  0.00001   -> -12344 Inexact Rounded

r0sux110  add -12345  0.0001    -> -12344 Inexact Rounded

r0sux111  add -12345  0.001     -> -12344 Inexact Rounded

r0sux112  add -12345  0.01      -> -12344 Inexact Rounded

r0sux113  add -12345  0.1       -> -12344 Inexact Rounded



r0sux115  add -12346  0.49999   -> -12346 Inexact Rounded

r0sux116  add -12346  0.5       -> -12346 Inexact Rounded

r0sux117  add -12346  0.50001   -> -12346 Inexact Rounded



r0sux120  add -12345  0.4       -> -12344 Inexact Rounded

r0sux121  add -12345  0.49      -> -12344 Inexact Rounded

r0sux122  add -12345  0.499     -> -12344 Inexact Rounded

r0sux123  add -12345  0.49999   -> -12344 Inexact Rounded

r0sux124  add -12345  0.5       -> -12344 Inexact Rounded

r0sux125  add -12345  0.50001   -> -12344 Inexact Rounded

r0sux126  add -12345  0.5001    -> -12344 Inexact Rounded

r0sux127  add -12345  0.501     -> -12344 Inexact Rounded

r0sux128  add -12345  0.51      -> -12344 Inexact Rounded

r0sux129  add -12345  0.6       -> -12344 Inexact Rounded



-- Check cancellation subtractions

-- (The IEEE 854 'curious rule' in $6.3)



r0zex001  add  0    0    ->  0

r0zex002  add  0   -0    ->  0

r0zex003  add -0    0    ->  0

r0zex004  add -0   -0    -> -0

r0zex005  add  1   -1    ->  0

r0zex006  add -1    1    ->  0

r0zex007  add  1.5 -1.5  ->  0.0

r0zex008  add -1.5  1.5  ->  0.0

r0zex009  add  2   -2    ->  0

r0zex010  add -2    2    ->  0





-- Division operators -------------------------------------------------



r0dvx101  divide 12345  1         ->  12345

r0dvx102  divide 12345  1.0001    ->  12343 Inexact Rounded

r0dvx103  divide 12345  1.001     ->  12332 Inexact Rounded

r0dvx104  divide 12345  1.01      ->  12222 Inexact Rounded

r0dvx105  divide 12345  1.1       ->  11222 Inexact Rounded

r0dvx106  divide 12355  4         ->   3088.7 Inexact Rounded

r0dvx107  divide 12345  4         ->   3086.2 Inexact Rounded

r0dvx108  divide 12355  4.0001    ->   3088.6 Inexact Rounded

r0dvx109  divide 12345  4.0001    ->   3086.1 Inexact Rounded

r0dvx110  divide 12345  4.9       ->   2519.3 Inexact Rounded

r0dvx111  divide 12345  4.99      ->   2473.9 Inexact Rounded

r0dvx112  divide 12345  4.999     ->   2469.4 Inexact Rounded

r0dvx113  divide 12345  4.9999    ->   2469.1 Inexact Rounded

r0dvx114  divide 12345  5         ->   2469

r0dvx115  divide 12345  5.0001    ->  2468.9 Inexact Rounded

r0dvx116  divide 12345  5.001     ->  2468.6 Inexact Rounded

r0dvx117  divide 12345  5.01      ->  2464.1 Inexact Rounded

r0dvx118  divide 12345  5.1       ->  2420.6 Inexact Rounded



-- [divideInteger and remainder unaffected]



-- Multiplication operator --------------------------------------------



r0mux101  multiply 12345  1         ->  12345

r0mux102  multiply 12345  1.0001    ->  12346 Inexact Rounded

r0mux103  multiply 12345  1.001     ->  12357 Inexact Rounded

r0mux104  multiply 12345  1.01      ->  12468 Inexact Rounded

r0mux105  multiply 12345  1.1       ->  13579 Inexact Rounded

r0mux106  multiply 12345  4         ->  49380

r0mux107  multiply 12345  4.0001    ->  49381 Inexact Rounded

r0mux108  multiply 12345  4.9       ->  60491 Inexact Rounded

r0mux109  multiply 12345  4.99      ->  61601 Inexact Rounded

r0mux110  multiply 12345  4.999     ->  61712 Inexact Rounded

r0mux111  multiply 12345  4.9999    ->  61723 Inexact Rounded

r0mux112  multiply 12345  5         ->  61725

r0mux113  multiply 12345  5.0001    ->  61726 Inexact Rounded

r0mux114  multiply 12345  5.001     ->  61737 Inexact Rounded

r0mux115  multiply 12345  5.01      ->  61848 Inexact Rounded

r0mux116  multiply 12345  12        ->  1.4814E+5 Rounded

r0mux117  multiply 12345  13        ->  1.6048E+5 Inexact Rounded

r0mux118  multiply 12355  12        ->  1.4826E+5 Rounded

r0mux119  multiply 12355  13        ->  1.6061E+5 Inexact Rounded





-- Power operator -----------------------------------------------------



r0pox101  power 12345  -5        ->  3.4877E-21 Inexact Rounded

r0pox102  power 12345  -4        ->  4.3056E-17 Inexact Rounded

r0pox103  power 12345  -3        ->  5.3152E-13 Inexact Rounded

r0pox104  power 12345  -2        ->  6.5617E-9 Inexact Rounded

r0pox105  power 12345  -1        ->  0.000081004 Inexact Rounded

r0pox106  power 12345  0         ->  1

r0pox107  power 12345  1         ->  12345

r0pox108  power 12345  2         ->  1.5239E+8 Inexact Rounded

r0pox109  power 12345  3         ->  1.8813E+12 Inexact Rounded

r0pox110  power 12345  4         ->  2.3226E+16 Inexact Rounded

r0pox111  power 12345  5         ->  2.8671E+20 Inexact Rounded

r0pox112  power   415  2         ->  1.7222E+5 Inexact Rounded

r0pox113  power    75  3         ->  4.2187E+5 Inexact Rounded





-- Underflow Subnormal and overflow values vary with rounding mode and sign

maxexponent: 999999999

minexponent: -999999999

-- [round down gives Nmax on first two and .0E... on the next two]

r0ovx100  multiply   10    9E+999999999 ->  9.9999E+999999999 Overflow Inexact Rounded

r0ovx101  multiply  -10    9E+999999999 -> -9.9999E+999999999 Overflow Inexact Rounded

r0ovx102  divide     1E-9  9E+999999999 ->  1E-1000000003 Underflow Subnormal Inexact Rounded

r0ovx104  divide    -1E-9  9E+999999999 -> -1E-1000000003 Underflow Subnormal Inexact Rounded



-- reprise rounding mode effect (using multiplies so precision directive used)

precision: 9

maxexponent: 999999999

r0mex412 multiply -9.999E+999999999 10 -> -9.99999999E+999999999 Overflow Inexact Rounded

r0mex413 multiply  9.999E+999999999 10 ->  9.99999999E+999999999 Overflow Inexact Rounded



