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