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