------------------------------------------------------------------------ -- rounding.decTest -- decimal rounding modes testcases -- -- Copyright (c) Mike Cowlishaw, 1981, 2010. All rights reserved. -- -- Parts copyright (c) IBM Corporation, 1981, 2008. -- ------------------------------------------------------------------------ -- Please see the document "General Decimal Arithmetic Testcases" -- -- at http://speleotrove.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, mfc@speleotrove.com -- ------------------------------------------------------------------------ version: 2.62 -- 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