+++ /dev/null
-------------------------------------------------------------------------\r
--- ddScalebB.decTest -- scale a decDouble by powers of 10 --\r
--- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --\r
-------------------------------------------------------------------------\r
--- Please see the document "General Decimal Arithmetic Testcases" --\r
--- at http://www2.hursley.ibm.com/decimal for the description of --\r
--- these testcases. --\r
--- --\r
--- These testcases are experimental ('beta' versions), and they --\r
--- may contain errors. They are offered on an as-is basis. In --\r
--- particular, achieving the same results as the tests here is not --\r
--- a guarantee that an implementation complies with any Standard --\r
--- or specification. The tests are not exhaustive. --\r
--- --\r
--- Please send comments, suggestions, and corrections to the author: --\r
--- Mike Cowlishaw, IBM Fellow --\r
--- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r
--- mfc@uk.ibm.com --\r
-------------------------------------------------------------------------\r
-version: 2.59\r
-\r
-precision: 16\r
-maxExponent: 384\r
-minExponent: -383\r
-extended: 1\r
-clamp: 1\r
-rounding: half_even\r
-\r
--- Max |rhs| is 2*(384+16) = 800\r
-\r
--- Sanity checks\r
-ddscb001 scaleb 7.50 10 -> 7.50E+10\r
-ddscb002 scaleb 7.50 3 -> 7.50E+3\r
-ddscb003 scaleb 7.50 2 -> 750\r
-ddscb004 scaleb 7.50 1 -> 75.0\r
-ddscb005 scaleb 7.50 0 -> 7.50\r
-ddscb006 scaleb 7.50 -1 -> 0.750\r
-ddscb007 scaleb 7.50 -2 -> 0.0750\r
-ddscb008 scaleb 7.50 -10 -> 7.50E-10\r
-ddscb009 scaleb -7.50 3 -> -7.50E+3\r
-ddscb010 scaleb -7.50 2 -> -750\r
-ddscb011 scaleb -7.50 1 -> -75.0\r
-ddscb012 scaleb -7.50 0 -> -7.50\r
-ddscb013 scaleb -7.50 -1 -> -0.750\r
-\r
--- Infinities\r
-ddscb014 scaleb Infinity 1 -> Infinity\r
-ddscb015 scaleb -Infinity 2 -> -Infinity\r
-ddscb016 scaleb Infinity -1 -> Infinity\r
-ddscb017 scaleb -Infinity -2 -> -Infinity\r
-\r
--- Next two are somewhat undefined in 754r; treat as non-integer\r
-ddscb018 scaleb 10 Infinity -> NaN Invalid_operation\r
-ddscb019 scaleb 10 -Infinity -> NaN Invalid_operation\r
-\r
--- NaNs are undefined in 754r; assume usual processing\r
--- NaNs, 0 payload\r
-ddscb021 scaleb NaN 1 -> NaN\r
-ddscb022 scaleb -NaN -1 -> -NaN\r
-ddscb023 scaleb sNaN 1 -> NaN Invalid_operation\r
-ddscb024 scaleb -sNaN 1 -> -NaN Invalid_operation\r
-ddscb025 scaleb 4 NaN -> NaN\r
-ddscb026 scaleb -Inf -NaN -> -NaN\r
-ddscb027 scaleb 4 sNaN -> NaN Invalid_operation\r
-ddscb028 scaleb Inf -sNaN -> -NaN Invalid_operation\r
-\r
--- non-integer RHS\r
-ddscb030 scaleb 1.23 1 -> 12.3\r
-ddscb031 scaleb 1.23 1.00 -> NaN Invalid_operation\r
-ddscb032 scaleb 1.23 1.1 -> NaN Invalid_operation\r
-ddscb033 scaleb 1.23 1.01 -> NaN Invalid_operation\r
-ddscb034 scaleb 1.23 0.01 -> NaN Invalid_operation\r
-ddscb035 scaleb 1.23 0.11 -> NaN Invalid_operation\r
-ddscb036 scaleb 1.23 0.999999999 -> NaN Invalid_operation\r
-ddscb037 scaleb 1.23 -1 -> 0.123\r
-ddscb038 scaleb 1.23 -1.00 -> NaN Invalid_operation\r
-ddscb039 scaleb 1.23 -1.1 -> NaN Invalid_operation\r
-ddscb040 scaleb 1.23 -1.01 -> NaN Invalid_operation\r
-ddscb041 scaleb 1.23 -0.01 -> NaN Invalid_operation\r
-ddscb042 scaleb 1.23 -0.11 -> NaN Invalid_operation\r
-ddscb043 scaleb 1.23 -0.999999999 -> NaN Invalid_operation\r
-ddscb044 scaleb 1.23 0.1 -> NaN Invalid_operation\r
-ddscb045 scaleb 1.23 1E+1 -> NaN Invalid_operation\r
-ddscb046 scaleb 1.23 1.1234E+6 -> NaN Invalid_operation\r
-ddscb047 scaleb 1.23 1.123E+4 -> NaN Invalid_operation\r
-\r
--- out-of range RHS\r
-ddscb120 scaleb 1.23 799 -> Infinity Overflow Inexact Rounded\r
-ddscb121 scaleb 1.23 800 -> Infinity Overflow Inexact Rounded\r
-ddscb122 scaleb 1.23 801 -> NaN Invalid_operation\r
-ddscb123 scaleb 1.23 802 -> NaN Invalid_operation\r
-ddscb124 scaleb 1.23 -799 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-ddscb125 scaleb 1.23 -800 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-ddscb126 scaleb 1.23 -801 -> NaN Invalid_operation\r
-ddscb127 scaleb 1.23 -802 -> NaN Invalid_operation\r
-\r
--- NaNs, non-0 payload\r
--- propagating NaNs\r
-ddscb861 scaleb NaN01 -Inf -> NaN1\r
-ddscb862 scaleb -NaN02 -1000 -> -NaN2\r
-ddscb863 scaleb NaN03 1000 -> NaN3\r
-ddscb864 scaleb NaN04 Inf -> NaN4\r
-ddscb865 scaleb NaN05 NaN61 -> NaN5\r
-ddscb866 scaleb -Inf -NaN71 -> -NaN71\r
-ddscb867 scaleb -1000 NaN81 -> NaN81\r
-ddscb868 scaleb 1000 NaN91 -> NaN91\r
-ddscb869 scaleb Inf NaN101 -> NaN101\r
-ddscb871 scaleb sNaN011 -Inf -> NaN11 Invalid_operation\r
-ddscb872 scaleb sNaN012 -1000 -> NaN12 Invalid_operation\r
-ddscb873 scaleb -sNaN013 1000 -> -NaN13 Invalid_operation\r
-ddscb874 scaleb sNaN014 NaN171 -> NaN14 Invalid_operation\r
-ddscb875 scaleb sNaN015 sNaN181 -> NaN15 Invalid_operation\r
-ddscb876 scaleb NaN016 sNaN191 -> NaN191 Invalid_operation\r
-ddscb877 scaleb -Inf sNaN201 -> NaN201 Invalid_operation\r
-ddscb878 scaleb -1000 sNaN211 -> NaN211 Invalid_operation\r
-ddscb879 scaleb 1000 -sNaN221 -> -NaN221 Invalid_operation\r
-ddscb880 scaleb Inf sNaN231 -> NaN231 Invalid_operation\r
-ddscb881 scaleb NaN025 sNaN241 -> NaN241 Invalid_operation\r
-\r
--- finites\r
-ddscb051 scaleb 7 -2 -> 0.07\r
-ddscb052 scaleb -7 -2 -> -0.07\r
-ddscb053 scaleb 75 -2 -> 0.75\r
-ddscb054 scaleb -75 -2 -> -0.75\r
-ddscb055 scaleb 7.50 -2 -> 0.0750\r
-ddscb056 scaleb -7.50 -2 -> -0.0750\r
-ddscb057 scaleb 7.500 -2 -> 0.07500\r
-ddscb058 scaleb -7.500 -2 -> -0.07500\r
-ddscb061 scaleb 7 -1 -> 0.7\r
-ddscb062 scaleb -7 -1 -> -0.7\r
-ddscb063 scaleb 75 -1 -> 7.5\r
-ddscb064 scaleb -75 -1 -> -7.5\r
-ddscb065 scaleb 7.50 -1 -> 0.750\r
-ddscb066 scaleb -7.50 -1 -> -0.750\r
-ddscb067 scaleb 7.500 -1 -> 0.7500\r
-ddscb068 scaleb -7.500 -1 -> -0.7500\r
-ddscb071 scaleb 7 0 -> 7\r
-ddscb072 scaleb -7 0 -> -7\r
-ddscb073 scaleb 75 0 -> 75\r
-ddscb074 scaleb -75 0 -> -75\r
-ddscb075 scaleb 7.50 0 -> 7.50\r
-ddscb076 scaleb -7.50 0 -> -7.50\r
-ddscb077 scaleb 7.500 0 -> 7.500\r
-ddscb078 scaleb -7.500 0 -> -7.500\r
-ddscb081 scaleb 7 1 -> 7E+1\r
-ddscb082 scaleb -7 1 -> -7E+1\r
-ddscb083 scaleb 75 1 -> 7.5E+2\r
-ddscb084 scaleb -75 1 -> -7.5E+2\r
-ddscb085 scaleb 7.50 1 -> 75.0\r
-ddscb086 scaleb -7.50 1 -> -75.0\r
-ddscb087 scaleb 7.500 1 -> 75.00\r
-ddscb088 scaleb -7.500 1 -> -75.00\r
-ddscb091 scaleb 7 2 -> 7E+2\r
-ddscb092 scaleb -7 2 -> -7E+2\r
-ddscb093 scaleb 75 2 -> 7.5E+3\r
-ddscb094 scaleb -75 2 -> -7.5E+3\r
-ddscb095 scaleb 7.50 2 -> 750\r
-ddscb096 scaleb -7.50 2 -> -750\r
-ddscb097 scaleb 7.500 2 -> 750.0\r
-ddscb098 scaleb -7.500 2 -> -750.0\r
-\r
--- zeros\r
-ddscb111 scaleb 0 1 -> 0E+1\r
-ddscb112 scaleb -0 2 -> -0E+2\r
-ddscb113 scaleb 0E+4 3 -> 0E+7\r
-ddscb114 scaleb -0E+4 4 -> -0E+8\r
-ddscb115 scaleb 0.0000 5 -> 0E+1\r
-ddscb116 scaleb -0.0000 6 -> -0E+2\r
-ddscb117 scaleb 0E-141 7 -> 0E-134\r
-ddscb118 scaleb -0E-141 8 -> -0E-133\r
-\r
--- Nmax, Nmin, Ntiny\r
-ddscb132 scaleb 9.999999999999999E+384 +384 -> Infinity Overflow Inexact Rounded\r
-ddscb133 scaleb 9.999999999999999E+384 +10 -> Infinity Overflow Inexact Rounded\r
-ddscb134 scaleb 9.999999999999999E+384 +1 -> Infinity Overflow Inexact Rounded\r
-ddscb135 scaleb 9.999999999999999E+384 0 -> 9.999999999999999E+384\r
-ddscb136 scaleb 9.999999999999999E+384 -1 -> 9.999999999999999E+383\r
-ddscb137 scaleb 1E-383 +1 -> 1E-382\r
-ddscb138 scaleb 1E-383 -0 -> 1E-383\r
-ddscb139 scaleb 1E-383 -1 -> 1E-384 Subnormal\r
-ddscb140 scaleb 1.000000000000000E-383 +1 -> 1.000000000000000E-382\r
-ddscb141 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383\r
-ddscb142 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded\r
-ddscb143 scaleb 1E-398 +1 -> 1E-397 Subnormal\r
-ddscb144 scaleb 1E-398 -0 -> 1E-398 Subnormal\r
-ddscb145 scaleb 1E-398 -1 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-\r
-ddscb150 scaleb -1E-398 +1 -> -1E-397 Subnormal\r
-ddscb151 scaleb -1E-398 -0 -> -1E-398 Subnormal\r
-ddscb152 scaleb -1E-398 -1 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-ddscb153 scaleb -1.000000000000000E-383 +1 -> -1.000000000000000E-382\r
-ddscb154 scaleb -1.000000000000000E-383 +0 -> -1.000000000000000E-383\r
-ddscb155 scaleb -1.000000000000000E-383 -1 -> -1.00000000000000E-384 Subnormal Rounded\r
-ddscb156 scaleb -1E-383 +1 -> -1E-382\r
-ddscb157 scaleb -1E-383 -0 -> -1E-383\r
-ddscb158 scaleb -1E-383 -1 -> -1E-384 Subnormal\r
-ddscb159 scaleb -9.999999999999999E+384 +1 -> -Infinity Overflow Inexact Rounded\r
-ddscb160 scaleb -9.999999999999999E+384 +0 -> -9.999999999999999E+384\r
-ddscb161 scaleb -9.999999999999999E+384 -1 -> -9.999999999999999E+383\r
-ddscb162 scaleb -9E+384 +1 -> -Infinity Overflow Inexact Rounded\r
-ddscb163 scaleb -1E+384 +1 -> -Infinity Overflow Inexact Rounded\r
-\r
--- some Origami\r
--- (these check that overflow is being done correctly)\r
-ddscb171 scaleb 1000E+365 +1 -> 1.000E+369\r
-ddscb172 scaleb 1000E+366 +1 -> 1.000E+370\r
-ddscb173 scaleb 1000E+367 +1 -> 1.000E+371\r
-ddscb174 scaleb 1000E+368 +1 -> 1.000E+372\r
-ddscb175 scaleb 1000E+369 +1 -> 1.0000E+373 Clamped\r
-ddscb176 scaleb 1000E+370 +1 -> 1.00000E+374 Clamped\r
-ddscb177 scaleb 1000E+371 +1 -> 1.000000E+375 Clamped\r
-ddscb178 scaleb 1000E+372 +1 -> 1.0000000E+376 Clamped\r
-ddscb179 scaleb 1000E+373 +1 -> 1.00000000E+377 Clamped\r
-ddscb180 scaleb 1000E+374 +1 -> 1.000000000E+378 Clamped\r
-ddscb181 scaleb 1000E+375 +1 -> 1.0000000000E+379 Clamped\r
-ddscb182 scaleb 1000E+376 +1 -> 1.00000000000E+380 Clamped\r
-ddscb183 scaleb 1000E+377 +1 -> 1.000000000000E+381 Clamped\r
-ddscb184 scaleb 1000E+378 +1 -> 1.0000000000000E+382 Clamped\r
-ddscb185 scaleb 1000E+379 +1 -> 1.00000000000000E+383 Clamped\r
-ddscb186 scaleb 1000E+380 +1 -> 1.000000000000000E+384 Clamped\r
-ddscb187 scaleb 1000E+381 +1 -> Infinity Overflow Inexact Rounded\r
-\r
--- and a few more subnormal truncations\r
--- (these check that underflow is being done correctly)\r
-ddscb201 scaleb 1.000000000000000E-383 0 -> 1.000000000000000E-383\r
-ddscb202 scaleb 1.000000000000000E-383 -1 -> 1.00000000000000E-384 Subnormal Rounded\r
-ddscb203 scaleb 1.000000000000000E-383 -2 -> 1.0000000000000E-385 Subnormal Rounded\r
-ddscb204 scaleb 1.000000000000000E-383 -3 -> 1.000000000000E-386 Subnormal Rounded\r
-ddscb205 scaleb 1.000000000000000E-383 -4 -> 1.00000000000E-387 Subnormal Rounded\r
-ddscb206 scaleb 1.000000000000000E-383 -5 -> 1.0000000000E-388 Subnormal Rounded\r
-ddscb207 scaleb 1.000000000000000E-383 -6 -> 1.000000000E-389 Subnormal Rounded\r
-ddscb208 scaleb 1.000000000000000E-383 -7 -> 1.00000000E-390 Subnormal Rounded\r
-ddscb209 scaleb 1.000000000000000E-383 -8 -> 1.0000000E-391 Subnormal Rounded\r
-ddscb210 scaleb 1.000000000000000E-383 -9 -> 1.000000E-392 Subnormal Rounded\r
-ddscb211 scaleb 1.000000000000000E-383 -10 -> 1.00000E-393 Subnormal Rounded\r
-ddscb212 scaleb 1.000000000000000E-383 -11 -> 1.0000E-394 Subnormal Rounded\r
-ddscb213 scaleb 1.000000000000000E-383 -12 -> 1.000E-395 Subnormal Rounded\r
-ddscb214 scaleb 1.000000000000000E-383 -13 -> 1.00E-396 Subnormal Rounded\r
-ddscb215 scaleb 1.000000000000000E-383 -14 -> 1.0E-397 Subnormal Rounded\r
-ddscb216 scaleb 1.000000000000000E-383 -15 -> 1E-398 Subnormal Rounded\r
-ddscb217 scaleb 1.000000000000000E-383 -16 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-ddscb218 scaleb 1.000000000000000E-383 -17 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped\r
-\r