Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 1 | ------------------------------------------------------------------------ |
| 2 | -- divide.decTest -- decimal division -- |
Mark Dickinson | fe84cce | 2008-07-27 06:39:07 +0000 | [diff] [blame] | 3 | -- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 4 | ------------------------------------------------------------------------ |
| 5 | -- Please see the document "General Decimal Arithmetic Testcases" -- |
| 6 | -- at http://www2.hursley.ibm.com/decimal for the description of -- |
| 7 | -- these testcases. -- |
| 8 | -- -- |
| 9 | -- These testcases are experimental ('beta' versions), and they -- |
| 10 | -- may contain errors. They are offered on an as-is basis. In -- |
| 11 | -- particular, achieving the same results as the tests here is not -- |
| 12 | -- a guarantee that an implementation complies with any Standard -- |
| 13 | -- or specification. The tests are not exhaustive. -- |
| 14 | -- -- |
| 15 | -- Please send comments, suggestions, and corrections to the author: -- |
| 16 | -- Mike Cowlishaw, IBM Fellow -- |
| 17 | -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- |
| 18 | -- mfc@uk.ibm.com -- |
| 19 | ------------------------------------------------------------------------ |
Mark Dickinson | 539bff4 | 2009-10-08 16:28:39 +0000 | [diff] [blame] | 20 | version: 2.59 |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 21 | |
| 22 | extended: 1 |
| 23 | precision: 9 |
| 24 | rounding: half_up |
| 25 | maxExponent: 384 |
| 26 | minexponent: -383 |
| 27 | |
| 28 | -- sanity checks |
| 29 | divx001 divide 1 1 -> 1 |
| 30 | divx002 divide 2 1 -> 2 |
| 31 | divx003 divide 1 2 -> 0.5 |
| 32 | divx004 divide 2 2 -> 1 |
| 33 | divx005 divide 0 1 -> 0 |
| 34 | divx006 divide 0 2 -> 0 |
| 35 | divx007 divide 1 3 -> 0.333333333 Inexact Rounded |
| 36 | divx008 divide 2 3 -> 0.666666667 Inexact Rounded |
| 37 | divx009 divide 3 3 -> 1 |
| 38 | |
| 39 | divx010 divide 2.4 1 -> 2.4 |
| 40 | divx011 divide 2.4 -1 -> -2.4 |
| 41 | divx012 divide -2.4 1 -> -2.4 |
| 42 | divx013 divide -2.4 -1 -> 2.4 |
| 43 | divx014 divide 2.40 1 -> 2.40 |
| 44 | divx015 divide 2.400 1 -> 2.400 |
| 45 | divx016 divide 2.4 2 -> 1.2 |
| 46 | divx017 divide 2.400 2 -> 1.200 |
| 47 | divx018 divide 2. 2 -> 1 |
| 48 | divx019 divide 20 20 -> 1 |
| 49 | |
Facundo Batista | 353750c | 2007-09-13 18:13:15 +0000 | [diff] [blame] | 50 | divx020 divide 187 187 -> 1 |
| 51 | divx021 divide 5 2 -> 2.5 |
| 52 | divx022 divide 50 20 -> 2.5 |
| 53 | divx023 divide 500 200 -> 2.5 |
| 54 | divx024 divide 50.0 20.0 -> 2.5 |
| 55 | divx025 divide 5.00 2.00 -> 2.5 |
| 56 | divx026 divide 5 2.0 -> 2.5 |
| 57 | divx027 divide 5 2.000 -> 2.5 |
| 58 | divx028 divide 5 0.20 -> 25 |
| 59 | divx029 divide 5 0.200 -> 25 |
| 60 | divx030 divide 10 1 -> 10 |
| 61 | divx031 divide 100 1 -> 100 |
| 62 | divx032 divide 1000 1 -> 1000 |
| 63 | divx033 divide 1000 100 -> 10 |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 64 | |
Facundo Batista | 353750c | 2007-09-13 18:13:15 +0000 | [diff] [blame] | 65 | divx035 divide 1 2 -> 0.5 |
| 66 | divx036 divide 1 4 -> 0.25 |
| 67 | divx037 divide 1 8 -> 0.125 |
| 68 | divx038 divide 1 16 -> 0.0625 |
| 69 | divx039 divide 1 32 -> 0.03125 |
| 70 | divx040 divide 1 64 -> 0.015625 |
| 71 | divx041 divide 1 -2 -> -0.5 |
| 72 | divx042 divide 1 -4 -> -0.25 |
| 73 | divx043 divide 1 -8 -> -0.125 |
| 74 | divx044 divide 1 -16 -> -0.0625 |
| 75 | divx045 divide 1 -32 -> -0.03125 |
| 76 | divx046 divide 1 -64 -> -0.015625 |
| 77 | divx047 divide -1 2 -> -0.5 |
| 78 | divx048 divide -1 4 -> -0.25 |
| 79 | divx049 divide -1 8 -> -0.125 |
| 80 | divx050 divide -1 16 -> -0.0625 |
| 81 | divx051 divide -1 32 -> -0.03125 |
| 82 | divx052 divide -1 64 -> -0.015625 |
| 83 | divx053 divide -1 -2 -> 0.5 |
| 84 | divx054 divide -1 -4 -> 0.25 |
| 85 | divx055 divide -1 -8 -> 0.125 |
| 86 | divx056 divide -1 -16 -> 0.0625 |
| 87 | divx057 divide -1 -32 -> 0.03125 |
| 88 | divx058 divide -1 -64 -> 0.015625 |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 89 | |
| 90 | divx070 divide 999999999 1 -> 999999999 |
| 91 | divx071 divide 999999999.4 1 -> 999999999 Inexact Rounded |
| 92 | divx072 divide 999999999.5 1 -> 1.00000000E+9 Inexact Rounded |
| 93 | divx073 divide 999999999.9 1 -> 1.00000000E+9 Inexact Rounded |
| 94 | divx074 divide 999999999.999 1 -> 1.00000000E+9 Inexact Rounded |
| 95 | precision: 6 |
| 96 | divx080 divide 999999999 1 -> 1.00000E+9 Inexact Rounded |
| 97 | divx081 divide 99999999 1 -> 1.00000E+8 Inexact Rounded |
| 98 | divx082 divide 9999999 1 -> 1.00000E+7 Inexact Rounded |
| 99 | divx083 divide 999999 1 -> 999999 |
| 100 | divx084 divide 99999 1 -> 99999 |
| 101 | divx085 divide 9999 1 -> 9999 |
| 102 | divx086 divide 999 1 -> 999 |
| 103 | divx087 divide 99 1 -> 99 |
| 104 | divx088 divide 9 1 -> 9 |
| 105 | |
| 106 | precision: 9 |
| 107 | divx090 divide 0. 1 -> 0 |
| 108 | divx091 divide .0 1 -> 0.0 |
| 109 | divx092 divide 0.00 1 -> 0.00 |
| 110 | divx093 divide 0.00E+9 1 -> 0E+7 |
| 111 | divx094 divide 0.0000E-50 1 -> 0E-54 |
| 112 | |
| 113 | divx095 divide 1 1E-8 -> 1E+8 |
| 114 | divx096 divide 1 1E-9 -> 1E+9 |
| 115 | divx097 divide 1 1E-10 -> 1E+10 |
| 116 | divx098 divide 1 1E-11 -> 1E+11 |
| 117 | divx099 divide 1 1E-12 -> 1E+12 |
| 118 | |
| 119 | divx100 divide 1 1 -> 1 |
| 120 | divx101 divide 1 2 -> 0.5 |
| 121 | divx102 divide 1 3 -> 0.333333333 Inexact Rounded |
| 122 | divx103 divide 1 4 -> 0.25 |
| 123 | divx104 divide 1 5 -> 0.2 |
| 124 | divx105 divide 1 6 -> 0.166666667 Inexact Rounded |
| 125 | divx106 divide 1 7 -> 0.142857143 Inexact Rounded |
| 126 | divx107 divide 1 8 -> 0.125 |
| 127 | divx108 divide 1 9 -> 0.111111111 Inexact Rounded |
| 128 | divx109 divide 1 10 -> 0.1 |
| 129 | divx110 divide 1 1 -> 1 |
| 130 | divx111 divide 2 1 -> 2 |
| 131 | divx112 divide 3 1 -> 3 |
| 132 | divx113 divide 4 1 -> 4 |
| 133 | divx114 divide 5 1 -> 5 |
| 134 | divx115 divide 6 1 -> 6 |
| 135 | divx116 divide 7 1 -> 7 |
| 136 | divx117 divide 8 1 -> 8 |
| 137 | divx118 divide 9 1 -> 9 |
| 138 | divx119 divide 10 1 -> 10 |
| 139 | |
| 140 | divx120 divide 3E+1 0.001 -> 3E+4 |
| 141 | divx121 divide 2.200 2 -> 1.100 |
| 142 | |
| 143 | divx130 divide 12345 4.999 -> 2469.49390 Inexact Rounded |
| 144 | divx131 divide 12345 4.99 -> 2473.94790 Inexact Rounded |
| 145 | divx132 divide 12345 4.9 -> 2519.38776 Inexact Rounded |
| 146 | divx133 divide 12345 5 -> 2469 |
| 147 | divx134 divide 12345 5.1 -> 2420.58824 Inexact Rounded |
| 148 | divx135 divide 12345 5.01 -> 2464.07186 Inexact Rounded |
| 149 | divx136 divide 12345 5.001 -> 2468.50630 Inexact Rounded |
| 150 | |
| 151 | precision: 9 |
| 152 | maxexponent: 999999999 |
| 153 | minexponent: -999999999 |
| 154 | |
| 155 | -- test possibly imprecise results |
| 156 | divx220 divide 391 597 -> 0.654941374 Inexact Rounded |
| 157 | divx221 divide 391 -597 -> -0.654941374 Inexact Rounded |
| 158 | divx222 divide -391 597 -> -0.654941374 Inexact Rounded |
| 159 | divx223 divide -391 -597 -> 0.654941374 Inexact Rounded |
| 160 | |
| 161 | -- test some cases that are close to exponent overflow |
| 162 | maxexponent: 999999999 |
| 163 | minexponent: -999999999 |
| 164 | divx270 divide 1 1e999999999 -> 1E-999999999 |
| 165 | divx271 divide 1 0.9e999999999 -> 1.11111111E-999999999 Inexact Rounded |
| 166 | divx272 divide 1 0.99e999999999 -> 1.01010101E-999999999 Inexact Rounded |
| 167 | divx273 divide 1 0.999999999e999999999 -> 1.00000000E-999999999 Inexact Rounded |
| 168 | divx274 divide 9e999999999 1 -> 9E+999999999 |
| 169 | divx275 divide 9.9e999999999 1 -> 9.9E+999999999 |
| 170 | divx276 divide 9.99e999999999 1 -> 9.99E+999999999 |
| 171 | divx277 divide 9.99999999e999999999 1 -> 9.99999999E+999999999 |
| 172 | |
| 173 | divx280 divide 0.1 9e-999999999 -> 1.11111111E+999999997 Inexact Rounded |
| 174 | divx281 divide 0.1 99e-999999999 -> 1.01010101E+999999996 Inexact Rounded |
| 175 | divx282 divide 0.1 999e-999999999 -> 1.00100100E+999999995 Inexact Rounded |
| 176 | |
| 177 | divx283 divide 0.1 9e-999999998 -> 1.11111111E+999999996 Inexact Rounded |
| 178 | divx284 divide 0.1 99e-999999998 -> 1.01010101E+999999995 Inexact Rounded |
| 179 | divx285 divide 0.1 999e-999999998 -> 1.00100100E+999999994 Inexact Rounded |
| 180 | divx286 divide 0.1 999e-999999997 -> 1.00100100E+999999993 Inexact Rounded |
| 181 | divx287 divide 0.1 9999e-999999997 -> 1.00010001E+999999992 Inexact Rounded |
| 182 | divx288 divide 0.1 99999e-999999997 -> 1.00001000E+999999991 Inexact Rounded |
| 183 | |
| 184 | -- Divide into 0 tests |
| 185 | |
| 186 | divx301 divide 0 7 -> 0 |
| 187 | divx302 divide 0 7E-5 -> 0E+5 |
| 188 | divx303 divide 0 7E-1 -> 0E+1 |
| 189 | divx304 divide 0 7E+1 -> 0.0 |
| 190 | divx305 divide 0 7E+5 -> 0.00000 |
| 191 | divx306 divide 0 7E+6 -> 0.000000 |
| 192 | divx307 divide 0 7E+7 -> 0E-7 |
| 193 | divx308 divide 0 70E-5 -> 0E+5 |
| 194 | divx309 divide 0 70E-1 -> 0E+1 |
| 195 | divx310 divide 0 70E+0 -> 0 |
| 196 | divx311 divide 0 70E+1 -> 0.0 |
| 197 | divx312 divide 0 70E+5 -> 0.00000 |
| 198 | divx313 divide 0 70E+6 -> 0.000000 |
| 199 | divx314 divide 0 70E+7 -> 0E-7 |
| 200 | divx315 divide 0 700E-5 -> 0E+5 |
| 201 | divx316 divide 0 700E-1 -> 0E+1 |
| 202 | divx317 divide 0 700E+0 -> 0 |
| 203 | divx318 divide 0 700E+1 -> 0.0 |
| 204 | divx319 divide 0 700E+5 -> 0.00000 |
| 205 | divx320 divide 0 700E+6 -> 0.000000 |
| 206 | divx321 divide 0 700E+7 -> 0E-7 |
| 207 | divx322 divide 0 700E+77 -> 0E-77 |
| 208 | |
| 209 | divx331 divide 0E-3 7E-5 -> 0E+2 |
| 210 | divx332 divide 0E-3 7E-1 -> 0.00 |
| 211 | divx333 divide 0E-3 7E+1 -> 0.0000 |
| 212 | divx334 divide 0E-3 7E+5 -> 0E-8 |
| 213 | divx335 divide 0E-1 7E-5 -> 0E+4 |
| 214 | divx336 divide 0E-1 7E-1 -> 0 |
| 215 | divx337 divide 0E-1 7E+1 -> 0.00 |
| 216 | divx338 divide 0E-1 7E+5 -> 0.000000 |
| 217 | divx339 divide 0E+1 7E-5 -> 0E+6 |
| 218 | divx340 divide 0E+1 7E-1 -> 0E+2 |
| 219 | divx341 divide 0E+1 7E+1 -> 0 |
| 220 | divx342 divide 0E+1 7E+5 -> 0.0000 |
| 221 | divx343 divide 0E+3 7E-5 -> 0E+8 |
| 222 | divx344 divide 0E+3 7E-1 -> 0E+4 |
| 223 | divx345 divide 0E+3 7E+1 -> 0E+2 |
| 224 | divx346 divide 0E+3 7E+5 -> 0.00 |
| 225 | |
| 226 | maxexponent: 92 |
| 227 | minexponent: -92 |
| 228 | precision: 7 |
| 229 | divx351 divide 0E-92 7E-1 -> 0E-91 |
| 230 | divx352 divide 0E-92 7E+1 -> 0E-93 |
| 231 | divx353 divide 0E-92 7E+5 -> 0E-97 |
| 232 | divx354 divide 0E-92 7E+6 -> 0E-98 |
| 233 | divx355 divide 0E-92 7E+7 -> 0E-98 Clamped |
| 234 | divx356 divide 0E-92 777E-1 -> 0E-91 |
| 235 | divx357 divide 0E-92 777E+1 -> 0E-93 |
| 236 | divx358 divide 0E-92 777E+3 -> 0E-95 |
| 237 | divx359 divide 0E-92 777E+4 -> 0E-96 |
| 238 | divx360 divide 0E-92 777E+5 -> 0E-97 |
| 239 | divx361 divide 0E-92 777E+6 -> 0E-98 |
| 240 | divx362 divide 0E-92 777E+7 -> 0E-98 Clamped |
| 241 | divx363 divide 0E-92 7E+92 -> 0E-98 Clamped |
| 242 | |
| 243 | divx371 divide 0E-92 700E-1 -> 0E-91 |
| 244 | divx372 divide 0E-92 700E+1 -> 0E-93 |
| 245 | divx373 divide 0E-92 700E+3 -> 0E-95 |
| 246 | divx374 divide 0E-92 700E+4 -> 0E-96 |
| 247 | divx375 divide 0E-92 700E+5 -> 0E-97 |
| 248 | divx376 divide 0E-92 700E+6 -> 0E-98 |
| 249 | divx377 divide 0E-92 700E+7 -> 0E-98 Clamped |
| 250 | |
| 251 | divx381 divide 0E+92 7E+1 -> 0E+91 |
| 252 | divx382 divide 0E+92 7E+0 -> 0E+92 |
| 253 | divx383 divide 0E+92 7E-1 -> 0E+92 Clamped |
| 254 | divx384 divide 0E+90 777E+1 -> 0E+89 |
| 255 | divx385 divide 0E+90 777E-1 -> 0E+91 |
| 256 | divx386 divide 0E+90 777E-2 -> 0E+92 |
| 257 | divx387 divide 0E+90 777E-3 -> 0E+92 Clamped |
| 258 | divx388 divide 0E+90 777E-4 -> 0E+92 Clamped |
| 259 | |
| 260 | divx391 divide 0E+90 700E+1 -> 0E+89 |
| 261 | divx392 divide 0E+90 700E-1 -> 0E+91 |
| 262 | divx393 divide 0E+90 700E-2 -> 0E+92 |
| 263 | divx394 divide 0E+90 700E-3 -> 0E+92 Clamped |
| 264 | divx395 divide 0E+90 700E-4 -> 0E+92 Clamped |
| 265 | |
| 266 | -- input rounding checks |
| 267 | maxexponent: 999 |
| 268 | minexponent: -999 |
| 269 | precision: 9 |
| 270 | divx401 divide 12345678000 1 -> 1.23456780E+10 Rounded |
| 271 | divx402 divide 1 12345678000 -> 8.10000066E-11 Inexact Rounded |
| 272 | divx403 divide 1234567800 1 -> 1.23456780E+9 Rounded |
| 273 | divx404 divide 1 1234567800 -> 8.10000066E-10 Inexact Rounded |
| 274 | divx405 divide 1234567890 1 -> 1.23456789E+9 Rounded |
| 275 | divx406 divide 1 1234567890 -> 8.10000007E-10 Inexact Rounded |
| 276 | divx407 divide 1234567891 1 -> 1.23456789E+9 Inexact Rounded |
| 277 | divx408 divide 1 1234567891 -> 8.10000007E-10 Inexact Rounded |
| 278 | divx409 divide 12345678901 1 -> 1.23456789E+10 Inexact Rounded |
| 279 | divx410 divide 1 12345678901 -> 8.10000007E-11 Inexact Rounded |
| 280 | divx411 divide 1234567896 1 -> 1.23456790E+9 Inexact Rounded |
| 281 | divx412 divide 1 1234567896 -> 8.10000003E-10 Inexact Rounded |
| 282 | divx413 divide 1 1234567897 -> 8.10000003E-10 Inexact Rounded |
| 283 | divx414 divide 1 1234567898 -> 8.10000002E-10 Inexact Rounded |
| 284 | divx415 divide 1 1234567899 -> 8.10000001E-10 Inexact Rounded |
| 285 | divx416 divide 1 1234567900 -> 8.10000001E-10 Inexact Rounded |
| 286 | divx417 divide 1 1234567901 -> 8.10000000E-10 Inexact Rounded |
| 287 | divx418 divide 1 1234567902 -> 8.09999999E-10 Inexact Rounded |
| 288 | -- some longies |
| 289 | divx421 divide 1234567896.000000000000 1 -> 1.23456790E+9 Inexact Rounded |
| 290 | divx422 divide 1 1234567896.000000000000 -> 8.10000003E-10 Inexact Rounded |
| 291 | divx423 divide 1234567896.000000000001 1 -> 1.23456790E+9 Inexact Rounded |
| 292 | divx424 divide 1 1234567896.000000000001 -> 8.10000003E-10 Inexact Rounded |
| 293 | divx425 divide 1234567896.000000000000000000000000000000000000000009 1 -> 1.23456790E+9 Inexact Rounded |
| 294 | divx426 divide 1 1234567896.000000000000000000000000000000000000000009 -> 8.10000003E-10 Inexact Rounded |
| 295 | divx427 divide 1234567897.900010000000000000000000000000000000000009 1 -> 1.23456790E+9 Inexact Rounded |
| 296 | divx428 divide 1 1234567897.900010000000000000000000000000000000000009 -> 8.10000002E-10 Inexact Rounded |
| 297 | |
| 298 | precision: 15 |
| 299 | -- still checking... |
| 300 | divx441 divide 12345678000 1 -> 12345678000 |
| 301 | divx442 divide 1 12345678000 -> 8.10000066420005E-11 Inexact Rounded |
| 302 | divx443 divide 1234567800 1 -> 1234567800 |
| 303 | divx444 divide 1 1234567800 -> 8.10000066420005E-10 Inexact Rounded |
| 304 | divx445 divide 1234567890 1 -> 1234567890 |
| 305 | divx446 divide 1 1234567890 -> 8.10000007371000E-10 Inexact Rounded |
| 306 | divx447 divide 1234567891 1 -> 1234567891 |
| 307 | divx448 divide 1 1234567891 -> 8.10000006714900E-10 Inexact Rounded |
| 308 | divx449 divide 12345678901 1 -> 12345678901 |
| 309 | divx450 divide 1 12345678901 -> 8.10000007305390E-11 Inexact Rounded |
| 310 | divx451 divide 1234567896 1 -> 1234567896 |
| 311 | divx452 divide 1 1234567896 -> 8.10000003434400E-10 Inexact Rounded |
| 312 | |
| 313 | -- high-lows |
| 314 | divx453 divide 1e+1 1 -> 1E+1 |
| 315 | divx454 divide 1e+1 1.0 -> 1E+1 |
| 316 | divx455 divide 1e+1 1.00 -> 1E+1 |
| 317 | divx456 divide 1e+2 2 -> 5E+1 |
| 318 | divx457 divide 1e+2 2.0 -> 5E+1 |
| 319 | divx458 divide 1e+2 2.00 -> 5E+1 |
| 320 | |
| 321 | -- some from IEEE discussions |
| 322 | divx460 divide 3e0 2e0 -> 1.5 |
| 323 | divx461 divide 30e-1 2e0 -> 1.5 |
| 324 | divx462 divide 300e-2 2e0 -> 1.50 |
| 325 | divx464 divide 3000e-3 2e0 -> 1.500 |
| 326 | divx465 divide 3e0 20e-1 -> 1.5 |
| 327 | divx466 divide 30e-1 20e-1 -> 1.5 |
| 328 | divx467 divide 300e-2 20e-1 -> 1.5 |
| 329 | divx468 divide 3000e-3 20e-1 -> 1.50 |
| 330 | divx469 divide 3e0 200e-2 -> 1.5 |
| 331 | divx470 divide 30e-1 200e-2 -> 1.5 |
| 332 | divx471 divide 300e-2 200e-2 -> 1.5 |
| 333 | divx472 divide 3000e-3 200e-2 -> 1.5 |
| 334 | divx473 divide 3e0 2000e-3 -> 1.5 |
| 335 | divx474 divide 30e-1 2000e-3 -> 1.5 |
| 336 | divx475 divide 300e-2 2000e-3 -> 1.5 |
| 337 | divx476 divide 3000e-3 2000e-3 -> 1.5 |
| 338 | |
| 339 | -- some reciprocals |
| 340 | divx480 divide 1 1.0E+33 -> 1E-33 |
| 341 | divx481 divide 1 10E+33 -> 1E-34 |
| 342 | divx482 divide 1 1.0E-33 -> 1E+33 |
| 343 | divx483 divide 1 10E-33 -> 1E+32 |
| 344 | |
| 345 | -- RMS discussion table |
| 346 | maxexponent: 96 |
| 347 | minexponent: -95 |
| 348 | precision: 7 |
| 349 | |
| 350 | divx484 divide 0e5 1e3 -> 0E+2 |
| 351 | divx485 divide 0e5 2e3 -> 0E+2 |
| 352 | divx486 divide 0e5 10e2 -> 0E+3 |
| 353 | divx487 divide 0e5 20e2 -> 0E+3 |
| 354 | divx488 divide 0e5 100e1 -> 0E+4 |
| 355 | divx489 divide 0e5 200e1 -> 0E+4 |
| 356 | |
| 357 | divx491 divide 1e5 1e3 -> 1E+2 |
| 358 | divx492 divide 1e5 2e3 -> 5E+1 |
| 359 | divx493 divide 1e5 10e2 -> 1E+2 |
| 360 | divx494 divide 1e5 20e2 -> 5E+1 |
| 361 | divx495 divide 1e5 100e1 -> 1E+2 |
| 362 | divx496 divide 1e5 200e1 -> 5E+1 |
| 363 | |
| 364 | -- tryzeros cases |
| 365 | precision: 7 |
| 366 | rounding: half_up |
| 367 | maxExponent: 92 |
| 368 | minexponent: -92 |
| 369 | divx497 divide 0E+86 1000E-13 -> 0E+92 Clamped |
| 370 | divx498 divide 0E-98 1000E+13 -> 0E-98 Clamped |
| 371 | |
| 372 | precision: 9 |
| 373 | rounding: half_up |
| 374 | maxExponent: 999 |
| 375 | minexponent: -999 |
| 376 | |
| 377 | -- focus on trailing zeros issues |
| 378 | precision: 9 |
| 379 | divx500 divide 1 9.9 -> 0.101010101 Inexact Rounded |
| 380 | precision: 8 |
| 381 | divx501 divide 1 9.9 -> 0.10101010 Inexact Rounded |
| 382 | precision: 7 |
| 383 | divx502 divide 1 9.9 -> 0.1010101 Inexact Rounded |
| 384 | precision: 6 |
| 385 | divx503 divide 1 9.9 -> 0.101010 Inexact Rounded |
| 386 | precision: 9 |
| 387 | |
| 388 | divx511 divide 1 2 -> 0.5 |
| 389 | divx512 divide 1.0 2 -> 0.5 |
| 390 | divx513 divide 1.00 2 -> 0.50 |
| 391 | divx514 divide 1.000 2 -> 0.500 |
| 392 | divx515 divide 1.0000 2 -> 0.5000 |
| 393 | divx516 divide 1.00000 2 -> 0.50000 |
| 394 | divx517 divide 1.000000 2 -> 0.500000 |
| 395 | divx518 divide 1.0000000 2 -> 0.5000000 |
| 396 | divx519 divide 1.00 2.00 -> 0.5 |
| 397 | |
| 398 | divx521 divide 2 1 -> 2 |
| 399 | divx522 divide 2 1.0 -> 2 |
| 400 | divx523 divide 2 1.00 -> 2 |
| 401 | divx524 divide 2 1.000 -> 2 |
| 402 | divx525 divide 2 1.0000 -> 2 |
| 403 | divx526 divide 2 1.00000 -> 2 |
| 404 | divx527 divide 2 1.000000 -> 2 |
| 405 | divx528 divide 2 1.0000000 -> 2 |
| 406 | divx529 divide 2.00 1.00 -> 2 |
| 407 | |
| 408 | divx530 divide 2.40 2 -> 1.20 |
| 409 | divx531 divide 2.40 4 -> 0.60 |
| 410 | divx532 divide 2.40 10 -> 0.24 |
| 411 | divx533 divide 2.40 2.0 -> 1.2 |
| 412 | divx534 divide 2.40 4.0 -> 0.6 |
| 413 | divx535 divide 2.40 10.0 -> 0.24 |
| 414 | divx536 divide 2.40 2.00 -> 1.2 |
| 415 | divx537 divide 2.40 4.00 -> 0.6 |
| 416 | divx538 divide 2.40 10.00 -> 0.24 |
| 417 | divx539 divide 0.9 0.1 -> 9 |
| 418 | divx540 divide 0.9 0.01 -> 9E+1 |
| 419 | divx541 divide 0.9 0.001 -> 9E+2 |
| 420 | divx542 divide 5 2 -> 2.5 |
| 421 | divx543 divide 5 2.0 -> 2.5 |
| 422 | divx544 divide 5 2.00 -> 2.5 |
| 423 | divx545 divide 5 20 -> 0.25 |
| 424 | divx546 divide 5 20.0 -> 0.25 |
| 425 | divx547 divide 2.400 2 -> 1.200 |
| 426 | divx548 divide 2.400 2.0 -> 1.20 |
| 427 | divx549 divide 2.400 2.400 -> 1 |
| 428 | |
| 429 | divx550 divide 240 1 -> 240 |
| 430 | divx551 divide 240 10 -> 24 |
| 431 | divx552 divide 240 100 -> 2.4 |
| 432 | divx553 divide 240 1000 -> 0.24 |
| 433 | divx554 divide 2400 1 -> 2400 |
| 434 | divx555 divide 2400 10 -> 240 |
| 435 | divx556 divide 2400 100 -> 24 |
| 436 | divx557 divide 2400 1000 -> 2.4 |
| 437 | |
| 438 | -- +ve exponent |
| 439 | precision: 5 |
| 440 | divx570 divide 2.4E+6 2 -> 1.2E+6 |
| 441 | divx571 divide 2.40E+6 2 -> 1.20E+6 |
| 442 | divx572 divide 2.400E+6 2 -> 1.200E+6 |
| 443 | divx573 divide 2.4000E+6 2 -> 1.2000E+6 |
| 444 | divx574 divide 24E+5 2 -> 1.2E+6 |
| 445 | divx575 divide 240E+4 2 -> 1.20E+6 |
| 446 | divx576 divide 2400E+3 2 -> 1.200E+6 |
| 447 | divx577 divide 24000E+2 2 -> 1.2000E+6 |
| 448 | precision: 6 |
| 449 | divx580 divide 2.4E+6 2 -> 1.2E+6 |
| 450 | divx581 divide 2.40E+6 2 -> 1.20E+6 |
| 451 | divx582 divide 2.400E+6 2 -> 1.200E+6 |
| 452 | divx583 divide 2.4000E+6 2 -> 1.2000E+6 |
| 453 | divx584 divide 24E+5 2 -> 1.2E+6 |
| 454 | divx585 divide 240E+4 2 -> 1.20E+6 |
| 455 | divx586 divide 2400E+3 2 -> 1.200E+6 |
| 456 | divx587 divide 24000E+2 2 -> 1.2000E+6 |
| 457 | precision: 7 |
| 458 | divx590 divide 2.4E+6 2 -> 1.2E+6 |
| 459 | divx591 divide 2.40E+6 2 -> 1.20E+6 |
| 460 | divx592 divide 2.400E+6 2 -> 1.200E+6 |
| 461 | divx593 divide 2.4000E+6 2 -> 1.2000E+6 |
| 462 | divx594 divide 24E+5 2 -> 1.2E+6 |
| 463 | divx595 divide 240E+4 2 -> 1.20E+6 |
| 464 | divx596 divide 2400E+3 2 -> 1.200E+6 |
| 465 | divx597 divide 24000E+2 2 -> 1.2000E+6 |
| 466 | precision: 9 |
| 467 | divx600 divide 2.4E+9 2 -> 1.2E+9 |
| 468 | divx601 divide 2.40E+9 2 -> 1.20E+9 |
| 469 | divx602 divide 2.400E+9 2 -> 1.200E+9 |
| 470 | divx603 divide 2.4000E+9 2 -> 1.2000E+9 |
| 471 | divx604 divide 24E+8 2 -> 1.2E+9 |
| 472 | divx605 divide 240E+7 2 -> 1.20E+9 |
| 473 | divx606 divide 2400E+6 2 -> 1.200E+9 |
| 474 | divx607 divide 24000E+5 2 -> 1.2000E+9 |
| 475 | |
| 476 | -- long operand triangle |
| 477 | precision: 33 |
| 478 | divx610 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097703792 Inexact Rounded |
| 479 | precision: 32 |
| 480 | divx611 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770379 Inexact Rounded |
| 481 | precision: 31 |
| 482 | divx612 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977038 Inexact Rounded |
| 483 | precision: 30 |
| 484 | divx613 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097704 Inexact Rounded |
| 485 | precision: 29 |
| 486 | divx614 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770 Inexact Rounded |
| 487 | precision: 28 |
| 488 | divx615 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977 Inexact Rounded |
| 489 | precision: 27 |
| 490 | divx616 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131098 Inexact Rounded |
| 491 | precision: 26 |
| 492 | divx617 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813110 Inexact Rounded |
| 493 | precision: 25 |
| 494 | divx618 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81311 Inexact Rounded |
| 495 | precision: 24 |
| 496 | divx619 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131 Inexact Rounded |
| 497 | precision: 23 |
| 498 | divx620 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813 Inexact Rounded |
| 499 | precision: 22 |
| 500 | divx621 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81 Inexact Rounded |
| 501 | precision: 21 |
| 502 | divx622 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8 Inexact Rounded |
| 503 | precision: 20 |
| 504 | divx623 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817798 Inexact Rounded |
| 505 | precision: 19 |
| 506 | divx624 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379681780E+19 Inexact Rounded |
| 507 | precision: 18 |
| 508 | divx625 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968178E+19 Inexact Rounded |
| 509 | precision: 17 |
| 510 | divx626 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883796818E+19 Inexact Rounded |
| 511 | precision: 16 |
| 512 | divx627 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379682E+19 Inexact Rounded |
| 513 | precision: 15 |
| 514 | divx628 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968E+19 Inexact Rounded |
| 515 | precision: 14 |
| 516 | divx629 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883797E+19 Inexact Rounded |
| 517 | precision: 13 |
| 518 | divx630 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888380E+19 Inexact Rounded |
| 519 | precision: 12 |
| 520 | divx631 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088838E+19 Inexact Rounded |
| 521 | precision: 11 |
| 522 | divx632 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408884E+19 Inexact Rounded |
| 523 | precision: 10 |
| 524 | divx633 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888E+19 Inexact Rounded |
| 525 | precision: 9 |
| 526 | divx634 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114089E+19 Inexact Rounded |
| 527 | precision: 8 |
| 528 | divx635 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011409E+19 Inexact Rounded |
| 529 | precision: 7 |
| 530 | divx636 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101141E+19 Inexact Rounded |
| 531 | precision: 6 |
| 532 | divx637 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114E+19 Inexact Rounded |
| 533 | precision: 5 |
| 534 | divx638 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011E+19 Inexact Rounded |
| 535 | precision: 4 |
| 536 | divx639 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101E+19 Inexact Rounded |
| 537 | precision: 3 |
| 538 | divx640 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10E+19 Inexact Rounded |
| 539 | precision: 2 |
| 540 | divx641 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1E+19 Inexact Rounded |
| 541 | precision: 1 |
| 542 | divx642 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4E+19 Inexact Rounded |
| 543 | |
| 544 | -- more zeros, etc. |
| 545 | precision: 16 |
| 546 | rounding: half_up |
| 547 | maxExponent: 384 |
| 548 | minExponent: -383 |
| 549 | |
| 550 | divx731 divide 5.00 1E-3 -> 5.00E+3 |
| 551 | divx732 divide 00.00 0.000 -> NaN Division_undefined |
| 552 | divx733 divide 00.00 0E-3 -> NaN Division_undefined |
| 553 | divx734 divide 0 -0 -> NaN Division_undefined |
| 554 | divx735 divide -0 0 -> NaN Division_undefined |
| 555 | divx736 divide -0 -0 -> NaN Division_undefined |
| 556 | |
| 557 | divx741 divide 0 -1 -> -0 |
| 558 | divx742 divide -0 -1 -> 0 |
| 559 | divx743 divide 0 1 -> 0 |
| 560 | divx744 divide -0 1 -> -0 |
| 561 | divx745 divide -1 0 -> -Infinity Division_by_zero |
| 562 | divx746 divide -1 -0 -> Infinity Division_by_zero |
| 563 | divx747 divide 1 0 -> Infinity Division_by_zero |
| 564 | divx748 divide 1 -0 -> -Infinity Division_by_zero |
| 565 | |
| 566 | divx751 divide 0.0 -1 -> -0.0 |
| 567 | divx752 divide -0.0 -1 -> 0.0 |
| 568 | divx753 divide 0.0 1 -> 0.0 |
| 569 | divx754 divide -0.0 1 -> -0.0 |
| 570 | divx755 divide -1.0 0 -> -Infinity Division_by_zero |
| 571 | divx756 divide -1.0 -0 -> Infinity Division_by_zero |
| 572 | divx757 divide 1.0 0 -> Infinity Division_by_zero |
| 573 | divx758 divide 1.0 -0 -> -Infinity Division_by_zero |
| 574 | |
| 575 | divx761 divide 0 -1.0 -> -0E+1 |
| 576 | divx762 divide -0 -1.0 -> 0E+1 |
| 577 | divx763 divide 0 1.0 -> 0E+1 |
| 578 | divx764 divide -0 1.0 -> -0E+1 |
| 579 | divx765 divide -1 0.0 -> -Infinity Division_by_zero |
| 580 | divx766 divide -1 -0.0 -> Infinity Division_by_zero |
| 581 | divx767 divide 1 0.0 -> Infinity Division_by_zero |
| 582 | divx768 divide 1 -0.0 -> -Infinity Division_by_zero |
| 583 | |
| 584 | divx771 divide 0.0 -1.0 -> -0 |
| 585 | divx772 divide -0.0 -1.0 -> 0 |
| 586 | divx773 divide 0.0 1.0 -> 0 |
| 587 | divx774 divide -0.0 1.0 -> -0 |
| 588 | divx775 divide -1.0 0.0 -> -Infinity Division_by_zero |
| 589 | divx776 divide -1.0 -0.0 -> Infinity Division_by_zero |
| 590 | divx777 divide 1.0 0.0 -> Infinity Division_by_zero |
| 591 | divx778 divide 1.0 -0.0 -> -Infinity Division_by_zero |
| 592 | |
| 593 | -- Specials |
| 594 | divx780 divide Inf -Inf -> NaN Invalid_operation |
| 595 | divx781 divide Inf -1000 -> -Infinity |
| 596 | divx782 divide Inf -1 -> -Infinity |
| 597 | divx783 divide Inf -0 -> -Infinity |
| 598 | divx784 divide Inf 0 -> Infinity |
| 599 | divx785 divide Inf 1 -> Infinity |
| 600 | divx786 divide Inf 1000 -> Infinity |
| 601 | divx787 divide Inf Inf -> NaN Invalid_operation |
| 602 | divx788 divide -1000 Inf -> -0E-398 Clamped |
| 603 | divx789 divide -Inf Inf -> NaN Invalid_operation |
| 604 | divx790 divide -1 Inf -> -0E-398 Clamped |
| 605 | divx791 divide -0 Inf -> -0E-398 Clamped |
| 606 | divx792 divide 0 Inf -> 0E-398 Clamped |
| 607 | divx793 divide 1 Inf -> 0E-398 Clamped |
| 608 | divx794 divide 1000 Inf -> 0E-398 Clamped |
| 609 | divx795 divide Inf Inf -> NaN Invalid_operation |
| 610 | |
| 611 | divx800 divide -Inf -Inf -> NaN Invalid_operation |
| 612 | divx801 divide -Inf -1000 -> Infinity |
| 613 | divx802 divide -Inf -1 -> Infinity |
| 614 | divx803 divide -Inf -0 -> Infinity |
| 615 | divx804 divide -Inf 0 -> -Infinity |
| 616 | divx805 divide -Inf 1 -> -Infinity |
| 617 | divx806 divide -Inf 1000 -> -Infinity |
| 618 | divx807 divide -Inf Inf -> NaN Invalid_operation |
| 619 | divx808 divide -1000 Inf -> -0E-398 Clamped |
| 620 | divx809 divide -Inf -Inf -> NaN Invalid_operation |
| 621 | divx810 divide -1 -Inf -> 0E-398 Clamped |
| 622 | divx811 divide -0 -Inf -> 0E-398 Clamped |
| 623 | divx812 divide 0 -Inf -> -0E-398 Clamped |
| 624 | divx813 divide 1 -Inf -> -0E-398 Clamped |
| 625 | divx814 divide 1000 -Inf -> -0E-398 Clamped |
| 626 | divx815 divide Inf -Inf -> NaN Invalid_operation |
| 627 | |
| 628 | divx821 divide NaN -Inf -> NaN |
| 629 | divx822 divide NaN -1000 -> NaN |
| 630 | divx823 divide NaN -1 -> NaN |
| 631 | divx824 divide NaN -0 -> NaN |
| 632 | divx825 divide NaN 0 -> NaN |
| 633 | divx826 divide NaN 1 -> NaN |
| 634 | divx827 divide NaN 1000 -> NaN |
| 635 | divx828 divide NaN Inf -> NaN |
| 636 | divx829 divide NaN NaN -> NaN |
| 637 | divx830 divide -Inf NaN -> NaN |
| 638 | divx831 divide -1000 NaN -> NaN |
| 639 | divx832 divide -1 NaN -> NaN |
| 640 | divx833 divide -0 NaN -> NaN |
| 641 | divx834 divide 0 NaN -> NaN |
| 642 | divx835 divide 1 NaN -> NaN |
| 643 | divx836 divide 1000 NaN -> NaN |
| 644 | divx837 divide Inf NaN -> NaN |
| 645 | |
| 646 | divx841 divide sNaN -Inf -> NaN Invalid_operation |
| 647 | divx842 divide sNaN -1000 -> NaN Invalid_operation |
| 648 | divx843 divide sNaN -1 -> NaN Invalid_operation |
| 649 | divx844 divide sNaN -0 -> NaN Invalid_operation |
| 650 | divx845 divide sNaN 0 -> NaN Invalid_operation |
| 651 | divx846 divide sNaN 1 -> NaN Invalid_operation |
| 652 | divx847 divide sNaN 1000 -> NaN Invalid_operation |
| 653 | divx848 divide sNaN NaN -> NaN Invalid_operation |
| 654 | divx849 divide sNaN sNaN -> NaN Invalid_operation |
| 655 | divx850 divide NaN sNaN -> NaN Invalid_operation |
| 656 | divx851 divide -Inf sNaN -> NaN Invalid_operation |
| 657 | divx852 divide -1000 sNaN -> NaN Invalid_operation |
| 658 | divx853 divide -1 sNaN -> NaN Invalid_operation |
| 659 | divx854 divide -0 sNaN -> NaN Invalid_operation |
| 660 | divx855 divide 0 sNaN -> NaN Invalid_operation |
| 661 | divx856 divide 1 sNaN -> NaN Invalid_operation |
| 662 | divx857 divide 1000 sNaN -> NaN Invalid_operation |
| 663 | divx858 divide Inf sNaN -> NaN Invalid_operation |
| 664 | divx859 divide NaN sNaN -> NaN Invalid_operation |
| 665 | |
| 666 | -- propagating NaNs |
| 667 | divx861 divide NaN9 -Inf -> NaN9 |
| 668 | divx862 divide NaN8 1000 -> NaN8 |
| 669 | divx863 divide NaN7 Inf -> NaN7 |
| 670 | divx864 divide NaN6 NaN5 -> NaN6 |
| 671 | divx865 divide -Inf NaN4 -> NaN4 |
| 672 | divx866 divide -1000 NaN3 -> NaN3 |
| 673 | divx867 divide Inf NaN2 -> NaN2 |
| 674 | |
| 675 | divx871 divide sNaN99 -Inf -> NaN99 Invalid_operation |
| 676 | divx872 divide sNaN98 -1 -> NaN98 Invalid_operation |
| 677 | divx873 divide sNaN97 NaN -> NaN97 Invalid_operation |
| 678 | divx874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation |
| 679 | divx875 divide NaN95 sNaN93 -> NaN93 Invalid_operation |
| 680 | divx876 divide -Inf sNaN92 -> NaN92 Invalid_operation |
| 681 | divx877 divide 0 sNaN91 -> NaN91 Invalid_operation |
| 682 | divx878 divide Inf sNaN90 -> NaN90 Invalid_operation |
| 683 | divx879 divide NaN sNaN89 -> NaN89 Invalid_operation |
| 684 | |
| 685 | divx881 divide -NaN9 -Inf -> -NaN9 |
| 686 | divx882 divide -NaN8 1000 -> -NaN8 |
| 687 | divx883 divide -NaN7 Inf -> -NaN7 |
| 688 | divx884 divide -NaN6 -NaN5 -> -NaN6 |
| 689 | divx885 divide -Inf -NaN4 -> -NaN4 |
| 690 | divx886 divide -1000 -NaN3 -> -NaN3 |
| 691 | divx887 divide Inf -NaN2 -> -NaN2 |
| 692 | |
| 693 | divx891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation |
| 694 | divx892 divide -sNaN98 -1 -> -NaN98 Invalid_operation |
| 695 | divx893 divide -sNaN97 NaN -> -NaN97 Invalid_operation |
| 696 | divx894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation |
| 697 | divx895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation |
| 698 | divx896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation |
| 699 | divx897 divide 0 -sNaN91 -> -NaN91 Invalid_operation |
| 700 | divx898 divide Inf -sNaN90 -> -NaN90 Invalid_operation |
| 701 | divx899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation |
| 702 | |
| 703 | maxexponent: 999999999 |
| 704 | minexponent: -999999999 |
| 705 | |
| 706 | -- Various flavours of divide by 0 |
| 707 | divx901 divide 0 0 -> NaN Division_undefined |
| 708 | divx902 divide 0.0E5 0 -> NaN Division_undefined |
| 709 | divx903 divide 0.000 0 -> NaN Division_undefined |
| 710 | divx904 divide 0.0001 0 -> Infinity Division_by_zero |
| 711 | divx905 divide 0.01 0 -> Infinity Division_by_zero |
| 712 | divx906 divide 0.1 0 -> Infinity Division_by_zero |
| 713 | divx907 divide 1 0 -> Infinity Division_by_zero |
| 714 | divx908 divide 1 0.0 -> Infinity Division_by_zero |
| 715 | divx909 divide 10 0.0 -> Infinity Division_by_zero |
| 716 | divx910 divide 1E+100 0.0 -> Infinity Division_by_zero |
| 717 | divx911 divide 1E+1000 0 -> Infinity Division_by_zero |
| 718 | |
| 719 | divx921 divide -0.0001 0 -> -Infinity Division_by_zero |
| 720 | divx922 divide -0.01 0 -> -Infinity Division_by_zero |
| 721 | divx923 divide -0.1 0 -> -Infinity Division_by_zero |
| 722 | divx924 divide -1 0 -> -Infinity Division_by_zero |
| 723 | divx925 divide -1 0.0 -> -Infinity Division_by_zero |
| 724 | divx926 divide -10 0.0 -> -Infinity Division_by_zero |
| 725 | divx927 divide -1E+100 0.0 -> -Infinity Division_by_zero |
| 726 | divx928 divide -1E+1000 0 -> -Infinity Division_by_zero |
| 727 | |
| 728 | divx931 divide 0.0001 -0 -> -Infinity Division_by_zero |
| 729 | divx932 divide 0.01 -0 -> -Infinity Division_by_zero |
| 730 | divx933 divide 0.1 -0 -> -Infinity Division_by_zero |
| 731 | divx934 divide 1 -0 -> -Infinity Division_by_zero |
| 732 | divx935 divide 1 -0.0 -> -Infinity Division_by_zero |
| 733 | divx936 divide 10 -0.0 -> -Infinity Division_by_zero |
| 734 | divx937 divide 1E+100 -0.0 -> -Infinity Division_by_zero |
| 735 | divx938 divide 1E+1000 -0 -> -Infinity Division_by_zero |
| 736 | |
| 737 | divx941 divide -0.0001 -0 -> Infinity Division_by_zero |
| 738 | divx942 divide -0.01 -0 -> Infinity Division_by_zero |
| 739 | divx943 divide -0.1 -0 -> Infinity Division_by_zero |
| 740 | divx944 divide -1 -0 -> Infinity Division_by_zero |
| 741 | divx945 divide -1 -0.0 -> Infinity Division_by_zero |
| 742 | divx946 divide -10 -0.0 -> Infinity Division_by_zero |
| 743 | divx947 divide -1E+100 -0.0 -> Infinity Division_by_zero |
| 744 | divx948 divide -1E+1000 -0 -> Infinity Division_by_zero |
| 745 | |
| 746 | -- overflow and underflow tests |
| 747 | precision: 9 |
| 748 | maxexponent: 999999999 |
| 749 | minexponent: -999999999 |
| 750 | divx951 divide 9E+999999999 +0.23456789012345E-0 -> Infinity Inexact Overflow Rounded |
| 751 | divx952 divide +0.100 9E+999999999 -> 1.111111E-1000000001 Inexact Rounded Underflow Subnormal |
| 752 | divx953 divide 9E-999999999 +9.100 -> 9.8901099E-1000000000 Inexact Rounded Underflow Subnormal |
| 753 | divx954 divide -1.23456789 9E+999999999 -> -1.3717421E-1000000000 Subnormal |
| 754 | divx955 divide -1.23456789012345E-0 9E+999999999 -> -1.3717421E-1000000000 Underflow Subnormal Rounded Inexact |
| 755 | divx956 divide -1.23456789012345E-0 7E+999999999 -> -1.7636684E-1000000000 Inexact Rounded Underflow Subnormal |
| 756 | divx957 divide 9E+999999999 -0.83456789012345E-0 -> -Infinity Inexact Overflow Rounded |
| 757 | divx958 divide -0.100 9E+999999999 -> -1.111111E-1000000001 Subnormal Inexact Rounded Underflow |
| 758 | divx959 divide 9E-999999999 -9.100 -> -9.8901099E-1000000000 Inexact Rounded Underflow Subnormal |
| 759 | |
| 760 | -- overflow and underflow (additional edge tests in multiply.decTest) |
| 761 | -- 'subnormal' results now possible (all hard underflow or overflow in |
| 762 | -- base arithemtic) |
| 763 | divx960 divide 1e-600000000 1e+400000001 -> 1E-1000000001 Subnormal |
| 764 | divx961 divide 1e-600000000 1e+400000002 -> 1E-1000000002 Subnormal |
| 765 | divx962 divide 1e-600000000 1e+400000003 -> 1E-1000000003 Subnormal |
| 766 | divx963 divide 1e-600000000 1e+400000004 -> 1E-1000000004 Subnormal |
| 767 | divx964 divide 1e-600000000 1e+400000005 -> 1E-1000000005 Subnormal |
| 768 | divx965 divide 1e-600000000 1e+400000006 -> 1E-1000000006 Subnormal |
| 769 | divx966 divide 1e-600000000 1e+400000007 -> 1E-1000000007 Subnormal |
Facundo Batista | 353750c | 2007-09-13 18:13:15 +0000 | [diff] [blame] | 770 | divx967 divide 1e-600000000 1e+400000008 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
| 771 | divx968 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
| 772 | divx969 divide 1e-600000000 1e+400000010 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 773 | -- [no equivalent of 'subnormal' for overflow] |
| 774 | divx970 divide 1e+600000000 1e-400000001 -> Infinity Overflow Inexact Rounded |
| 775 | divx971 divide 1e+600000000 1e-400000002 -> Infinity Overflow Inexact Rounded |
| 776 | divx972 divide 1e+600000000 1e-400000003 -> Infinity Overflow Inexact Rounded |
| 777 | divx973 divide 1e+600000000 1e-400000004 -> Infinity Overflow Inexact Rounded |
| 778 | divx974 divide 1e+600000000 1e-400000005 -> Infinity Overflow Inexact Rounded |
| 779 | divx975 divide 1e+600000000 1e-400000006 -> Infinity Overflow Inexact Rounded |
| 780 | divx976 divide 1e+600000000 1e-400000007 -> Infinity Overflow Inexact Rounded |
| 781 | divx977 divide 1e+600000000 1e-400000008 -> Infinity Overflow Inexact Rounded |
| 782 | divx978 divide 1e+600000000 1e-400000009 -> Infinity Overflow Inexact Rounded |
| 783 | divx979 divide 1e+600000000 1e-400000010 -> Infinity Overflow Inexact Rounded |
| 784 | |
| 785 | -- Sign after overflow and underflow |
Facundo Batista | 353750c | 2007-09-13 18:13:15 +0000 | [diff] [blame] | 786 | divx980 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
| 787 | divx981 divide 1e-600000000 -1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
| 788 | divx982 divide -1e-600000000 1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
| 789 | divx983 divide -1e-600000000 -1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 790 | divx984 divide 1e+600000000 1e-400000009 -> Infinity Overflow Inexact Rounded |
| 791 | divx985 divide 1e+600000000 -1e-400000009 -> -Infinity Overflow Inexact Rounded |
| 792 | divx986 divide -1e+600000000 1e-400000009 -> -Infinity Overflow Inexact Rounded |
| 793 | divx987 divide -1e+600000000 -1e-400000009 -> Infinity Overflow Inexact Rounded |
| 794 | |
| 795 | -- Long operand overflow may be a different path |
| 796 | precision: 3 |
| 797 | divx990 divide 1000 9.999E-999999999 -> Infinity Inexact Overflow Rounded |
| 798 | divx991 divide 1000 -9.999E-999999999 -> -Infinity Inexact Overflow Rounded |
| 799 | divx992 divide 9.999E+999999999 0.01 -> Infinity Inexact Overflow Rounded |
| 800 | divx993 divide -9.999E+999999999 0.01 -> -Infinity Inexact Overflow Rounded |
| 801 | |
| 802 | -- check for double-rounded subnormals |
| 803 | precision: 5 |
| 804 | maxexponent: 79 |
| 805 | minexponent: -79 |
| 806 | divx1001 divide 1.52444E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow |
| 807 | divx1002 divide 1.52445E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow |
| 808 | divx1003 divide 1.52446E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow |
| 809 | |
| 810 | -- a rounding problem in one implementation |
| 811 | precision: 34 |
| 812 | rounding: half_up |
| 813 | maxExponent: 6144 |
| 814 | minExponent: -6143 |
| 815 | -- Unbounded answer to 40 digits: |
| 816 | -- 1.465811965811965811965811965811965811966E+7000 |
| 817 | divx1010 divide 343E6000 234E-1000 -> Infinity Overflow Inexact Rounded |
| 818 | |
Facundo Batista | 353750c | 2007-09-13 18:13:15 +0000 | [diff] [blame] | 819 | precision: 34 |
| 820 | rounding: half_up |
| 821 | maxExponent: 6144 |
| 822 | minExponent: -6143 |
| 823 | |
| 824 | -- Examples from SQL proposal (Krishna Kulkarni) |
| 825 | precision: 7 |
| 826 | divx1021 divide 1E0 1E0 -> 1 |
| 827 | divx1022 divide 1E0 2E0 -> 0.5 |
| 828 | divx1023 divide 1E0 3E0 -> 0.3333333 Inexact Rounded |
| 829 | divx1024 divide 100E-2 1000E-3 -> 1 |
| 830 | divx1025 divide 24E-1 2E0 -> 1.2 |
| 831 | divx1026 divide 2400E-3 2E0 -> 1.200 |
| 832 | divx1027 divide 5E0 2E0 -> 2.5 |
| 833 | divx1028 divide 5E0 20E-1 -> 2.5 |
| 834 | divx1029 divide 5E0 2000E-3 -> 2.5 |
| 835 | divx1030 divide 5E0 2E-1 -> 25 |
| 836 | divx1031 divide 5E0 20E-2 -> 25 |
| 837 | divx1032 divide 480E-2 3E0 -> 1.60 |
| 838 | divx1033 divide 47E-1 2E0 -> 2.35 |
| 839 | |
| 840 | -- ECMAScript bad examples |
| 841 | rounding: half_down |
| 842 | precision: 7 |
| 843 | divx1050 divide 5 9 -> 0.5555556 Inexact Rounded |
| 844 | rounding: half_even |
| 845 | divx1051 divide 5 11 -> 0.4545455 Inexact Rounded |
| 846 | |
| 847 | -- payload decapitate |
| 848 | precision: 5 |
| 849 | divx1055 divide sNaN987654321 1 -> NaN54321 Invalid_operation |
| 850 | |
Raymond Hettinger | 7c85fa4 | 2004-07-01 11:01:35 +0000 | [diff] [blame] | 851 | -- Null tests |
| 852 | divx9998 divide 10 # -> NaN Invalid_operation |
| 853 | divx9999 divide # 10 -> NaN Invalid_operation |
| 854 | |