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