| Facundo Batista | 5dfc480 | 2008-01-08 16:20:31 +0000 | [diff] [blame^] | 1 | ------------------------------------------------------------------------
 | 
 | 2 | -- ddEncode.decTest -- decimal eight-byte format testcases            --
 | 
 | 3 | -- Copyright (c) IBM Corporation, 2000, 2007.  All rights reserved.   --
 | 
 | 4 | ------------------------------------------------------------------------
 | 
 | 5 | -- Please see the document "General Decimal Arithmetic Testcases"     --
 | 
 | 6 | -- at http://www2.hursley.ibm.com/decimal for the description of      --
 | 
 | 7 | -- these testcases.                                                   --
 | 
 | 8 | --                                                                    --
 | 
 | 9 | -- These testcases are experimental ('beta' versions), and they       --
 | 
 | 10 | -- may contain errors.  They are offered on an as-is basis.  In       --
 | 
 | 11 | -- particular, achieving the same results as the tests here is not    --
 | 
 | 12 | -- a guarantee that an implementation complies with any Standard      --
 | 
 | 13 | -- or specification.  The tests are not exhaustive.                   --
 | 
 | 14 | --                                                                    --
 | 
 | 15 | -- Please send comments, suggestions, and corrections to the author:  --
 | 
 | 16 | --   Mike Cowlishaw, IBM Fellow                                       --
 | 
 | 17 | --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
 | 
 | 18 | --   mfc@uk.ibm.com                                                   --
 | 
 | 19 | ------------------------------------------------------------------------
 | 
 | 20 | -- [Previously called decimal64.decTest]
 | 
 | 21 | version: 2.57
 | 
 | 22 | 
 | 
 | 23 | -- This set of tests is for the eight-byte concrete representation.
 | 
 | 24 | -- Its characteristics are:
 | 
 | 25 | --
 | 
 | 26 | --  1 bit  sign
 | 
 | 27 | --  5 bits combination field
 | 
 | 28 | --  8 bits exponent continuation
 | 
 | 29 | -- 50 bits coefficient continuation
 | 
 | 30 | --
 | 
 | 31 | -- Total exponent length 10 bits
 | 
 | 32 | -- Total coefficient length 54 bits (16 digits)
 | 
 | 33 | --
 | 
 | 34 | -- Elimit =  767 (maximum encoded exponent)
 | 
 | 35 | -- Emax   =  384 (largest exponent value)
 | 
 | 36 | -- Emin   = -383 (smallest exponent value)
 | 
 | 37 | -- bias   =  398 (subtracted from encoded exponent) = -Etiny
 | 
 | 38 | 
 | 
 | 39 | -- The testcases here have only exactly representable data on the
 | 
 | 40 | -- 'left-hand-side'; rounding from strings is tested in 'base'
 | 
 | 41 | -- testcase groups.
 | 
 | 42 | 
 | 
 | 43 | extended:    1
 | 
 | 44 | clamp:       1
 | 
 | 45 | precision:   16
 | 
 | 46 | rounding:    half_up
 | 
 | 47 | maxExponent: 384
 | 
 | 48 | minExponent: -383
 | 
 | 49 | 
 | 
 | 50 | -- General testcases
 | 
 | 51 | -- (mostly derived from the Strawman 4 document and examples)
 | 
 | 52 | dece001 apply   #A2300000000003D0 -> -7.50
 | 
 | 53 | dece002 apply   -7.50             -> #A2300000000003D0
 | 
 | 54 | -- derivative canonical plain strings
 | 
 | 55 | dece003 apply   #A23c0000000003D0 -> -7.50E+3
 | 
 | 56 | dece004 apply   -7.50E+3          -> #A23c0000000003D0
 | 
 | 57 | dece005 apply   #A2380000000003D0 -> -750
 | 
 | 58 | dece006 apply   -750              -> #A2380000000003D0
 | 
 | 59 | dece007 apply   #A2340000000003D0 -> -75.0
 | 
 | 60 | dece008 apply   -75.0             -> #A2340000000003D0
 | 
 | 61 | dece009 apply   #A22c0000000003D0 -> -0.750
 | 
 | 62 | dece010 apply   -0.750            -> #A22c0000000003D0
 | 
 | 63 | dece011 apply   #A2280000000003D0 -> -0.0750
 | 
 | 64 | dece012 apply   -0.0750           -> #A2280000000003D0
 | 
 | 65 | dece013 apply   #A2200000000003D0 -> -0.000750
 | 
 | 66 | dece014 apply   -0.000750         -> #A2200000000003D0
 | 
 | 67 | dece015 apply   #A2180000000003D0 -> -0.00000750
 | 
 | 68 | dece016 apply   -0.00000750       -> #A2180000000003D0
 | 
 | 69 | dece017 apply   #A2140000000003D0 -> -7.50E-7
 | 
 | 70 | dece018 apply   -7.50E-7          -> #A2140000000003D0
 | 
 | 71 | 
 | 
 | 72 | -- Normality
 | 
 | 73 | dece020 apply   1234567890123456   -> #263934b9c1e28e56
 | 
 | 74 | dece021 apply  -1234567890123456   -> #a63934b9c1e28e56
 | 
 | 75 | dece022 apply   1234.567890123456  -> #260934b9c1e28e56
 | 
 | 76 | dece023 apply  #260934b9c1e28e56   -> 1234.567890123456
 | 
 | 77 | dece024 apply   1111111111111111   -> #2638912449124491
 | 
 | 78 | dece025 apply   9999999999999999   -> #6e38ff3fcff3fcff
 | 
 | 79 | 
 | 
 | 80 | -- Nmax and similar
 | 
 | 81 | dece031 apply   9999999999999999E+369   -> #77fcff3fcff3fcff
 | 
 | 82 | dece032 apply   9.999999999999999E+384  -> #77fcff3fcff3fcff
 | 
 | 83 | dece033 apply   #77fcff3fcff3fcff       -> 9.999999999999999E+384
 | 
 | 84 | dece034 apply   1.234567890123456E+384  -> #47fd34b9c1e28e56
 | 
 | 85 | dece035 apply   #47fd34b9c1e28e56       -> 1.234567890123456E+384
 | 
 | 86 | -- fold-downs (more below)
 | 
 | 87 | dece036 apply   1.23E+384               -> #47fd300000000000 Clamped
 | 
 | 88 | dece037 apply   #47fd300000000000       -> 1.230000000000000E+384
 | 
 | 89 | decd038 apply   1E+384                  -> #47fc000000000000 Clamped
 | 
 | 90 | decd039 apply   #47fc000000000000       -> 1.000000000000000E+384
 | 
 | 91 | 
 | 
 | 92 | decd051 apply   12345                   -> #22380000000049c5
 | 
 | 93 | decd052 apply   #22380000000049c5       -> 12345
 | 
 | 94 | decd053 apply   1234                    -> #2238000000000534
 | 
 | 95 | decd054 apply   #2238000000000534       -> 1234
 | 
 | 96 | decd055 apply   123                     -> #22380000000000a3
 | 
 | 97 | decd056 apply   #22380000000000a3       -> 123
 | 
 | 98 | decd057 apply   12                      -> #2238000000000012
 | 
 | 99 | decd058 apply   #2238000000000012       -> 12
 | 
 | 100 | decd059 apply   1                       -> #2238000000000001
 | 
 | 101 | decd060 apply   #2238000000000001       -> 1
 | 
 | 102 | decd061 apply   1.23                    -> #22300000000000a3
 | 
 | 103 | decd062 apply   #22300000000000a3       -> 1.23
 | 
 | 104 | decd063 apply   123.45                  -> #22300000000049c5
 | 
 | 105 | decd064 apply   #22300000000049c5       -> 123.45
 | 
 | 106 | 
 | 
 | 107 | -- Nmin and below
 | 
 | 108 | decd071 apply   1E-383                  -> #003c000000000001
 | 
 | 109 | decd072 apply   #003c000000000001       -> 1E-383
 | 
 | 110 | decd073 apply   1.000000000000000E-383  -> #0400000000000000
 | 
 | 111 | decd074 apply   #0400000000000000       -> 1.000000000000000E-383
 | 
 | 112 | decd075 apply   1.000000000000001E-383  -> #0400000000000001
 | 
 | 113 | decd076 apply   #0400000000000001       -> 1.000000000000001E-383
 | 
 | 114 | 
 | 
 | 115 | decd077 apply   0.100000000000000E-383  -> #0000800000000000      Subnormal
 | 
 | 116 | decd078 apply   #0000800000000000       -> 1.00000000000000E-384  Subnormal
 | 
 | 117 | decd079 apply   0.000000000000010E-383  -> #0000000000000010      Subnormal
 | 
 | 118 | decd080 apply   #0000000000000010       -> 1.0E-397               Subnormal
 | 
 | 119 | decd081 apply   0.00000000000001E-383   -> #0004000000000001      Subnormal
 | 
 | 120 | decd082 apply   #0004000000000001       -> 1E-397                 Subnormal
 | 
 | 121 | decd083 apply   0.000000000000001E-383  -> #0000000000000001      Subnormal
 | 
 | 122 | decd084 apply   #0000000000000001       -> 1E-398                 Subnormal
 | 
 | 123 | -- next is smallest all-nines
 | 
 | 124 | decd085 apply   9999999999999999E-398   -> #6400ff3fcff3fcff
 | 
 | 125 | decd086 apply   #6400ff3fcff3fcff       -> 9.999999999999999E-383
 | 
 | 126 | -- and a problematic divide result
 | 
 | 127 | decd088 apply   1.111111111111111E-383  -> #0400912449124491
 | 
 | 128 | decd089 apply   #0400912449124491       -> 1.111111111111111E-383
 | 
 | 129 | 
 | 
 | 130 | -- forties
 | 
 | 131 | decd090 apply        40                -> #2238000000000040
 | 
 | 132 | decd091 apply        39.99             -> #2230000000000cff
 | 
 | 133 | 
 | 
 | 134 | -- underflows cannot be tested as all LHS exact
 | 
 | 135 | 
 | 
 | 136 | -- Same again, negatives
 | 
 | 137 | -- Nmax and similar
 | 
 | 138 | decd122 apply  -9.999999999999999E+384  -> #f7fcff3fcff3fcff
 | 
 | 139 | decd123 apply   #f7fcff3fcff3fcff       -> -9.999999999999999E+384
 | 
 | 140 | decd124 apply  -1.234567890123456E+384  -> #c7fd34b9c1e28e56
 | 
 | 141 | decd125 apply   #c7fd34b9c1e28e56       -> -1.234567890123456E+384
 | 
 | 142 | -- fold-downs (more below)
 | 
 | 143 | decd130 apply  -1.23E+384               -> #c7fd300000000000 Clamped
 | 
 | 144 | decd131 apply   #c7fd300000000000       -> -1.230000000000000E+384
 | 
 | 145 | decd132 apply  -1E+384                  -> #c7fc000000000000 Clamped
 | 
 | 146 | decd133 apply   #c7fc000000000000       -> -1.000000000000000E+384
 | 
 | 147 | 
 | 
 | 148 | -- overflows
 | 
 | 149 | decd151 apply  -12345                   -> #a2380000000049c5
 | 
 | 150 | decd152 apply   #a2380000000049c5       -> -12345
 | 
 | 151 | decd153 apply  -1234                    -> #a238000000000534
 | 
 | 152 | decd154 apply   #a238000000000534       -> -1234
 | 
 | 153 | decd155 apply  -123                     -> #a2380000000000a3
 | 
 | 154 | decd156 apply   #a2380000000000a3       -> -123
 | 
 | 155 | decd157 apply  -12                      -> #a238000000000012
 | 
 | 156 | decd158 apply   #a238000000000012       -> -12
 | 
 | 157 | decd159 apply  -1                       -> #a238000000000001
 | 
 | 158 | decd160 apply   #a238000000000001       -> -1
 | 
 | 159 | decd161 apply  -1.23                    -> #a2300000000000a3
 | 
 | 160 | decd162 apply   #a2300000000000a3       -> -1.23
 | 
 | 161 | decd163 apply  -123.45                  -> #a2300000000049c5
 | 
 | 162 | decd164 apply   #a2300000000049c5       -> -123.45
 | 
 | 163 | 
 | 
 | 164 | -- Nmin and below
 | 
 | 165 | decd171 apply  -1E-383                  -> #803c000000000001
 | 
 | 166 | decd172 apply   #803c000000000001       -> -1E-383
 | 
 | 167 | decd173 apply  -1.000000000000000E-383  -> #8400000000000000
 | 
 | 168 | decd174 apply   #8400000000000000       -> -1.000000000000000E-383
 | 
 | 169 | decd175 apply  -1.000000000000001E-383  -> #8400000000000001
 | 
 | 170 | decd176 apply   #8400000000000001       -> -1.000000000000001E-383
 | 
 | 171 | 
 | 
 | 172 | decd177 apply  -0.100000000000000E-383  -> #8000800000000000       Subnormal
 | 
 | 173 | decd178 apply   #8000800000000000       -> -1.00000000000000E-384  Subnormal
 | 
 | 174 | decd179 apply  -0.000000000000010E-383  -> #8000000000000010       Subnormal
 | 
 | 175 | decd180 apply   #8000000000000010       -> -1.0E-397               Subnormal
 | 
 | 176 | decd181 apply  -0.00000000000001E-383   -> #8004000000000001       Subnormal
 | 
 | 177 | decd182 apply   #8004000000000001       -> -1E-397                 Subnormal
 | 
 | 178 | decd183 apply  -0.000000000000001E-383  -> #8000000000000001       Subnormal
 | 
 | 179 | decd184 apply   #8000000000000001       -> -1E-398                 Subnormal
 | 
 | 180 | -- next is smallest all-nines
 | 
 | 181 | decd185 apply   -9999999999999999E-398   -> #e400ff3fcff3fcff
 | 
 | 182 | decd186 apply   #e400ff3fcff3fcff       -> -9.999999999999999E-383
 | 
 | 183 | -- and a tricky subnormal
 | 
 | 184 | decd187 apply   1.11111111111524E-384    -> #00009124491246a4      Subnormal
 | 
 | 185 | decd188 apply   #00009124491246a4        -> 1.11111111111524E-384  Subnormal
 | 
 | 186 | 
 | 
 | 187 | -- near-underflows
 | 
 | 188 | decd189 apply   -1e-398                 -> #8000000000000001  Subnormal
 | 
 | 189 | decd190 apply   -1.0e-398               -> #8000000000000001  Subnormal Rounded
 | 
 | 190 | 
 | 
 | 191 | -- zeros
 | 
 | 192 | decd401 apply   0E-500                  -> #0000000000000000  Clamped
 | 
 | 193 | decd402 apply   0E-400                  -> #0000000000000000  Clamped
 | 
 | 194 | decd403 apply   0E-398                  -> #0000000000000000
 | 
 | 195 | decd404 apply   #0000000000000000       -> 0E-398
 | 
 | 196 | decd405 apply   0.000000000000000E-383  -> #0000000000000000
 | 
 | 197 | decd406 apply   #0000000000000000       -> 0E-398
 | 
 | 198 | decd407 apply   0E-2                    -> #2230000000000000
 | 
 | 199 | decd408 apply   #2230000000000000       -> 0.00
 | 
 | 200 | decd409 apply   0                       -> #2238000000000000
 | 
 | 201 | decd410 apply   #2238000000000000       -> 0
 | 
 | 202 | decd411 apply   0E+3                    -> #2244000000000000
 | 
 | 203 | decd412 apply   #2244000000000000       -> 0E+3
 | 
 | 204 | decd413 apply   0E+369                  -> #43fc000000000000
 | 
 | 205 | decd414 apply   #43fc000000000000       -> 0E+369
 | 
 | 206 | -- clamped zeros...
 | 
 | 207 | decd415 apply   0E+370                  -> #43fc000000000000  Clamped
 | 
 | 208 | decd416 apply   #43fc000000000000       -> 0E+369
 | 
 | 209 | decd417 apply   0E+384                  -> #43fc000000000000  Clamped
 | 
 | 210 | decd418 apply   #43fc000000000000       -> 0E+369
 | 
 | 211 | decd419 apply   0E+400                  -> #43fc000000000000  Clamped
 | 
 | 212 | decd420 apply   #43fc000000000000       -> 0E+369
 | 
 | 213 | decd421 apply   0E+500                  -> #43fc000000000000  Clamped
 | 
 | 214 | decd422 apply   #43fc000000000000       -> 0E+369
 | 
 | 215 | 
 | 
 | 216 | -- negative zeros
 | 
 | 217 | decd431 apply   -0E-400                 -> #8000000000000000  Clamped
 | 
 | 218 | decd432 apply   -0E-400                 -> #8000000000000000  Clamped
 | 
 | 219 | decd433 apply   -0E-398                 -> #8000000000000000
 | 
 | 220 | decd434 apply   #8000000000000000       -> -0E-398
 | 
 | 221 | decd435 apply   -0.000000000000000E-383 -> #8000000000000000
 | 
 | 222 | decd436 apply   #8000000000000000       -> -0E-398
 | 
 | 223 | decd437 apply   -0E-2                   -> #a230000000000000
 | 
 | 224 | decd438 apply   #a230000000000000       -> -0.00
 | 
 | 225 | decd439 apply   -0                      -> #a238000000000000
 | 
 | 226 | decd440 apply   #a238000000000000       -> -0
 | 
 | 227 | decd441 apply   -0E+3                   -> #a244000000000000
 | 
 | 228 | decd442 apply   #a244000000000000       -> -0E+3
 | 
 | 229 | decd443 apply   -0E+369                 -> #c3fc000000000000
 | 
 | 230 | decd444 apply   #c3fc000000000000       -> -0E+369
 | 
 | 231 | -- clamped zeros...
 | 
 | 232 | decd445 apply   -0E+370                 -> #c3fc000000000000  Clamped
 | 
 | 233 | decd446 apply   #c3fc000000000000       -> -0E+369
 | 
 | 234 | decd447 apply   -0E+384                 -> #c3fc000000000000  Clamped
 | 
 | 235 | decd448 apply   #c3fc000000000000       -> -0E+369
 | 
 | 236 | decd449 apply   -0E+400                 -> #c3fc000000000000  Clamped
 | 
 | 237 | decd450 apply   #c3fc000000000000       -> -0E+369
 | 
 | 238 | decd451 apply   -0E+500                 -> #c3fc000000000000  Clamped
 | 
 | 239 | decd452 apply   #c3fc000000000000       -> -0E+369
 | 
 | 240 | 
 | 
 | 241 | -- exponents
 | 
 | 242 | decd460 apply   #225c000000000007 -> 7E+9
 | 
 | 243 | decd461 apply   7E+9  -> #225c000000000007
 | 
 | 244 | decd462 apply   #23c4000000000007 -> 7E+99
 | 
 | 245 | decd463 apply   7E+99 -> #23c4000000000007
 | 
 | 246 | 
 | 
 | 247 | -- Specials
 | 
 | 248 | decd500 apply   Infinity          -> #7800000000000000
 | 
 | 249 | decd501 apply   #7878787878787878 -> #7800000000000000
 | 
 | 250 | decd502 apply   #7800000000000000 -> Infinity
 | 
 | 251 | decd503 apply   #7979797979797979 -> #7800000000000000
 | 
 | 252 | decd504 apply   #7900000000000000 -> Infinity
 | 
 | 253 | decd505 apply   #7a7a7a7a7a7a7a7a -> #7800000000000000
 | 
 | 254 | decd506 apply   #7a00000000000000 -> Infinity
 | 
 | 255 | decd507 apply   #7b7b7b7b7b7b7b7b -> #7800000000000000
 | 
 | 256 | decd508 apply   #7b00000000000000 -> Infinity
 | 
 | 257 | 
 | 
 | 258 | decd509 apply   NaN               -> #7c00000000000000
 | 
 | 259 | decd510 apply   #7c7c7c7c7c7c7c7c -> #7c007c7c7c7c7c7c
 | 
 | 260 | decd511 apply   #7c00000000000000 -> NaN
 | 
 | 261 | decd512 apply   #7d7d7d7d7d7d7d7d -> #7c017d7d7d7d7d7d
 | 
 | 262 | decd513 apply   #7d00000000000000 -> NaN
 | 
 | 263 | decd514 apply   #7e7e7e7e7e7e7e7e -> #7e007e7e7e7e7c7e
 | 
 | 264 | decd515 apply   #7e00000000000000 -> sNaN
 | 
 | 265 | decd516 apply   #7f7f7f7f7f7f7f7f -> #7e007f7f7f7f7c7f
 | 
 | 266 | decd517 apply   #7f00000000000000 -> sNaN
 | 
 | 267 | decd518 apply   #7fffffffffffffff -> sNaN999999999999999
 | 
 | 268 | decd519 apply   #7fffffffffffffff -> #7e00ff3fcff3fcff
 | 
 | 269 | 
 | 
 | 270 | decd520 apply   -Infinity         -> #f800000000000000
 | 
 | 271 | decd521 apply   #f878787878787878 -> #f800000000000000
 | 
 | 272 | decd522 apply   #f800000000000000 -> -Infinity
 | 
 | 273 | decd523 apply   #f979797979797979 -> #f800000000000000
 | 
 | 274 | decd524 apply   #f900000000000000 -> -Infinity
 | 
 | 275 | decd525 apply   #fa7a7a7a7a7a7a7a -> #f800000000000000
 | 
 | 276 | decd526 apply   #fa00000000000000 -> -Infinity
 | 
 | 277 | decd527 apply   #fb7b7b7b7b7b7b7b -> #f800000000000000
 | 
 | 278 | decd528 apply   #fb00000000000000 -> -Infinity
 | 
 | 279 | 
 | 
 | 280 | decd529 apply   -NaN              -> #fc00000000000000
 | 
 | 281 | decd530 apply   #fc7c7c7c7c7c7c7c -> #fc007c7c7c7c7c7c
 | 
 | 282 | decd531 apply   #fc00000000000000 -> -NaN
 | 
 | 283 | decd532 apply   #fd7d7d7d7d7d7d7d -> #fc017d7d7d7d7d7d
 | 
 | 284 | decd533 apply   #fd00000000000000 -> -NaN
 | 
 | 285 | decd534 apply   #fe7e7e7e7e7e7e7e -> #fe007e7e7e7e7c7e
 | 
 | 286 | decd535 apply   #fe00000000000000 -> -sNaN
 | 
 | 287 | decd536 apply   #ff7f7f7f7f7f7f7f -> #fe007f7f7f7f7c7f
 | 
 | 288 | decd537 apply   #ff00000000000000 -> -sNaN
 | 
 | 289 | decd538 apply   #ffffffffffffffff -> -sNaN999999999999999
 | 
 | 290 | decd539 apply   #ffffffffffffffff -> #fe00ff3fcff3fcff
 | 
 | 291 | 
 | 
 | 292 | -- diagnostic NaNs
 | 
 | 293 | decd540 apply   NaN                 -> #7c00000000000000
 | 
 | 294 | decd541 apply   NaN0                -> #7c00000000000000
 | 
 | 295 | decd542 apply   NaN1                -> #7c00000000000001
 | 
 | 296 | decd543 apply   NaN12               -> #7c00000000000012
 | 
 | 297 | decd544 apply   NaN79               -> #7c00000000000079
 | 
 | 298 | decd545 apply   NaN12345            -> #7c000000000049c5
 | 
 | 299 | decd546 apply   NaN123456           -> #7c00000000028e56
 | 
 | 300 | decd547 apply   NaN799799           -> #7c000000000f7fdf
 | 
 | 301 | decd548 apply   NaN799799799799799  -> #7c03dff7fdff7fdf
 | 
 | 302 | decd549 apply   NaN999999999999999  -> #7c00ff3fcff3fcff
 | 
 | 303 | -- too many digits
 | 
 | 304 | 
 | 
 | 305 | -- fold-down full sequence
 | 
 | 306 | decd601 apply   1E+384                  -> #47fc000000000000 Clamped
 | 
 | 307 | decd602 apply   #47fc000000000000       -> 1.000000000000000E+384
 | 
 | 308 | decd603 apply   1E+383                  -> #43fc800000000000 Clamped
 | 
 | 309 | decd604 apply   #43fc800000000000       -> 1.00000000000000E+383
 | 
 | 310 | decd605 apply   1E+382                  -> #43fc100000000000 Clamped
 | 
 | 311 | decd606 apply   #43fc100000000000       -> 1.0000000000000E+382
 | 
 | 312 | decd607 apply   1E+381                  -> #43fc010000000000 Clamped
 | 
 | 313 | decd608 apply   #43fc010000000000       -> 1.000000000000E+381
 | 
 | 314 | decd609 apply   1E+380                  -> #43fc002000000000 Clamped
 | 
 | 315 | decd610 apply   #43fc002000000000       -> 1.00000000000E+380
 | 
 | 316 | decd611 apply   1E+379                  -> #43fc000400000000 Clamped
 | 
 | 317 | decd612 apply   #43fc000400000000       -> 1.0000000000E+379
 | 
 | 318 | decd613 apply   1E+378                  -> #43fc000040000000 Clamped
 | 
 | 319 | decd614 apply   #43fc000040000000       -> 1.000000000E+378
 | 
 | 320 | decd615 apply   1E+377                  -> #43fc000008000000 Clamped
 | 
 | 321 | decd616 apply   #43fc000008000000       -> 1.00000000E+377
 | 
 | 322 | decd617 apply   1E+376                  -> #43fc000001000000 Clamped
 | 
 | 323 | decd618 apply   #43fc000001000000       -> 1.0000000E+376
 | 
 | 324 | decd619 apply   1E+375                  -> #43fc000000100000 Clamped
 | 
 | 325 | decd620 apply   #43fc000000100000       -> 1.000000E+375
 | 
 | 326 | decd621 apply   1E+374                  -> #43fc000000020000 Clamped
 | 
 | 327 | decd622 apply   #43fc000000020000       -> 1.00000E+374
 | 
 | 328 | decd623 apply   1E+373                  -> #43fc000000004000 Clamped
 | 
 | 329 | decd624 apply   #43fc000000004000       -> 1.0000E+373
 | 
 | 330 | decd625 apply   1E+372                  -> #43fc000000000400 Clamped
 | 
 | 331 | decd626 apply   #43fc000000000400       -> 1.000E+372
 | 
 | 332 | decd627 apply   1E+371                  -> #43fc000000000080 Clamped
 | 
 | 333 | decd628 apply   #43fc000000000080       -> 1.00E+371
 | 
 | 334 | decd629 apply   1E+370                  -> #43fc000000000010 Clamped
 | 
 | 335 | decd630 apply   #43fc000000000010       -> 1.0E+370
 | 
 | 336 | decd631 apply   1E+369                  -> #43fc000000000001
 | 
 | 337 | decd632 apply   #43fc000000000001       -> 1E+369
 | 
 | 338 | decd633 apply   1E+368                  -> #43f8000000000001
 | 
 | 339 | decd634 apply   #43f8000000000001       -> 1E+368
 | 
 | 340 | -- same with 9s
 | 
 | 341 | decd641 apply   9E+384                  -> #77fc000000000000 Clamped
 | 
 | 342 | decd642 apply   #77fc000000000000       -> 9.000000000000000E+384
 | 
 | 343 | decd643 apply   9E+383                  -> #43fc8c0000000000 Clamped
 | 
 | 344 | decd644 apply   #43fc8c0000000000       -> 9.00000000000000E+383
 | 
 | 345 | decd645 apply   9E+382                  -> #43fc1a0000000000 Clamped
 | 
 | 346 | decd646 apply   #43fc1a0000000000       -> 9.0000000000000E+382
 | 
 | 347 | decd647 apply   9E+381                  -> #43fc090000000000 Clamped
 | 
 | 348 | decd648 apply   #43fc090000000000       -> 9.000000000000E+381
 | 
 | 349 | decd649 apply   9E+380                  -> #43fc002300000000 Clamped
 | 
 | 350 | decd650 apply   #43fc002300000000       -> 9.00000000000E+380
 | 
 | 351 | decd651 apply   9E+379                  -> #43fc000680000000 Clamped
 | 
 | 352 | decd652 apply   #43fc000680000000       -> 9.0000000000E+379
 | 
 | 353 | decd653 apply   9E+378                  -> #43fc000240000000 Clamped
 | 
 | 354 | decd654 apply   #43fc000240000000       -> 9.000000000E+378
 | 
 | 355 | decd655 apply   9E+377                  -> #43fc000008c00000 Clamped
 | 
 | 356 | decd656 apply   #43fc000008c00000       -> 9.00000000E+377
 | 
 | 357 | decd657 apply   9E+376                  -> #43fc000001a00000 Clamped
 | 
 | 358 | decd658 apply   #43fc000001a00000       -> 9.0000000E+376
 | 
 | 359 | decd659 apply   9E+375                  -> #43fc000000900000 Clamped
 | 
 | 360 | decd660 apply   #43fc000000900000       -> 9.000000E+375
 | 
 | 361 | decd661 apply   9E+374                  -> #43fc000000023000 Clamped
 | 
 | 362 | decd662 apply   #43fc000000023000       -> 9.00000E+374
 | 
 | 363 | decd663 apply   9E+373                  -> #43fc000000006800 Clamped
 | 
 | 364 | decd664 apply   #43fc000000006800       -> 9.0000E+373
 | 
 | 365 | decd665 apply   9E+372                  -> #43fc000000002400 Clamped
 | 
 | 366 | decd666 apply   #43fc000000002400       -> 9.000E+372
 | 
 | 367 | decd667 apply   9E+371                  -> #43fc00000000008c Clamped
 | 
 | 368 | decd668 apply   #43fc00000000008c       -> 9.00E+371
 | 
 | 369 | decd669 apply   9E+370                  -> #43fc00000000001a Clamped
 | 
 | 370 | decd670 apply   #43fc00000000001a       -> 9.0E+370
 | 
 | 371 | decd671 apply   9E+369                  -> #43fc000000000009
 | 
 | 372 | decd672 apply   #43fc000000000009       -> 9E+369
 | 
 | 373 | decd673 apply   9E+368                  -> #43f8000000000009
 | 
 | 374 | decd674 apply   #43f8000000000009       -> 9E+368
 | 
 | 375 | 
 | 
 | 376 | 
 | 
 | 377 | -- Selected DPD codes
 | 
 | 378 | decd700 apply   #2238000000000000       -> 0
 | 
 | 379 | decd701 apply   #2238000000000009       -> 9
 | 
 | 380 | decd702 apply   #2238000000000010       -> 10
 | 
 | 381 | decd703 apply   #2238000000000019       -> 19
 | 
 | 382 | decd704 apply   #2238000000000020       -> 20
 | 
 | 383 | decd705 apply   #2238000000000029       -> 29
 | 
 | 384 | decd706 apply   #2238000000000030       -> 30
 | 
 | 385 | decd707 apply   #2238000000000039       -> 39
 | 
 | 386 | decd708 apply   #2238000000000040       -> 40
 | 
 | 387 | decd709 apply   #2238000000000049       -> 49
 | 
 | 388 | decd710 apply   #2238000000000050       -> 50
 | 
 | 389 | decd711 apply   #2238000000000059       -> 59
 | 
 | 390 | decd712 apply   #2238000000000060       -> 60
 | 
 | 391 | decd713 apply   #2238000000000069       -> 69
 | 
 | 392 | decd714 apply   #2238000000000070       -> 70
 | 
 | 393 | decd715 apply   #2238000000000071       -> 71
 | 
 | 394 | decd716 apply   #2238000000000072       -> 72
 | 
 | 395 | decd717 apply   #2238000000000073       -> 73
 | 
 | 396 | decd718 apply   #2238000000000074       -> 74
 | 
 | 397 | decd719 apply   #2238000000000075       -> 75
 | 
 | 398 | decd720 apply   #2238000000000076       -> 76
 | 
 | 399 | decd721 apply   #2238000000000077       -> 77
 | 
 | 400 | decd722 apply   #2238000000000078       -> 78
 | 
 | 401 | decd723 apply   #2238000000000079       -> 79
 | 
 | 402 | 
 | 
 | 403 | decd725 apply   #223800000000029e       -> 994
 | 
 | 404 | decd726 apply   #223800000000029f       -> 995
 | 
 | 405 | decd727 apply   #22380000000002a0       -> 520
 | 
 | 406 | decd728 apply   #22380000000002a1       -> 521
 | 
 | 407 | -- from telco test data
 | 
 | 408 | decd730 apply   #2238000000000188       -> 308
 | 
 | 409 | decd731 apply   #22380000000001a3       -> 323
 | 
 | 410 | decd732 apply   #223800000000002a       ->  82
 | 
 | 411 | decd733 apply   #22380000000001a9       -> 329
 | 
 | 412 | decd734 apply   #2238000000000081       -> 101
 | 
 | 413 | decd735 apply   #22380000000002a2       -> 522
 | 
 | 414 | 
 | 
 | 415 | -- DPD: one of each of the huffman groups
 | 
 | 416 | decd740 apply   #22380000000003f7       -> 777
 | 
 | 417 | decd741 apply   #22380000000003f8       -> 778
 | 
 | 418 | decd742 apply   #22380000000003eb       -> 787
 | 
 | 419 | decd743 apply   #223800000000037d       -> 877
 | 
 | 420 | decd744 apply   #223800000000039f       -> 997
 | 
 | 421 | decd745 apply   #22380000000003bf       -> 979
 | 
 | 422 | decd746 apply   #22380000000003df       -> 799
 | 
 | 423 | decd747 apply   #223800000000006e       -> 888
 | 
 | 424 | 
 | 
 | 425 | -- DPD all-highs cases (includes the 24 redundant codes)
 | 
 | 426 | decd750 apply   #223800000000006e       -> 888
 | 
 | 427 | decd751 apply   #223800000000016e       -> 888
 | 
 | 428 | decd752 apply   #223800000000026e       -> 888
 | 
 | 429 | decd753 apply   #223800000000036e       -> 888
 | 
 | 430 | decd754 apply   #223800000000006f       -> 889
 | 
 | 431 | decd755 apply   #223800000000016f       -> 889
 | 
 | 432 | decd756 apply   #223800000000026f       -> 889
 | 
 | 433 | decd757 apply   #223800000000036f       -> 889
 | 
 | 434 | 
 | 
 | 435 | decd760 apply   #223800000000007e       -> 898
 | 
 | 436 | decd761 apply   #223800000000017e       -> 898
 | 
 | 437 | decd762 apply   #223800000000027e       -> 898
 | 
 | 438 | decd763 apply   #223800000000037e       -> 898
 | 
 | 439 | decd764 apply   #223800000000007f       -> 899
 | 
 | 440 | decd765 apply   #223800000000017f       -> 899
 | 
 | 441 | decd766 apply   #223800000000027f       -> 899
 | 
 | 442 | decd767 apply   #223800000000037f       -> 899
 | 
 | 443 | 
 | 
 | 444 | decd770 apply   #22380000000000ee       -> 988
 | 
 | 445 | decd771 apply   #22380000000001ee       -> 988
 | 
 | 446 | decd772 apply   #22380000000002ee       -> 988
 | 
 | 447 | decd773 apply   #22380000000003ee       -> 988
 | 
 | 448 | decd774 apply   #22380000000000ef       -> 989
 | 
 | 449 | decd775 apply   #22380000000001ef       -> 989
 | 
 | 450 | decd776 apply   #22380000000002ef       -> 989
 | 
 | 451 | decd777 apply   #22380000000003ef       -> 989
 | 
 | 452 | 
 | 
 | 453 | decd780 apply   #22380000000000fe       -> 998
 | 
 | 454 | decd781 apply   #22380000000001fe       -> 998
 | 
 | 455 | decd782 apply   #22380000000002fe       -> 998
 | 
 | 456 | decd783 apply   #22380000000003fe       -> 998
 | 
 | 457 | decd784 apply   #22380000000000ff       -> 999
 | 
 | 458 | decd785 apply   #22380000000001ff       -> 999
 | 
 | 459 | decd786 apply   #22380000000002ff       -> 999
 | 
 | 460 | decd787 apply   #22380000000003ff       -> 999
 | 
 | 461 | 
 | 
 | 462 | -- values around [u]int32 edges (zeros done earlier)
 | 
 | 463 | decd800 apply -2147483646  -> #a23800008c78af46
 | 
 | 464 | decd801 apply -2147483647  -> #a23800008c78af47
 | 
 | 465 | decd802 apply -2147483648  -> #a23800008c78af48
 | 
 | 466 | decd803 apply -2147483649  -> #a23800008c78af49
 | 
 | 467 | decd804 apply  2147483646  -> #223800008c78af46
 | 
 | 468 | decd805 apply  2147483647  -> #223800008c78af47
 | 
 | 469 | decd806 apply  2147483648  -> #223800008c78af48
 | 
 | 470 | decd807 apply  2147483649  -> #223800008c78af49
 | 
 | 471 | decd808 apply  4294967294  -> #2238000115afb55a
 | 
 | 472 | decd809 apply  4294967295  -> #2238000115afb55b
 | 
 | 473 | decd810 apply  4294967296  -> #2238000115afb57a
 | 
 | 474 | decd811 apply  4294967297  -> #2238000115afb57b
 | 
 | 475 | 
 | 
 | 476 | decd820 apply  #a23800008c78af46 -> -2147483646
 | 
 | 477 | decd821 apply  #a23800008c78af47 -> -2147483647
 | 
 | 478 | decd822 apply  #a23800008c78af48 -> -2147483648
 | 
 | 479 | decd823 apply  #a23800008c78af49 -> -2147483649
 | 
 | 480 | decd824 apply  #223800008c78af46 ->  2147483646
 | 
 | 481 | decd825 apply  #223800008c78af47 ->  2147483647
 | 
 | 482 | decd826 apply  #223800008c78af48 ->  2147483648
 | 
 | 483 | decd827 apply  #223800008c78af49 ->  2147483649
 | 
 | 484 | decd828 apply  #2238000115afb55a ->  4294967294
 | 
 | 485 | decd829 apply  #2238000115afb55b ->  4294967295
 | 
 | 486 | decd830 apply  #2238000115afb57a ->  4294967296
 | 
 | 487 | decd831 apply  #2238000115afb57b ->  4294967297
 | 
 | 488 | 
 | 
 | 489 | -- for narrowing
 | 
 | 490 | decd840 apply  #2870000000000000 ->  2.000000000000000E-99
 |