| ------------------------------------------------------------------------ |
| -- rounding.decTest -- decimal rounding modes testcases -- |
| -- Copyright (c) IBM Corporation, 1981, 2003. 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.39 |
| |
| -- 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).] |
| -- |
| -- 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 |
| rovx104 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded |
| |
| 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 |
| |
| 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 |
| 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 |
| rovx144 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded |
| |
| 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 |
| rovx154 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded |
| |
| 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 |
| rovx164 divide -1E-9 9E+999999999 -> -0E-1000000003 Underflow Subnormal Inexact Rounded |
| |
| -- 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 |
| |