github.com/cockroachdb/apd/v3@v3.2.0/testdata/quantize.decTest (about) 1 ------------------------------------------------------------------------ 2 -- quantize.decTest -- decimal quantize operation -- 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 -- Most of the tests here assume a "regular pattern", where the 22 -- sign and coefficient are +1. 23 -- 2004.03.15 Underflow for quantize is suppressed 24 -- 2005.06.08 More extensive tests for 'does not fit' 25 26 extended: 1 27 precision: 9 28 rounding: half_up 29 maxExponent: 999 30 minexponent: -999 31 32 -- sanity checks 33 quax001 quantize 0 1e0 -> 0 34 quax002 quantize 1 1e0 -> 1 35 quax003 quantize 0.1 1e+2 -> 0E+2 Inexact Rounded 36 quax005 quantize 0.1 1e+1 -> 0E+1 Inexact Rounded 37 quax006 quantize 0.1 1e0 -> 0 Inexact Rounded 38 quax007 quantize 0.1 1e-1 -> 0.1 39 quax008 quantize 0.1 1e-2 -> 0.10 40 quax009 quantize 0.1 1e-3 -> 0.100 41 quax010 quantize 0.9 1e+2 -> 0E+2 Inexact Rounded 42 quax011 quantize 0.9 1e+1 -> 0E+1 Inexact Rounded 43 quax012 quantize 0.9 1e+0 -> 1 Inexact Rounded 44 quax013 quantize 0.9 1e-1 -> 0.9 45 quax014 quantize 0.9 1e-2 -> 0.90 46 quax015 quantize 0.9 1e-3 -> 0.900 47 -- negatives 48 quax021 quantize -0 1e0 -> -0 49 quax022 quantize -1 1e0 -> -1 50 quax023 quantize -0.1 1e+2 -> -0E+2 Inexact Rounded 51 quax025 quantize -0.1 1e+1 -> -0E+1 Inexact Rounded 52 quax026 quantize -0.1 1e0 -> -0 Inexact Rounded 53 quax027 quantize -0.1 1e-1 -> -0.1 54 quax028 quantize -0.1 1e-2 -> -0.10 55 quax029 quantize -0.1 1e-3 -> -0.100 56 quax030 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded 57 quax031 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded 58 quax032 quantize -0.9 1e+0 -> -1 Inexact Rounded 59 quax033 quantize -0.9 1e-1 -> -0.9 60 quax034 quantize -0.9 1e-2 -> -0.90 61 quax035 quantize -0.9 1e-3 -> -0.900 62 quax036 quantize -0.5 1e+2 -> -0E+2 Inexact Rounded 63 quax037 quantize -0.5 1e+1 -> -0E+1 Inexact Rounded 64 quax038 quantize -0.5 1e+0 -> -1 Inexact Rounded 65 quax039 quantize -0.5 1e-1 -> -0.5 66 quax040 quantize -0.5 1e-2 -> -0.50 67 quax041 quantize -0.5 1e-3 -> -0.500 68 quax042 quantize -0.9 1e+2 -> -0E+2 Inexact Rounded 69 quax043 quantize -0.9 1e+1 -> -0E+1 Inexact Rounded 70 quax044 quantize -0.9 1e+0 -> -1 Inexact Rounded 71 quax045 quantize -0.9 1e-1 -> -0.9 72 quax046 quantize -0.9 1e-2 -> -0.90 73 quax047 quantize -0.9 1e-3 -> -0.900 74 75 -- examples from Specification 76 quax060 quantize 2.17 0.001 -> 2.170 77 quax061 quantize 2.17 0.01 -> 2.17 78 quax062 quantize 2.17 0.1 -> 2.2 Inexact Rounded 79 quax063 quantize 2.17 1e+0 -> 2 Inexact Rounded 80 quax064 quantize 2.17 1e+1 -> 0E+1 Inexact Rounded 81 quax065 quantize -Inf Inf -> -Infinity 82 quax066 quantize 2 Inf -> NaN Invalid_operation 83 quax067 quantize -0.1 1 -> -0 Inexact Rounded 84 quax068 quantize -0 1e+5 -> -0E+5 85 quax069 quantize +35236450.6 1e-2 -> NaN Invalid_operation 86 quax070 quantize -35236450.6 1e-2 -> NaN Invalid_operation 87 quax071 quantize 217 1e-1 -> 217.0 88 quax072 quantize 217 1e+0 -> 217 89 quax073 quantize 217 1e+1 -> 2.2E+2 Inexact Rounded 90 quax074 quantize 217 1e+2 -> 2E+2 Inexact Rounded 91 92 -- general tests .. 93 quax089 quantize 12 1e+4 -> 0E+4 Inexact Rounded 94 quax090 quantize 12 1e+3 -> 0E+3 Inexact Rounded 95 quax091 quantize 12 1e+2 -> 0E+2 Inexact Rounded 96 quax092 quantize 12 1e+1 -> 1E+1 Inexact Rounded 97 quax093 quantize 1.2345 1e-2 -> 1.23 Inexact Rounded 98 quax094 quantize 1.2355 1e-2 -> 1.24 Inexact Rounded 99 quax095 quantize 1.2345 1e-6 -> 1.234500 100 quax096 quantize 9.9999 1e-2 -> 10.00 Inexact Rounded 101 quax097 quantize 0.0001 1e-2 -> 0.00 Inexact Rounded 102 quax098 quantize 0.001 1e-2 -> 0.00 Inexact Rounded 103 quax099 quantize 0.009 1e-2 -> 0.01 Inexact Rounded 104 quax100 quantize 92 1e+2 -> 1E+2 Inexact Rounded 105 106 quax101 quantize -1 1e0 -> -1 107 quax102 quantize -1 1e-1 -> -1.0 108 quax103 quantize -1 1e-2 -> -1.00 109 quax104 quantize 0 1e0 -> 0 110 quax105 quantize 0 1e-1 -> 0.0 111 quax106 quantize 0 1e-2 -> 0.00 112 quax107 quantize 0.00 1e0 -> 0 113 quax108 quantize 0 1e+1 -> 0E+1 114 quax109 quantize 0 1e+2 -> 0E+2 115 quax110 quantize +1 1e0 -> 1 116 quax111 quantize +1 1e-1 -> 1.0 117 quax112 quantize +1 1e-2 -> 1.00 118 119 quax120 quantize 1.04 1e-3 -> 1.040 120 quax121 quantize 1.04 1e-2 -> 1.04 121 quax122 quantize 1.04 1e-1 -> 1.0 Inexact Rounded 122 quax123 quantize 1.04 1e0 -> 1 Inexact Rounded 123 quax124 quantize 1.05 1e-3 -> 1.050 124 quax125 quantize 1.05 1e-2 -> 1.05 125 quax126 quantize 1.05 1e-1 -> 1.1 Inexact Rounded 126 quax131 quantize 1.05 1e0 -> 1 Inexact Rounded 127 quax132 quantize 1.06 1e-3 -> 1.060 128 quax133 quantize 1.06 1e-2 -> 1.06 129 quax134 quantize 1.06 1e-1 -> 1.1 Inexact Rounded 130 quax135 quantize 1.06 1e0 -> 1 Inexact Rounded 131 132 quax140 quantize -10 1e-2 -> -10.00 133 quax141 quantize +1 1e-2 -> 1.00 134 quax142 quantize +10 1e-2 -> 10.00 135 quax143 quantize 1E+10 1e-2 -> NaN Invalid_operation 136 quax144 quantize 1E-10 1e-2 -> 0.00 Inexact Rounded 137 quax145 quantize 1E-3 1e-2 -> 0.00 Inexact Rounded 138 quax146 quantize 1E-2 1e-2 -> 0.01 139 quax147 quantize 1E-1 1e-2 -> 0.10 140 quax148 quantize 0E-10 1e-2 -> 0.00 141 142 quax150 quantize 1.0600 1e-5 -> 1.06000 143 quax151 quantize 1.0600 1e-4 -> 1.0600 144 quax152 quantize 1.0600 1e-3 -> 1.060 Rounded 145 quax153 quantize 1.0600 1e-2 -> 1.06 Rounded 146 quax154 quantize 1.0600 1e-1 -> 1.1 Inexact Rounded 147 quax155 quantize 1.0600 1e0 -> 1 Inexact Rounded 148 149 -- base tests with non-1 coefficients 150 quax161 quantize 0 -9e0 -> 0 151 quax162 quantize 1 -7e0 -> 1 152 quax163 quantize 0.1 -1e+2 -> 0E+2 Inexact Rounded 153 quax165 quantize 0.1 0e+1 -> 0E+1 Inexact Rounded 154 quax166 quantize 0.1 2e0 -> 0 Inexact Rounded 155 quax167 quantize 0.1 3e-1 -> 0.1 156 quax168 quantize 0.1 44e-2 -> 0.10 157 quax169 quantize 0.1 555e-3 -> 0.100 158 quax170 quantize 0.9 6666e+2 -> 0E+2 Inexact Rounded 159 quax171 quantize 0.9 -777e+1 -> 0E+1 Inexact Rounded 160 quax172 quantize 0.9 -88e+0 -> 1 Inexact Rounded 161 quax173 quantize 0.9 -9e-1 -> 0.9 162 quax174 quantize 0.9 0e-2 -> 0.90 163 quax175 quantize 0.9 1.1e-3 -> 0.9000 164 -- negatives 165 quax181 quantize -0 1.1e0 -> -0.0 166 quax182 quantize -1 -1e0 -> -1 167 quax183 quantize -0.1 11e+2 -> -0E+2 Inexact Rounded 168 quax185 quantize -0.1 111e+1 -> -0E+1 Inexact Rounded 169 quax186 quantize -0.1 71e0 -> -0 Inexact Rounded 170 quax187 quantize -0.1 -91e-1 -> -0.1 171 quax188 quantize -0.1 -.1e-2 -> -0.100 172 quax189 quantize -0.1 -1e-3 -> -0.100 173 quax190 quantize -0.9 0e+2 -> -0E+2 Inexact Rounded 174 quax191 quantize -0.9 -0e+1 -> -0E+1 Inexact Rounded 175 quax192 quantize -0.9 -10e+0 -> -1 Inexact Rounded 176 quax193 quantize -0.9 100e-1 -> -0.9 177 quax194 quantize -0.9 999e-2 -> -0.90 178 179 -- +ve exponents .. 180 quax201 quantize -1 1e+0 -> -1 181 quax202 quantize -1 1e+1 -> -0E+1 Inexact Rounded 182 quax203 quantize -1 1e+2 -> -0E+2 Inexact Rounded 183 quax204 quantize 0 1e+0 -> 0 184 quax205 quantize 0 1e+1 -> 0E+1 185 quax206 quantize 0 1e+2 -> 0E+2 186 quax207 quantize +1 1e+0 -> 1 187 quax208 quantize +1 1e+1 -> 0E+1 Inexact Rounded 188 quax209 quantize +1 1e+2 -> 0E+2 Inexact Rounded 189 190 quax220 quantize 1.04 1e+3 -> 0E+3 Inexact Rounded 191 quax221 quantize 1.04 1e+2 -> 0E+2 Inexact Rounded 192 quax222 quantize 1.04 1e+1 -> 0E+1 Inexact Rounded 193 quax223 quantize 1.04 1e+0 -> 1 Inexact Rounded 194 quax224 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded 195 quax225 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded 196 quax226 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded 197 quax227 quantize 1.05 1e+0 -> 1 Inexact Rounded 198 quax228 quantize 1.05 1e+3 -> 0E+3 Inexact Rounded 199 quax229 quantize 1.05 1e+2 -> 0E+2 Inexact Rounded 200 quax230 quantize 1.05 1e+1 -> 0E+1 Inexact Rounded 201 quax231 quantize 1.05 1e+0 -> 1 Inexact Rounded 202 quax232 quantize 1.06 1e+3 -> 0E+3 Inexact Rounded 203 quax233 quantize 1.06 1e+2 -> 0E+2 Inexact Rounded 204 quax234 quantize 1.06 1e+1 -> 0E+1 Inexact Rounded 205 quax235 quantize 1.06 1e+0 -> 1 Inexact Rounded 206 207 quax240 quantize -10 1e+1 -> -1E+1 Rounded 208 quax241 quantize +1 1e+1 -> 0E+1 Inexact Rounded 209 quax242 quantize +10 1e+1 -> 1E+1 Rounded 210 quax243 quantize 1E+1 1e+1 -> 1E+1 -- underneath this is E+1 211 quax244 quantize 1E+2 1e+1 -> 1.0E+2 -- underneath this is E+1 212 quax245 quantize 1E+3 1e+1 -> 1.00E+3 -- underneath this is E+1 213 quax246 quantize 1E+4 1e+1 -> 1.000E+4 -- underneath this is E+1 214 quax247 quantize 1E+5 1e+1 -> 1.0000E+5 -- underneath this is E+1 215 quax248 quantize 1E+6 1e+1 -> 1.00000E+6 -- underneath this is E+1 216 quax249 quantize 1E+7 1e+1 -> 1.000000E+7 -- underneath this is E+1 217 quax250 quantize 1E+8 1e+1 -> 1.0000000E+8 -- underneath this is E+1 218 quax251 quantize 1E+9 1e+1 -> 1.00000000E+9 -- underneath this is E+1 219 -- next one tries to add 9 zeros 220 quax252 quantize 1E+10 1e+1 -> NaN Invalid_operation 221 quax253 quantize 1E-10 1e+1 -> 0E+1 Inexact Rounded 222 quax254 quantize 1E-2 1e+1 -> 0E+1 Inexact Rounded 223 quax255 quantize 0E-10 1e+1 -> 0E+1 224 quax256 quantize -0E-10 1e+1 -> -0E+1 225 quax257 quantize -0E-1 1e+1 -> -0E+1 226 quax258 quantize -0 1e+1 -> -0E+1 227 quax259 quantize -0E+1 1e+1 -> -0E+1 228 229 quax260 quantize -10 1e+2 -> -0E+2 Inexact Rounded 230 quax261 quantize +1 1e+2 -> 0E+2 Inexact Rounded 231 quax262 quantize +10 1e+2 -> 0E+2 Inexact Rounded 232 quax263 quantize 1E+1 1e+2 -> 0E+2 Inexact Rounded 233 quax264 quantize 1E+2 1e+2 -> 1E+2 234 quax265 quantize 1E+3 1e+2 -> 1.0E+3 235 quax266 quantize 1E+4 1e+2 -> 1.00E+4 236 quax267 quantize 1E+5 1e+2 -> 1.000E+5 237 quax268 quantize 1E+6 1e+2 -> 1.0000E+6 238 quax269 quantize 1E+7 1e+2 -> 1.00000E+7 239 quax270 quantize 1E+8 1e+2 -> 1.000000E+8 240 quax271 quantize 1E+9 1e+2 -> 1.0000000E+9 241 quax272 quantize 1E+10 1e+2 -> 1.00000000E+10 242 quax273 quantize 1E-10 1e+2 -> 0E+2 Inexact Rounded 243 quax274 quantize 1E-2 1e+2 -> 0E+2 Inexact Rounded 244 quax275 quantize 0E-10 1e+2 -> 0E+2 245 246 quax280 quantize -10 1e+3 -> -0E+3 Inexact Rounded 247 quax281 quantize +1 1e+3 -> 0E+3 Inexact Rounded 248 quax282 quantize +10 1e+3 -> 0E+3 Inexact Rounded 249 quax283 quantize 1E+1 1e+3 -> 0E+3 Inexact Rounded 250 quax284 quantize 1E+2 1e+3 -> 0E+3 Inexact Rounded 251 quax285 quantize 1E+3 1e+3 -> 1E+3 252 quax286 quantize 1E+4 1e+3 -> 1.0E+4 253 quax287 quantize 1E+5 1e+3 -> 1.00E+5 254 quax288 quantize 1E+6 1e+3 -> 1.000E+6 255 quax289 quantize 1E+7 1e+3 -> 1.0000E+7 256 quax290 quantize 1E+8 1e+3 -> 1.00000E+8 257 quax291 quantize 1E+9 1e+3 -> 1.000000E+9 258 quax292 quantize 1E+10 1e+3 -> 1.0000000E+10 259 quax293 quantize 1E-10 1e+3 -> 0E+3 Inexact Rounded 260 quax294 quantize 1E-2 1e+3 -> 0E+3 Inexact Rounded 261 quax295 quantize 0E-10 1e+3 -> 0E+3 262 263 -- round up from below [sign wrong in JIT compiler once] 264 quax300 quantize 0.0078 1e-5 -> 0.00780 265 quax301 quantize 0.0078 1e-4 -> 0.0078 266 quax302 quantize 0.0078 1e-3 -> 0.008 Inexact Rounded 267 quax303 quantize 0.0078 1e-2 -> 0.01 Inexact Rounded 268 quax304 quantize 0.0078 1e-1 -> 0.0 Inexact Rounded 269 quax305 quantize 0.0078 1e0 -> 0 Inexact Rounded 270 quax306 quantize 0.0078 1e+1 -> 0E+1 Inexact Rounded 271 quax307 quantize 0.0078 1e+2 -> 0E+2 Inexact Rounded 272 273 quax310 quantize -0.0078 1e-5 -> -0.00780 274 quax311 quantize -0.0078 1e-4 -> -0.0078 275 quax312 quantize -0.0078 1e-3 -> -0.008 Inexact Rounded 276 quax313 quantize -0.0078 1e-2 -> -0.01 Inexact Rounded 277 quax314 quantize -0.0078 1e-1 -> -0.0 Inexact Rounded 278 quax315 quantize -0.0078 1e0 -> -0 Inexact Rounded 279 quax316 quantize -0.0078 1e+1 -> -0E+1 Inexact Rounded 280 quax317 quantize -0.0078 1e+2 -> -0E+2 Inexact Rounded 281 282 quax320 quantize 0.078 1e-5 -> 0.07800 283 quax321 quantize 0.078 1e-4 -> 0.0780 284 quax322 quantize 0.078 1e-3 -> 0.078 285 quax323 quantize 0.078 1e-2 -> 0.08 Inexact Rounded 286 quax324 quantize 0.078 1e-1 -> 0.1 Inexact Rounded 287 quax325 quantize 0.078 1e0 -> 0 Inexact Rounded 288 quax326 quantize 0.078 1e+1 -> 0E+1 Inexact Rounded 289 quax327 quantize 0.078 1e+2 -> 0E+2 Inexact Rounded 290 291 quax330 quantize -0.078 1e-5 -> -0.07800 292 quax331 quantize -0.078 1e-4 -> -0.0780 293 quax332 quantize -0.078 1e-3 -> -0.078 294 quax333 quantize -0.078 1e-2 -> -0.08 Inexact Rounded 295 quax334 quantize -0.078 1e-1 -> -0.1 Inexact Rounded 296 quax335 quantize -0.078 1e0 -> -0 Inexact Rounded 297 quax336 quantize -0.078 1e+1 -> -0E+1 Inexact Rounded 298 quax337 quantize -0.078 1e+2 -> -0E+2 Inexact Rounded 299 300 quax340 quantize 0.78 1e-5 -> 0.78000 301 quax341 quantize 0.78 1e-4 -> 0.7800 302 quax342 quantize 0.78 1e-3 -> 0.780 303 quax343 quantize 0.78 1e-2 -> 0.78 304 quax344 quantize 0.78 1e-1 -> 0.8 Inexact Rounded 305 quax345 quantize 0.78 1e0 -> 1 Inexact Rounded 306 quax346 quantize 0.78 1e+1 -> 0E+1 Inexact Rounded 307 quax347 quantize 0.78 1e+2 -> 0E+2 Inexact Rounded 308 309 quax350 quantize -0.78 1e-5 -> -0.78000 310 quax351 quantize -0.78 1e-4 -> -0.7800 311 quax352 quantize -0.78 1e-3 -> -0.780 312 quax353 quantize -0.78 1e-2 -> -0.78 313 quax354 quantize -0.78 1e-1 -> -0.8 Inexact Rounded 314 quax355 quantize -0.78 1e0 -> -1 Inexact Rounded 315 quax356 quantize -0.78 1e+1 -> -0E+1 Inexact Rounded 316 quax357 quantize -0.78 1e+2 -> -0E+2 Inexact Rounded 317 318 quax360 quantize 7.8 1e-5 -> 7.80000 319 quax361 quantize 7.8 1e-4 -> 7.8000 320 quax362 quantize 7.8 1e-3 -> 7.800 321 quax363 quantize 7.8 1e-2 -> 7.80 322 quax364 quantize 7.8 1e-1 -> 7.8 323 quax365 quantize 7.8 1e0 -> 8 Inexact Rounded 324 quax366 quantize 7.8 1e+1 -> 1E+1 Inexact Rounded 325 quax367 quantize 7.8 1e+2 -> 0E+2 Inexact Rounded 326 quax368 quantize 7.8 1e+3 -> 0E+3 Inexact Rounded 327 328 quax370 quantize -7.8 1e-5 -> -7.80000 329 quax371 quantize -7.8 1e-4 -> -7.8000 330 quax372 quantize -7.8 1e-3 -> -7.800 331 quax373 quantize -7.8 1e-2 -> -7.80 332 quax374 quantize -7.8 1e-1 -> -7.8 333 quax375 quantize -7.8 1e0 -> -8 Inexact Rounded 334 quax376 quantize -7.8 1e+1 -> -1E+1 Inexact Rounded 335 quax377 quantize -7.8 1e+2 -> -0E+2 Inexact Rounded 336 quax378 quantize -7.8 1e+3 -> -0E+3 Inexact Rounded 337 338 -- some individuals 339 precision: 9 340 quax380 quantize 352364.506 1e-2 -> 352364.51 Inexact Rounded 341 quax381 quantize 3523645.06 1e-2 -> 3523645.06 342 quax382 quantize 35236450.6 1e-2 -> NaN Invalid_operation 343 quax383 quantize 352364506 1e-2 -> NaN Invalid_operation 344 quax384 quantize -352364.506 1e-2 -> -352364.51 Inexact Rounded 345 quax385 quantize -3523645.06 1e-2 -> -3523645.06 346 quax386 quantize -35236450.6 1e-2 -> NaN Invalid_operation 347 quax387 quantize -352364506 1e-2 -> NaN Invalid_operation 348 349 rounding: down 350 quax389 quantize 35236450.6 1e-2 -> NaN Invalid_operation 351 -- ? should that one instead have been: 352 -- quax389 quantize 35236450.6 1e-2 -> NaN Invalid_operation 353 rounding: half_up 354 355 -- and a few more from e-mail discussions 356 precision: 7 357 quax391 quantize 12.34567 1e-3 -> 12.346 Inexact Rounded 358 quax392 quantize 123.4567 1e-3 -> 123.457 Inexact Rounded 359 quax393 quantize 1234.567 1e-3 -> 1234.567 360 quax394 quantize 12345.67 1e-3 -> NaN Invalid_operation 361 quax395 quantize 123456.7 1e-3 -> NaN Invalid_operation 362 quax396 quantize 1234567. 1e-3 -> NaN Invalid_operation 363 364 -- some 9999 round-up cases 365 precision: 9 366 quax400 quantize 9.999 1e-5 -> 9.99900 367 quax401 quantize 9.999 1e-4 -> 9.9990 368 quax402 quantize 9.999 1e-3 -> 9.999 369 quax403 quantize 9.999 1e-2 -> 10.00 Inexact Rounded 370 quax404 quantize 9.999 1e-1 -> 10.0 Inexact Rounded 371 quax405 quantize 9.999 1e0 -> 10 Inexact Rounded 372 quax406 quantize 9.999 1e1 -> 1E+1 Inexact Rounded 373 quax407 quantize 9.999 1e2 -> 0E+2 Inexact Rounded 374 375 quax410 quantize 0.999 1e-5 -> 0.99900 376 quax411 quantize 0.999 1e-4 -> 0.9990 377 quax412 quantize 0.999 1e-3 -> 0.999 378 quax413 quantize 0.999 1e-2 -> 1.00 Inexact Rounded 379 quax414 quantize 0.999 1e-1 -> 1.0 Inexact Rounded 380 quax415 quantize 0.999 1e0 -> 1 Inexact Rounded 381 quax416 quantize 0.999 1e1 -> 0E+1 Inexact Rounded 382 383 quax420 quantize 0.0999 1e-5 -> 0.09990 384 quax421 quantize 0.0999 1e-4 -> 0.0999 385 quax422 quantize 0.0999 1e-3 -> 0.100 Inexact Rounded 386 quax423 quantize 0.0999 1e-2 -> 0.10 Inexact Rounded 387 quax424 quantize 0.0999 1e-1 -> 0.1 Inexact Rounded 388 quax425 quantize 0.0999 1e0 -> 0 Inexact Rounded 389 quax426 quantize 0.0999 1e1 -> 0E+1 Inexact Rounded 390 391 quax430 quantize 0.00999 1e-5 -> 0.00999 392 quax431 quantize 0.00999 1e-4 -> 0.0100 Inexact Rounded 393 quax432 quantize 0.00999 1e-3 -> 0.010 Inexact Rounded 394 quax433 quantize 0.00999 1e-2 -> 0.01 Inexact Rounded 395 quax434 quantize 0.00999 1e-1 -> 0.0 Inexact Rounded 396 quax435 quantize 0.00999 1e0 -> 0 Inexact Rounded 397 quax436 quantize 0.00999 1e1 -> 0E+1 Inexact Rounded 398 399 quax440 quantize 0.000999 1e-5 -> 0.00100 Inexact Rounded 400 quax441 quantize 0.000999 1e-4 -> 0.0010 Inexact Rounded 401 quax442 quantize 0.000999 1e-3 -> 0.001 Inexact Rounded 402 quax443 quantize 0.000999 1e-2 -> 0.00 Inexact Rounded 403 quax444 quantize 0.000999 1e-1 -> 0.0 Inexact Rounded 404 quax445 quantize 0.000999 1e0 -> 0 Inexact Rounded 405 quax446 quantize 0.000999 1e1 -> 0E+1 Inexact Rounded 406 407 precision: 8 408 quax449 quantize 9.999E-15 1e-23 -> NaN Invalid_operation 409 quax450 quantize 9.999E-15 1e-22 -> 9.9990000E-15 410 quax451 quantize 9.999E-15 1e-21 -> 9.999000E-15 411 quax452 quantize 9.999E-15 1e-20 -> 9.99900E-15 412 quax453 quantize 9.999E-15 1e-19 -> 9.9990E-15 413 quax454 quantize 9.999E-15 1e-18 -> 9.999E-15 414 quax455 quantize 9.999E-15 1e-17 -> 1.000E-14 Inexact Rounded 415 quax456 quantize 9.999E-15 1e-16 -> 1.00E-14 Inexact Rounded 416 quax457 quantize 9.999E-15 1e-15 -> 1.0E-14 Inexact Rounded 417 quax458 quantize 9.999E-15 1e-14 -> 1E-14 Inexact Rounded 418 quax459 quantize 9.999E-15 1e-13 -> 0E-13 Inexact Rounded 419 quax460 quantize 9.999E-15 1e-12 -> 0E-12 Inexact Rounded 420 quax461 quantize 9.999E-15 1e-11 -> 0E-11 Inexact Rounded 421 quax462 quantize 9.999E-15 1e-10 -> 0E-10 Inexact Rounded 422 quax463 quantize 9.999E-15 1e-9 -> 0E-9 Inexact Rounded 423 quax464 quantize 9.999E-15 1e-8 -> 0E-8 Inexact Rounded 424 quax465 quantize 9.999E-15 1e-7 -> 0E-7 Inexact Rounded 425 quax466 quantize 9.999E-15 1e-6 -> 0.000000 Inexact Rounded 426 quax467 quantize 9.999E-15 1e-5 -> 0.00000 Inexact Rounded 427 quax468 quantize 9.999E-15 1e-4 -> 0.0000 Inexact Rounded 428 quax469 quantize 9.999E-15 1e-3 -> 0.000 Inexact Rounded 429 quax470 quantize 9.999E-15 1e-2 -> 0.00 Inexact Rounded 430 quax471 quantize 9.999E-15 1e-1 -> 0.0 Inexact Rounded 431 quax472 quantize 9.999E-15 1e0 -> 0 Inexact Rounded 432 quax473 quantize 9.999E-15 1e1 -> 0E+1 Inexact Rounded 433 434 precision: 7 435 quax900 quantize 9.999E-15 1e-22 -> NaN Invalid_operation 436 quax901 quantize 9.999E-15 1e-21 -> 9.999000E-15 437 quax902 quantize 9.999E-15 1e-20 -> 9.99900E-15 438 quax903 quantize 9.999E-15 1e-19 -> 9.9990E-15 439 quax904 quantize 9.999E-15 1e-18 -> 9.999E-15 440 quax905 quantize 9.999E-15 1e-17 -> 1.000E-14 Inexact Rounded 441 quax906 quantize 9.999E-15 1e-16 -> 1.00E-14 Inexact Rounded 442 quax907 quantize 9.999E-15 1e-15 -> 1.0E-14 Inexact Rounded 443 quax908 quantize 9.999E-15 1e-14 -> 1E-14 Inexact Rounded 444 quax909 quantize 9.999E-15 1e-13 -> 0E-13 Inexact Rounded 445 quax910 quantize 9.999E-15 1e-12 -> 0E-12 Inexact Rounded 446 quax911 quantize 9.999E-15 1e-11 -> 0E-11 Inexact Rounded 447 quax912 quantize 9.999E-15 1e-10 -> 0E-10 Inexact Rounded 448 quax913 quantize 9.999E-15 1e-9 -> 0E-9 Inexact Rounded 449 quax914 quantize 9.999E-15 1e-8 -> 0E-8 Inexact Rounded 450 quax915 quantize 9.999E-15 1e-7 -> 0E-7 Inexact Rounded 451 quax916 quantize 9.999E-15 1e-6 -> 0.000000 Inexact Rounded 452 quax917 quantize 9.999E-15 1e-5 -> 0.00000 Inexact Rounded 453 quax918 quantize 9.999E-15 1e-4 -> 0.0000 Inexact Rounded 454 quax919 quantize 9.999E-15 1e-3 -> 0.000 Inexact Rounded 455 quax920 quantize 9.999E-15 1e-2 -> 0.00 Inexact Rounded 456 quax921 quantize 9.999E-15 1e-1 -> 0.0 Inexact Rounded 457 quax922 quantize 9.999E-15 1e0 -> 0 Inexact Rounded 458 quax923 quantize 9.999E-15 1e1 -> 0E+1 Inexact Rounded 459 460 precision: 6 461 quax930 quantize 9.999E-15 1e-22 -> NaN Invalid_operation 462 quax931 quantize 9.999E-15 1e-21 -> NaN Invalid_operation 463 quax932 quantize 9.999E-15 1e-20 -> 9.99900E-15 464 quax933 quantize 9.999E-15 1e-19 -> 9.9990E-15 465 quax934 quantize 9.999E-15 1e-18 -> 9.999E-15 466 quax935 quantize 9.999E-15 1e-17 -> 1.000E-14 Inexact Rounded 467 quax936 quantize 9.999E-15 1e-16 -> 1.00E-14 Inexact Rounded 468 quax937 quantize 9.999E-15 1e-15 -> 1.0E-14 Inexact Rounded 469 quax938 quantize 9.999E-15 1e-14 -> 1E-14 Inexact Rounded 470 quax939 quantize 9.999E-15 1e-13 -> 0E-13 Inexact Rounded 471 quax940 quantize 9.999E-15 1e-12 -> 0E-12 Inexact Rounded 472 quax941 quantize 9.999E-15 1e-11 -> 0E-11 Inexact Rounded 473 quax942 quantize 9.999E-15 1e-10 -> 0E-10 Inexact Rounded 474 quax943 quantize 9.999E-15 1e-9 -> 0E-9 Inexact Rounded 475 quax944 quantize 9.999E-15 1e-8 -> 0E-8 Inexact Rounded 476 quax945 quantize 9.999E-15 1e-7 -> 0E-7 Inexact Rounded 477 quax946 quantize 9.999E-15 1e-6 -> 0.000000 Inexact Rounded 478 quax947 quantize 9.999E-15 1e-5 -> 0.00000 Inexact Rounded 479 quax948 quantize 9.999E-15 1e-4 -> 0.0000 Inexact Rounded 480 quax949 quantize 9.999E-15 1e-3 -> 0.000 Inexact Rounded 481 quax950 quantize 9.999E-15 1e-2 -> 0.00 Inexact Rounded 482 quax951 quantize 9.999E-15 1e-1 -> 0.0 Inexact Rounded 483 quax952 quantize 9.999E-15 1e0 -> 0 Inexact Rounded 484 quax953 quantize 9.999E-15 1e1 -> 0E+1 Inexact Rounded 485 486 precision: 3 487 quax960 quantize 9.999E-15 1e-22 -> NaN Invalid_operation 488 quax961 quantize 9.999E-15 1e-21 -> NaN Invalid_operation 489 quax962 quantize 9.999E-15 1e-20 -> NaN Invalid_operation 490 quax963 quantize 9.999E-15 1e-19 -> NaN Invalid_operation 491 quax964 quantize 9.999E-15 1e-18 -> NaN Invalid_operation 492 quax965 quantize 9.999E-15 1e-17 -> NaN Invalid_operation 493 quax966 quantize 9.999E-15 1e-16 -> 1.00E-14 Inexact Rounded 494 quax967 quantize 9.999E-15 1e-15 -> 1.0E-14 Inexact Rounded 495 quax968 quantize 9.999E-15 1e-14 -> 1E-14 Inexact Rounded 496 quax969 quantize 9.999E-15 1e-13 -> 0E-13 Inexact Rounded 497 quax970 quantize 9.999E-15 1e-12 -> 0E-12 Inexact Rounded 498 quax971 quantize 9.999E-15 1e-11 -> 0E-11 Inexact Rounded 499 quax972 quantize 9.999E-15 1e-10 -> 0E-10 Inexact Rounded 500 quax973 quantize 9.999E-15 1e-9 -> 0E-9 Inexact Rounded 501 quax974 quantize 9.999E-15 1e-8 -> 0E-8 Inexact Rounded 502 quax975 quantize 9.999E-15 1e-7 -> 0E-7 Inexact Rounded 503 quax976 quantize 9.999E-15 1e-6 -> 0.000000 Inexact Rounded 504 quax977 quantize 9.999E-15 1e-5 -> 0.00000 Inexact Rounded 505 quax978 quantize 9.999E-15 1e-4 -> 0.0000 Inexact Rounded 506 quax979 quantize 9.999E-15 1e-3 -> 0.000 Inexact Rounded 507 quax980 quantize 9.999E-15 1e-2 -> 0.00 Inexact Rounded 508 quax981 quantize 9.999E-15 1e-1 -> 0.0 Inexact Rounded 509 quax982 quantize 9.999E-15 1e0 -> 0 Inexact Rounded 510 quax983 quantize 9.999E-15 1e1 -> 0E+1 Inexact Rounded 511 512 -- Fung Lee's case & similar 513 precision: 3 514 quax1001 quantize 0.000 0.001 -> 0.000 515 quax1002 quantize 0.001 0.001 -> 0.001 516 quax1003 quantize 0.0012 0.001 -> 0.001 Inexact Rounded 517 quax1004 quantize 0.0018 0.001 -> 0.002 Inexact Rounded 518 quax1005 quantize 0.501 0.001 -> 0.501 519 quax1006 quantize 0.5012 0.001 -> 0.501 Inexact Rounded 520 quax1007 quantize 0.5018 0.001 -> 0.502 Inexact Rounded 521 quax1008 quantize 0.999 0.001 -> 0.999 522 quax1009 quantize 0.9992 0.001 -> 0.999 Inexact Rounded 523 quax1010 quantize 0.9998 0.001 -> NaN Invalid_operation 524 quax1011 quantize 1.0001 0.001 -> NaN Invalid_operation 525 quax1012 quantize 1.0051 0.001 -> NaN Invalid_operation 526 quax1013 quantize 1.0551 0.001 -> NaN Invalid_operation 527 quax1014 quantize 1.5551 0.001 -> NaN Invalid_operation 528 quax1015 quantize 1.9999 0.001 -> NaN Invalid_operation 529 530 -- long operand checks [rhs checks removed] 531 maxexponent: 999 532 minexponent: -999 533 precision: 9 534 quax481 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded 535 quax482 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded 536 quax483 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded 537 quax484 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded 538 quax485 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded 539 quax486 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded 540 -- a potential double-round 541 quax487 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded 542 quax488 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded 543 544 precision: 15 545 quax491 quantize 12345678000 1e+3 -> 1.2345678E+10 Rounded 546 quax492 quantize 1234567800 1e+1 -> 1.23456780E+9 Rounded 547 quax493 quantize 1234567890 1e+1 -> 1.23456789E+9 Rounded 548 quax494 quantize 1234567891 1e+1 -> 1.23456789E+9 Inexact Rounded 549 quax495 quantize 12345678901 1e+2 -> 1.23456789E+10 Inexact Rounded 550 quax496 quantize 1234567896 1e+1 -> 1.23456790E+9 Inexact Rounded 551 quax497 quantize 1234.987643 1e-4 -> 1234.9876 Inexact Rounded 552 quax498 quantize 1234.987647 1e-4 -> 1234.9876 Inexact Rounded 553 554 -- Zeros 555 quax500 quantize 0 1e1 -> 0E+1 556 quax501 quantize 0 1e0 -> 0 557 quax502 quantize 0 1e-1 -> 0.0 558 quax503 quantize 0.0 1e-1 -> 0.0 559 quax504 quantize 0.0 1e0 -> 0 560 quax505 quantize 0.0 1e+1 -> 0E+1 561 quax506 quantize 0E+1 1e-1 -> 0.0 562 quax507 quantize 0E+1 1e0 -> 0 563 quax508 quantize 0E+1 1e+1 -> 0E+1 564 quax509 quantize -0 1e1 -> -0E+1 565 quax510 quantize -0 1e0 -> -0 566 quax511 quantize -0 1e-1 -> -0.0 567 quax512 quantize -0.0 1e-1 -> -0.0 568 quax513 quantize -0.0 1e0 -> -0 569 quax514 quantize -0.0 1e+1 -> -0E+1 570 quax515 quantize -0E+1 1e-1 -> -0.0 571 quax516 quantize -0E+1 1e0 -> -0 572 quax517 quantize -0E+1 1e+1 -> -0E+1 573 574 -- Suspicious RHS values 575 maxexponent: 999999999 576 minexponent: -999999999 577 precision: 15 578 quax520 quantize 1.234 1e999999000 -> 0E+999999000 Inexact Rounded 579 quax521 quantize 123.456 1e999999000 -> 0E+999999000 Inexact Rounded 580 quax522 quantize 1.234 1e999999999 -> 0E+999999999 Inexact Rounded 581 quax523 quantize 123.456 1e999999999 -> 0E+999999999 Inexact Rounded 582 quax524 quantize 123.456 1e1000000000 -> NaN Invalid_operation 583 quax525 quantize 123.456 1e12345678903 -> NaN Invalid_operation 584 -- next four are "won't fit" overflows 585 quax526 quantize 1.234 1e-999999000 -> NaN Invalid_operation 586 quax527 quantize 123.456 1e-999999000 -> NaN Invalid_operation 587 quax528 quantize 1.234 1e-999999999 -> NaN Invalid_operation 588 quax529 quantize 123.456 1e-999999999 -> NaN Invalid_operation 589 quax530 quantize 123.456 1e-1000000014 -> NaN Invalid_operation 590 quax531 quantize 123.456 1e-12345678903 -> NaN Invalid_operation 591 592 maxexponent: 999 593 minexponent: -999 594 precision: 15 595 quax532 quantize 1.234E+999 1e999 -> 1E+999 Inexact Rounded 596 quax533 quantize 1.234E+998 1e999 -> 0E+999 Inexact Rounded 597 quax534 quantize 1.234 1e999 -> 0E+999 Inexact Rounded 598 quax535 quantize 1.234 1e1000 -> NaN Invalid_operation 599 quax536 quantize 1.234 1e5000 -> NaN Invalid_operation 600 quax537 quantize 0 1e-999 -> 0E-999 601 -- next two are "won't fit" overflows 602 quax538 quantize 1.234 1e-999 -> NaN Invalid_operation 603 quax539 quantize 1.234 1e-1000 -> NaN Invalid_operation 604 quax540 quantize 1.234 1e-5000 -> NaN Invalid_operation 605 -- [more below] 606 607 -- check bounds (lhs maybe out of range for destination, etc.) 608 precision: 7 609 quax541 quantize 1E+999 1e+999 -> 1E+999 610 quax542 quantize 1E+1000 1e+999 -> NaN Invalid_operation 611 quax543 quantize 1E+999 1e+1000 -> NaN Invalid_operation 612 quax544 quantize 1E-999 1e-999 -> 1E-999 613 quax545 quantize 1E-1000 1e-999 -> 0E-999 Inexact Rounded 614 quax546 quantize 1E-999 1e-1000 -> 1.0E-999 615 quax547 quantize 1E-1005 1e-999 -> 0E-999 Inexact Rounded 616 quax548 quantize 1E-1006 1e-999 -> 0E-999 Inexact Rounded 617 quax549 quantize 1E-1007 1e-999 -> 0E-999 Inexact Rounded 618 quax550 quantize 1E-998 1e-1005 -> NaN Invalid_operation -- won't fit 619 quax551 quantize 1E-999 1e-1005 -> 1.000000E-999 620 quax552 quantize 1E-1000 1e-1005 -> 1.00000E-1000 Subnormal 621 quax553 quantize 1E-999 1e-1006 -> NaN Invalid_operation 622 quax554 quantize 1E-999 1e-1007 -> NaN Invalid_operation 623 -- related subnormal rounding 624 quax555 quantize 1.666666E-999 1e-1005 -> 1.666666E-999 625 quax556 quantize 1.666666E-1000 1e-1005 -> 1.66667E-1000 Subnormal Inexact Rounded 626 quax557 quantize 1.666666E-1001 1e-1005 -> 1.6667E-1001 Subnormal Inexact Rounded 627 quax558 quantize 1.666666E-1002 1e-1005 -> 1.667E-1002 Subnormal Inexact Rounded 628 quax559 quantize 1.666666E-1003 1e-1005 -> 1.67E-1003 Subnormal Inexact Rounded 629 quax560 quantize 1.666666E-1004 1e-1005 -> 1.7E-1004 Subnormal Inexact Rounded 630 quax561 quantize 1.666666E-1005 1e-1005 -> 2E-1005 Subnormal Inexact Rounded 631 quax562 quantize 1.666666E-1006 1e-1005 -> 0E-1005 Inexact Rounded 632 quax563 quantize 1.666666E-1007 1e-1005 -> 0E-1005 Inexact Rounded 633 634 -- Specials 635 quax580 quantize Inf -Inf -> Infinity 636 quax581 quantize Inf 1e-1000 -> NaN Invalid_operation 637 quax582 quantize Inf 1e-1 -> NaN Invalid_operation 638 quax583 quantize Inf 1e0 -> NaN Invalid_operation 639 quax584 quantize Inf 1e1 -> NaN Invalid_operation 640 quax585 quantize Inf 1e1000 -> NaN Invalid_operation 641 quax586 quantize Inf Inf -> Infinity 642 quax587 quantize -1000 Inf -> NaN Invalid_operation 643 quax588 quantize -Inf Inf -> -Infinity 644 quax589 quantize -1 Inf -> NaN Invalid_operation 645 quax590 quantize 0 Inf -> NaN Invalid_operation 646 quax591 quantize 1 Inf -> NaN Invalid_operation 647 quax592 quantize 1000 Inf -> NaN Invalid_operation 648 quax593 quantize Inf Inf -> Infinity 649 quax594 quantize Inf 1e-0 -> NaN Invalid_operation 650 quax595 quantize -0 Inf -> NaN Invalid_operation 651 652 quax600 quantize -Inf -Inf -> -Infinity 653 quax601 quantize -Inf 1e-1000 -> NaN Invalid_operation 654 quax602 quantize -Inf 1e-1 -> NaN Invalid_operation 655 quax603 quantize -Inf 1e0 -> NaN Invalid_operation 656 quax604 quantize -Inf 1e1 -> NaN Invalid_operation 657 quax605 quantize -Inf 1e1000 -> NaN Invalid_operation 658 quax606 quantize -Inf Inf -> -Infinity 659 quax607 quantize -1000 Inf -> NaN Invalid_operation 660 quax608 quantize -Inf -Inf -> -Infinity 661 quax609 quantize -1 -Inf -> NaN Invalid_operation 662 quax610 quantize 0 -Inf -> NaN Invalid_operation 663 quax611 quantize 1 -Inf -> NaN Invalid_operation 664 quax612 quantize 1000 -Inf -> NaN Invalid_operation 665 quax613 quantize Inf -Inf -> Infinity 666 quax614 quantize -Inf 1e-0 -> NaN Invalid_operation 667 quax615 quantize -0 -Inf -> NaN Invalid_operation 668 669 quax621 quantize NaN -Inf -> NaN 670 quax622 quantize NaN 1e-1000 -> NaN 671 quax623 quantize NaN 1e-1 -> NaN 672 quax624 quantize NaN 1e0 -> NaN 673 quax625 quantize NaN 1e1 -> NaN 674 quax626 quantize NaN 1e1000 -> NaN 675 quax627 quantize NaN Inf -> NaN 676 quax628 quantize NaN NaN -> NaN 677 quax629 quantize -Inf NaN -> NaN 678 quax630 quantize -1000 NaN -> NaN 679 quax631 quantize -1 NaN -> NaN 680 quax632 quantize 0 NaN -> NaN 681 quax633 quantize 1 NaN -> NaN 682 quax634 quantize 1000 NaN -> NaN 683 quax635 quantize Inf NaN -> NaN 684 quax636 quantize NaN 1e-0 -> NaN 685 quax637 quantize -0 NaN -> NaN 686 687 quax641 quantize sNaN -Inf -> NaN Invalid_operation 688 quax642 quantize sNaN 1e-1000 -> NaN Invalid_operation 689 quax643 quantize sNaN 1e-1 -> NaN Invalid_operation 690 quax644 quantize sNaN 1e0 -> NaN Invalid_operation 691 quax645 quantize sNaN 1e1 -> NaN Invalid_operation 692 quax646 quantize sNaN 1e1000 -> NaN Invalid_operation 693 quax647 quantize sNaN NaN -> NaN Invalid_operation 694 quax648 quantize sNaN sNaN -> NaN Invalid_operation 695 quax649 quantize NaN sNaN -> NaN Invalid_operation 696 quax650 quantize -Inf sNaN -> NaN Invalid_operation 697 quax651 quantize -1000 sNaN -> NaN Invalid_operation 698 quax652 quantize -1 sNaN -> NaN Invalid_operation 699 quax653 quantize 0 sNaN -> NaN Invalid_operation 700 quax654 quantize 1 sNaN -> NaN Invalid_operation 701 quax655 quantize 1000 sNaN -> NaN Invalid_operation 702 quax656 quantize Inf sNaN -> NaN Invalid_operation 703 quax657 quantize NaN sNaN -> NaN Invalid_operation 704 quax658 quantize sNaN 1e-0 -> NaN Invalid_operation 705 quax659 quantize -0 sNaN -> NaN Invalid_operation 706 707 -- propagating NaNs 708 quax661 quantize NaN9 -Inf -> NaN9 709 quax662 quantize NaN8 919 -> NaN8 710 quax663 quantize NaN71 Inf -> NaN71 711 quax664 quantize NaN6 NaN5 -> NaN6 712 quax665 quantize -Inf NaN4 -> NaN4 713 quax666 quantize -919 NaN31 -> NaN31 714 quax667 quantize Inf NaN2 -> NaN2 715 716 quax671 quantize sNaN99 -Inf -> NaN99 Invalid_operation 717 quax672 quantize sNaN98 -11 -> NaN98 Invalid_operation 718 quax673 quantize sNaN97 NaN -> NaN97 Invalid_operation 719 quax674 quantize sNaN16 sNaN94 -> NaN16 Invalid_operation 720 quax675 quantize NaN95 sNaN93 -> NaN93 Invalid_operation 721 quax676 quantize -Inf sNaN92 -> NaN92 Invalid_operation 722 quax677 quantize 088 sNaN91 -> NaN91 Invalid_operation 723 quax678 quantize Inf sNaN90 -> NaN90 Invalid_operation 724 quax679 quantize NaN sNaN88 -> NaN88 Invalid_operation 725 726 quax681 quantize -NaN9 -Inf -> -NaN9 727 quax682 quantize -NaN8 919 -> -NaN8 728 quax683 quantize -NaN71 Inf -> -NaN71 729 quax684 quantize -NaN6 -NaN5 -> -NaN6 730 quax685 quantize -Inf -NaN4 -> -NaN4 731 quax686 quantize -919 -NaN31 -> -NaN31 732 quax687 quantize Inf -NaN2 -> -NaN2 733 734 quax691 quantize -sNaN99 -Inf -> -NaN99 Invalid_operation 735 quax692 quantize -sNaN98 -11 -> -NaN98 Invalid_operation 736 quax693 quantize -sNaN97 NaN -> -NaN97 Invalid_operation 737 quax694 quantize -sNaN16 sNaN94 -> -NaN16 Invalid_operation 738 quax695 quantize -NaN95 -sNaN93 -> -NaN93 Invalid_operation 739 quax696 quantize -Inf -sNaN92 -> -NaN92 Invalid_operation 740 quax697 quantize 088 -sNaN91 -> -NaN91 Invalid_operation 741 quax698 quantize Inf -sNaN90 -> -NaN90 Invalid_operation 742 quax699 quantize NaN -sNaN88 -> -NaN88 Invalid_operation 743 744 -- subnormals and underflow 745 precision: 4 746 maxexponent: 999 747 minexponent: -999 748 quax710 quantize 1.00E-999 1e-999 -> 1E-999 Rounded 749 quax711 quantize 0.1E-999 2e-1000 -> 1E-1000 Subnormal 750 quax712 quantize 0.10E-999 3e-1000 -> 1E-1000 Subnormal Rounded 751 quax713 quantize 0.100E-999 4e-1000 -> 1E-1000 Subnormal Rounded 752 quax714 quantize 0.01E-999 5e-1001 -> 1E-1001 Subnormal 753 -- next is rounded to Emin 754 quax715 quantize 0.999E-999 1e-999 -> 1E-999 Inexact Rounded 755 quax716 quantize 0.099E-999 10e-1000 -> 1E-1000 Inexact Rounded Subnormal 756 757 quax717 quantize 0.009E-999 1e-1001 -> 1E-1001 Inexact Rounded Subnormal 758 quax718 quantize 0.001E-999 1e-1001 -> 0E-1001 Inexact Rounded 759 quax719 quantize 0.0009E-999 1e-1001 -> 0E-1001 Inexact Rounded 760 quax720 quantize 0.0001E-999 1e-1001 -> 0E-1001 Inexact Rounded 761 762 quax730 quantize -1.00E-999 1e-999 -> -1E-999 Rounded 763 quax731 quantize -0.1E-999 1e-999 -> -0E-999 Rounded Inexact 764 quax732 quantize -0.10E-999 1e-999 -> -0E-999 Rounded Inexact 765 quax733 quantize -0.100E-999 1e-999 -> -0E-999 Rounded Inexact 766 quax734 quantize -0.01E-999 1e-999 -> -0E-999 Inexact Rounded 767 -- next is rounded to Emin 768 quax735 quantize -0.999E-999 90e-999 -> -1E-999 Inexact Rounded 769 quax736 quantize -0.099E-999 -1e-999 -> -0E-999 Inexact Rounded 770 quax737 quantize -0.009E-999 -1e-999 -> -0E-999 Inexact Rounded 771 quax738 quantize -0.001E-999 -0e-999 -> -0E-999 Inexact Rounded 772 quax739 quantize -0.0001E-999 0e-999 -> -0E-999 Inexact Rounded 773 774 quax740 quantize -1.00E-999 1e-1000 -> -1.0E-999 Rounded 775 quax741 quantize -0.1E-999 1e-1000 -> -1E-1000 Subnormal 776 quax742 quantize -0.10E-999 1e-1000 -> -1E-1000 Subnormal Rounded 777 quax743 quantize -0.100E-999 1e-1000 -> -1E-1000 Subnormal Rounded 778 quax744 quantize -0.01E-999 1e-1000 -> -0E-1000 Inexact Rounded 779 -- next is rounded to Emin 780 quax745 quantize -0.999E-999 1e-1000 -> -1.0E-999 Inexact Rounded 781 quax746 quantize -0.099E-999 1e-1000 -> -1E-1000 Inexact Rounded Subnormal 782 quax747 quantize -0.009E-999 1e-1000 -> -0E-1000 Inexact Rounded 783 quax748 quantize -0.001E-999 1e-1000 -> -0E-1000 Inexact Rounded 784 quax749 quantize -0.0001E-999 1e-1000 -> -0E-1000 Inexact Rounded 785 786 quax750 quantize -1.00E-999 1e-1001 -> -1.00E-999 787 quax751 quantize -0.1E-999 1e-1001 -> -1.0E-1000 Subnormal 788 quax752 quantize -0.10E-999 1e-1001 -> -1.0E-1000 Subnormal 789 quax753 quantize -0.100E-999 1e-1001 -> -1.0E-1000 Subnormal Rounded 790 quax754 quantize -0.01E-999 1e-1001 -> -1E-1001 Subnormal 791 -- next is rounded to Emin 792 quax755 quantize -0.999E-999 1e-1001 -> -1.00E-999 Inexact Rounded 793 quax756 quantize -0.099E-999 1e-1001 -> -1.0E-1000 Inexact Rounded Subnormal 794 quax757 quantize -0.009E-999 1e-1001 -> -1E-1001 Inexact Rounded Subnormal 795 quax758 quantize -0.001E-999 1e-1001 -> -0E-1001 Inexact Rounded 796 quax759 quantize -0.0001E-999 1e-1001 -> -0E-1001 Inexact Rounded 797 798 quax760 quantize -1.00E-999 1e-1002 -> -1.000E-999 799 quax761 quantize -0.1E-999 1e-1002 -> -1.00E-1000 Subnormal 800 quax762 quantize -0.10E-999 1e-1002 -> -1.00E-1000 Subnormal 801 quax763 quantize -0.100E-999 1e-1002 -> -1.00E-1000 Subnormal 802 quax764 quantize -0.01E-999 1e-1002 -> -1.0E-1001 Subnormal 803 quax765 quantize -0.999E-999 1e-1002 -> -9.99E-1000 Subnormal 804 quax766 quantize -0.099E-999 1e-1002 -> -9.9E-1001 Subnormal 805 quax767 quantize -0.009E-999 1e-1002 -> -9E-1002 Subnormal 806 quax768 quantize -0.001E-999 1e-1002 -> -1E-1002 Subnormal 807 quax769 quantize -0.0001E-999 1e-1002 -> -0E-1002 Inexact Rounded 808 809 -- rhs must be no less than Etiny 810 quax770 quantize -1.00E-999 1e-1003 -> NaN Invalid_operation 811 quax771 quantize -0.1E-999 1e-1003 -> NaN Invalid_operation 812 quax772 quantize -0.10E-999 1e-1003 -> NaN Invalid_operation 813 quax773 quantize -0.100E-999 1e-1003 -> NaN Invalid_operation 814 quax774 quantize -0.01E-999 1e-1003 -> NaN Invalid_operation 815 quax775 quantize -0.999E-999 1e-1003 -> NaN Invalid_operation 816 quax776 quantize -0.099E-999 1e-1003 -> NaN Invalid_operation 817 quax777 quantize -0.009E-999 1e-1003 -> NaN Invalid_operation 818 quax778 quantize -0.001E-999 1e-1003 -> NaN Invalid_operation 819 quax779 quantize -0.0001E-999 1e-1003 -> NaN Invalid_operation 820 quax780 quantize -0.0001E-999 1e-1004 -> NaN Invalid_operation 821 822 precision: 9 823 maxExponent: 999999999 824 minexponent: -999999999 825 826 -- some extremes derived from Rescale testcases 827 quax801 quantize 0 1e1000000000 -> NaN Invalid_operation 828 quax802 quantize 0 1e-1000000000 -> 0E-1000000000 829 quax803 quantize 0 1e2000000000 -> NaN Invalid_operation 830 quax804 quantize 0 1e-2000000000 -> NaN Invalid_operation 831 quax805 quantize 0 1e3000000000 -> NaN Invalid_operation 832 quax806 quantize 0 1e-3000000000 -> NaN Invalid_operation 833 quax807 quantize 0 1e4000000000 -> NaN Invalid_operation 834 quax808 quantize 0 1e-4000000000 -> NaN Invalid_operation 835 quax809 quantize 0 1e5000000000 -> NaN Invalid_operation 836 quax810 quantize 0 1e-5000000000 -> NaN Invalid_operation 837 quax811 quantize 0 1e6000000000 -> NaN Invalid_operation 838 quax812 quantize 0 1e-6000000000 -> NaN Invalid_operation 839 quax813 quantize 0 1e7000000000 -> NaN Invalid_operation 840 quax814 quantize 0 1e-7000000000 -> NaN Invalid_operation 841 quax815 quantize 0 1e8000000000 -> NaN Invalid_operation 842 quax816 quantize 0 1e-8000000000 -> NaN Invalid_operation 843 quax817 quantize 0 1e9000000000 -> NaN Invalid_operation 844 quax818 quantize 0 1e-9000000000 -> NaN Invalid_operation 845 quax819 quantize 0 1e9999999999 -> NaN Invalid_operation 846 quax820 quantize 0 1e-9999999999 -> NaN Invalid_operation 847 quax821 quantize 0 1e10000000000 -> NaN Invalid_operation 848 quax822 quantize 0 1e-10000000000 -> NaN Invalid_operation 849 850 quax843 quantize 0 1e999999999 -> 0E+999999999 851 quax844 quantize 0 1e1000000000 -> NaN Invalid_operation 852 quax845 quantize 0 1e-999999999 -> 0E-999999999 853 quax846 quantize 0 1e-1000000000 -> 0E-1000000000 854 quax847 quantize 0 1e-1000000001 -> 0E-1000000001 855 quax848 quantize 0 1e-1000000002 -> 0E-1000000002 856 quax849 quantize 0 1e-1000000003 -> 0E-1000000003 857 quax850 quantize 0 1e-1000000004 -> 0E-1000000004 858 quax851 quantize 0 1e-1000000005 -> 0E-1000000005 859 quax852 quantize 0 1e-1000000006 -> 0E-1000000006 860 quax853 quantize 0 1e-1000000007 -> 0E-1000000007 861 quax854 quantize 0 1e-1000000008 -> NaN Invalid_operation 862 863 quax861 quantize 1 1e+2147483649 -> NaN Invalid_operation 864 quax862 quantize 1 1e+2147483648 -> NaN Invalid_operation 865 quax863 quantize 1 1e+2147483647 -> NaN Invalid_operation 866 quax864 quantize 1 1e-2147483647 -> NaN Invalid_operation 867 quax865 quantize 1 1e-2147483648 -> NaN Invalid_operation 868 quax866 quantize 1 1e-2147483649 -> NaN Invalid_operation 869 870 -- More from Fung Lee 871 precision: 16 872 rounding: half_up 873 maxExponent: 384 874 minExponent: -383 875 quax1021 quantize 8.666666666666000E+384 1.000000000000000E+384 -> 8.666666666666000E+384 876 quax1022 quantize 64#8.666666666666000E+384 64#1.000000000000000E+384 -> 8.666666666666000E+384 877 quax1023 quantize 64#8.666666666666000E+384 128#1.000000000000000E+384 -> 8.666666666666000E+384 878 quax1024 quantize 64#8.666666666666000E+384 64#1E+384 -> 8.666666666666000E+384 879 quax1025 quantize 64#8.666666666666000E+384 64#1E+384 -> 64#8.666666666666000E+384 880 quax1026 quantize 64#8.666666666666000E+384 128#1E+384 -> 64#9E+384 Inexact Rounded Clamped 881 quax1027 quantize 64#8.666666666666000E+323 64#1E+31 -> NaN Invalid_operation 882 quax1028 quantize 64#8.666666666666000E+323 128#1E+31 -> NaN Invalid_operation 883 quax1029 quantize 64#8.66666666E+3 128#1E+10 -> 64#0E10 Inexact Rounded 884 quax1030 quantize 8.66666666E+3 1E+3 -> 9E+3 Inexact Rounded 885 886 -- Int and uInt32 edge values for testing conversions 887 quax1040 quantize -2147483646 0 -> -2147483646 888 quax1041 quantize -2147483647 0 -> -2147483647 889 quax1042 quantize -2147483648 0 -> -2147483648 890 quax1043 quantize -2147483649 0 -> -2147483649 891 quax1044 quantize 2147483646 0 -> 2147483646 892 quax1045 quantize 2147483647 0 -> 2147483647 893 quax1046 quantize 2147483648 0 -> 2147483648 894 quax1047 quantize 2147483649 0 -> 2147483649 895 quax1048 quantize 4294967294 0 -> 4294967294 896 quax1049 quantize 4294967295 0 -> 4294967295 897 quax1050 quantize 4294967296 0 -> 4294967296 898 quax1051 quantize 4294967297 0 -> 4294967297 899 -- and powers of ten for same 900 quax1101 quantize 5000000000 0 -> 5000000000 901 quax1102 quantize 4000000000 0 -> 4000000000 902 quax1103 quantize 2000000000 0 -> 2000000000 903 quax1104 quantize 1000000000 0 -> 1000000000 904 quax1105 quantize 0100000000 0 -> 100000000 905 quax1106 quantize 0010000000 0 -> 10000000 906 quax1107 quantize 0001000000 0 -> 1000000 907 quax1108 quantize 0000100000 0 -> 100000 908 quax1109 quantize 0000010000 0 -> 10000 909 quax1110 quantize 0000001000 0 -> 1000 910 quax1111 quantize 0000000100 0 -> 100 911 quax1112 quantize 0000000010 0 -> 10 912 quax1113 quantize 0000000001 0 -> 1 913 quax1114 quantize 0000000000 0 -> 0 914 -- and powers of ten for same 915 quax1121 quantize -5000000000 0 -> -5000000000 916 quax1122 quantize -4000000000 0 -> -4000000000 917 quax1123 quantize -2000000000 0 -> -2000000000 918 quax1124 quantize -1000000000 0 -> -1000000000 919 quax1125 quantize -0100000000 0 -> -100000000 920 quax1126 quantize -0010000000 0 -> -10000000 921 quax1127 quantize -0001000000 0 -> -1000000 922 quax1128 quantize -0000100000 0 -> -100000 923 quax1129 quantize -0000010000 0 -> -10000 924 quax1130 quantize -0000001000 0 -> -1000 925 quax1131 quantize -0000000100 0 -> -100 926 quax1132 quantize -0000000010 0 -> -10 927 quax1133 quantize -0000000001 0 -> -1 928 quax1134 quantize -0000000000 0 -> -0 929 930 -- Some miscellany 931 precision: 34 932 rounding: half_up 933 maxExponent: 6144 934 minExponent: -6143 935 -- 1 2 3 936 -- 1 234567890123456789012345678901234 937 quax0a1 quantize 8.555555555555555555555555555555555E+6143 1E+6143 -> 9E+6143 Inexact Rounded 938 quax0a2 quantize 128#8.555555555555555555555555555555555E+6143 128#1E+6143 -> 8.55555555555555555555555555555556E+6143 Rounded Inexact 939 quax0a3 quantize 128#8.555555555555555555555555555555555E+6144 128#1E+6144 -> 8.555555555555555555555555555555555E+6144 940 941 -- payload decapitate 942 precision: 5 943 quax62100 quantize 11 -sNaN1234567890 -> -NaN67890 Invalid_operation 944 945 -- Null tests 946 quax998 quantize 10 # -> NaN Invalid_operation 947 quax999 quantize # 1e10 -> NaN Invalid_operation