17db96d56Sopenharmony_ci------------------------------------------------------------------------
27db96d56Sopenharmony_ci-- scaleb.decTest -- scale a number by powers of 10                   --
37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
47db96d56Sopenharmony_ci------------------------------------------------------------------------
57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases"     --
67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of      --
77db96d56Sopenharmony_ci-- these testcases.                                                   --
87db96d56Sopenharmony_ci--                                                                    --
97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they       --
107db96d56Sopenharmony_ci-- may contain errors.  They are offered on an as-is basis.  In       --
117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not    --
127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard      --
137db96d56Sopenharmony_ci-- or specification.  The tests are not exhaustive.                   --
147db96d56Sopenharmony_ci--                                                                    --
157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author:  --
167db96d56Sopenharmony_ci--   Mike Cowlishaw, IBM Fellow                                       --
177db96d56Sopenharmony_ci--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
187db96d56Sopenharmony_ci--   mfc@uk.ibm.com                                                   --
197db96d56Sopenharmony_ci------------------------------------------------------------------------
207db96d56Sopenharmony_civersion: 2.59
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ciextended:    1
237db96d56Sopenharmony_ciprecision:   9
247db96d56Sopenharmony_cirounding:    half_up
257db96d56Sopenharmony_cimaxExponent: 999
267db96d56Sopenharmony_ciminExponent: -999
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ci-- Max |rhs| is 2*(999+9) = 2016
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci-- Sanity checks
317db96d56Sopenharmony_ciscbx001 scaleb       7.50   10 -> 7.50E+10
327db96d56Sopenharmony_ciscbx002 scaleb       7.50    3 -> 7.50E+3
337db96d56Sopenharmony_ciscbx003 scaleb       7.50    2 -> 750
347db96d56Sopenharmony_ciscbx004 scaleb       7.50    1 -> 75.0
357db96d56Sopenharmony_ciscbx005 scaleb       7.50    0 -> 7.50
367db96d56Sopenharmony_ciscbx006 scaleb       7.50   -1 -> 0.750
377db96d56Sopenharmony_ciscbx007 scaleb       7.50   -2 -> 0.0750
387db96d56Sopenharmony_ciscbx008 scaleb       7.50  -10 -> 7.50E-10
397db96d56Sopenharmony_ciscbx009 scaleb      -7.50    3 -> -7.50E+3
407db96d56Sopenharmony_ciscbx010 scaleb      -7.50    2 -> -750
417db96d56Sopenharmony_ciscbx011 scaleb      -7.50    1 -> -75.0
427db96d56Sopenharmony_ciscbx012 scaleb      -7.50    0 -> -7.50
437db96d56Sopenharmony_ciscbx013 scaleb      -7.50   -1 -> -0.750
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci-- Infinities
467db96d56Sopenharmony_ciscbx014 scaleb  Infinity   1 -> Infinity
477db96d56Sopenharmony_ciscbx015 scaleb  -Infinity  2 -> -Infinity
487db96d56Sopenharmony_ciscbx016 scaleb  Infinity  -1 -> Infinity
497db96d56Sopenharmony_ciscbx017 scaleb  -Infinity -2 -> -Infinity
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_ci-- Next two are somewhat undefined in 754r; treat as non-integer
527db96d56Sopenharmony_ciscbx018 scaleb  10  Infinity -> NaN Invalid_operation
537db96d56Sopenharmony_ciscbx019 scaleb  10 -Infinity -> NaN Invalid_operation
547db96d56Sopenharmony_ci
557db96d56Sopenharmony_ci-- NaNs are undefined in 754r; assume usual processing
567db96d56Sopenharmony_ci-- NaNs, 0 payload
577db96d56Sopenharmony_ciscbx021 scaleb         NaN  1 -> NaN
587db96d56Sopenharmony_ciscbx022 scaleb        -NaN -1 -> -NaN
597db96d56Sopenharmony_ciscbx023 scaleb        sNaN  1 -> NaN Invalid_operation
607db96d56Sopenharmony_ciscbx024 scaleb       -sNaN  1 -> -NaN Invalid_operation
617db96d56Sopenharmony_ciscbx025 scaleb    4    NaN    -> NaN
627db96d56Sopenharmony_ciscbx026 scaleb -Inf   -NaN    -> -NaN
637db96d56Sopenharmony_ciscbx027 scaleb    4   sNaN    -> NaN Invalid_operation
647db96d56Sopenharmony_ciscbx028 scaleb  Inf  -sNaN    -> -NaN Invalid_operation
657db96d56Sopenharmony_ci
667db96d56Sopenharmony_ci-- non-integer RHS
677db96d56Sopenharmony_ciscbx030 scaleb  1.23    1    ->  12.3
687db96d56Sopenharmony_ciscbx031 scaleb  1.23    1.00 ->  NaN Invalid_operation
697db96d56Sopenharmony_ciscbx032 scaleb  1.23    1.1  ->  NaN Invalid_operation
707db96d56Sopenharmony_ciscbx033 scaleb  1.23    1.01 ->  NaN Invalid_operation
717db96d56Sopenharmony_ciscbx034 scaleb  1.23    0.01 ->  NaN Invalid_operation
727db96d56Sopenharmony_ciscbx035 scaleb  1.23    0.11 ->  NaN Invalid_operation
737db96d56Sopenharmony_ciscbx036 scaleb  1.23    0.999999999 ->  NaN Invalid_operation
747db96d56Sopenharmony_ciscbx037 scaleb  1.23   -1    ->  0.123
757db96d56Sopenharmony_ciscbx038 scaleb  1.23   -1.00 ->  NaN Invalid_operation
767db96d56Sopenharmony_ciscbx039 scaleb  1.23   -1.1  ->  NaN Invalid_operation
777db96d56Sopenharmony_ciscbx040 scaleb  1.23   -1.01 ->  NaN Invalid_operation
787db96d56Sopenharmony_ciscbx041 scaleb  1.23   -0.01 ->  NaN Invalid_operation
797db96d56Sopenharmony_ciscbx042 scaleb  1.23   -0.11 ->  NaN Invalid_operation
807db96d56Sopenharmony_ciscbx043 scaleb  1.23   -0.999999999 ->  NaN Invalid_operation
817db96d56Sopenharmony_ciscbx044 scaleb  1.23    0.1         ->  NaN Invalid_operation
827db96d56Sopenharmony_ciscbx045 scaleb  1.23    1E+1        ->  NaN Invalid_operation
837db96d56Sopenharmony_ciscbx046 scaleb  1.23    1.1234E+6   ->  NaN Invalid_operation
847db96d56Sopenharmony_ciscbx047 scaleb  1.23    1.123E+4    ->  NaN Invalid_operation
857db96d56Sopenharmony_ci
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ciscbx120 scaleb  1.23    2015        ->  Infinity Overflow Inexact Rounded
887db96d56Sopenharmony_ciscbx121 scaleb  1.23    2016        ->  Infinity Overflow Inexact Rounded
897db96d56Sopenharmony_ciscbx122 scaleb  1.23    2017        ->  NaN Invalid_operation
907db96d56Sopenharmony_ciscbx123 scaleb  1.23    2018        ->  NaN Invalid_operation
917db96d56Sopenharmony_ciscbx124 scaleb  1.23   -2015        ->  0E-1007 Underflow Subnormal Inexact Rounded Clamped
927db96d56Sopenharmony_ciscbx125 scaleb  1.23   -2016        ->  0E-1007 Underflow Subnormal Inexact Rounded Clamped
937db96d56Sopenharmony_ciscbx126 scaleb  1.23   -2017        ->  NaN Invalid_operation
947db96d56Sopenharmony_ciscbx127 scaleb  1.23   -2018        ->  NaN Invalid_operation
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_ci-- NaNs, non-0 payload
977db96d56Sopenharmony_ci-- propagating NaNs
987db96d56Sopenharmony_ciscbx861 scaleb  NaN01   -Inf     ->  NaN1
997db96d56Sopenharmony_ciscbx862 scaleb -NaN02   -1000    -> -NaN2
1007db96d56Sopenharmony_ciscbx863 scaleb  NaN03    1000    ->  NaN3
1017db96d56Sopenharmony_ciscbx864 scaleb  NaN04    Inf     ->  NaN4
1027db96d56Sopenharmony_ciscbx865 scaleb  NaN05    NaN61   ->  NaN5
1037db96d56Sopenharmony_ciscbx866 scaleb -Inf     -NaN71   -> -NaN71
1047db96d56Sopenharmony_ciscbx867 scaleb -1000     NaN81   ->  NaN81
1057db96d56Sopenharmony_ciscbx868 scaleb  1000     NaN91   ->  NaN91
1067db96d56Sopenharmony_ciscbx869 scaleb  Inf      NaN101  ->  NaN101
1077db96d56Sopenharmony_ciscbx871 scaleb  sNaN011  -Inf    ->  NaN11  Invalid_operation
1087db96d56Sopenharmony_ciscbx872 scaleb  sNaN012  -1000   ->  NaN12  Invalid_operation
1097db96d56Sopenharmony_ciscbx873 scaleb -sNaN013   1000   -> -NaN13  Invalid_operation
1107db96d56Sopenharmony_ciscbx874 scaleb  sNaN014   NaN171 ->  NaN14  Invalid_operation
1117db96d56Sopenharmony_ciscbx875 scaleb  sNaN015  sNaN181 ->  NaN15  Invalid_operation
1127db96d56Sopenharmony_ciscbx876 scaleb  NaN016   sNaN191 ->  NaN191 Invalid_operation
1137db96d56Sopenharmony_ciscbx877 scaleb -Inf      sNaN201 ->  NaN201 Invalid_operation
1147db96d56Sopenharmony_ciscbx878 scaleb -1000     sNaN211 ->  NaN211 Invalid_operation
1157db96d56Sopenharmony_ciscbx879 scaleb  1000    -sNaN221 -> -NaN221 Invalid_operation
1167db96d56Sopenharmony_ciscbx880 scaleb  Inf      sNaN231 ->  NaN231 Invalid_operation
1177db96d56Sopenharmony_ciscbx881 scaleb  NaN025   sNaN241 ->  NaN241 Invalid_operation
1187db96d56Sopenharmony_ci
1197db96d56Sopenharmony_ci-- finites
1207db96d56Sopenharmony_ciscbx051 scaleb          7   -2  -> 0.07
1217db96d56Sopenharmony_ciscbx052 scaleb         -7   -2  -> -0.07
1227db96d56Sopenharmony_ciscbx053 scaleb         75   -2  -> 0.75
1237db96d56Sopenharmony_ciscbx054 scaleb        -75   -2  -> -0.75
1247db96d56Sopenharmony_ciscbx055 scaleb       7.50   -2  -> 0.0750
1257db96d56Sopenharmony_ciscbx056 scaleb      -7.50   -2  -> -0.0750
1267db96d56Sopenharmony_ciscbx057 scaleb       7.500  -2  -> 0.07500
1277db96d56Sopenharmony_ciscbx058 scaleb      -7.500  -2  -> -0.07500
1287db96d56Sopenharmony_ciscbx061 scaleb          7   -1  -> 0.7
1297db96d56Sopenharmony_ciscbx062 scaleb         -7   -1  -> -0.7
1307db96d56Sopenharmony_ciscbx063 scaleb         75   -1  -> 7.5
1317db96d56Sopenharmony_ciscbx064 scaleb        -75   -1  -> -7.5
1327db96d56Sopenharmony_ciscbx065 scaleb       7.50   -1  -> 0.750
1337db96d56Sopenharmony_ciscbx066 scaleb      -7.50   -1  -> -0.750
1347db96d56Sopenharmony_ciscbx067 scaleb       7.500  -1  -> 0.7500
1357db96d56Sopenharmony_ciscbx068 scaleb      -7.500  -1  -> -0.7500
1367db96d56Sopenharmony_ciscbx071 scaleb          7    0  -> 7
1377db96d56Sopenharmony_ciscbx072 scaleb         -7    0  -> -7
1387db96d56Sopenharmony_ciscbx073 scaleb         75    0  -> 75
1397db96d56Sopenharmony_ciscbx074 scaleb        -75    0  -> -75
1407db96d56Sopenharmony_ciscbx075 scaleb       7.50    0  -> 7.50
1417db96d56Sopenharmony_ciscbx076 scaleb      -7.50    0  -> -7.50
1427db96d56Sopenharmony_ciscbx077 scaleb       7.500   0  -> 7.500
1437db96d56Sopenharmony_ciscbx078 scaleb      -7.500   0  -> -7.500
1447db96d56Sopenharmony_ciscbx081 scaleb          7    1  -> 7E+1
1457db96d56Sopenharmony_ciscbx082 scaleb         -7    1  -> -7E+1
1467db96d56Sopenharmony_ciscbx083 scaleb         75    1  -> 7.5E+2
1477db96d56Sopenharmony_ciscbx084 scaleb        -75    1  -> -7.5E+2
1487db96d56Sopenharmony_ciscbx085 scaleb       7.50    1  -> 75.0
1497db96d56Sopenharmony_ciscbx086 scaleb      -7.50    1  -> -75.0
1507db96d56Sopenharmony_ciscbx087 scaleb       7.500   1  -> 75.00
1517db96d56Sopenharmony_ciscbx088 scaleb      -7.500   1  -> -75.00
1527db96d56Sopenharmony_ciscbx091 scaleb          7    2  -> 7E+2
1537db96d56Sopenharmony_ciscbx092 scaleb         -7    2  -> -7E+2
1547db96d56Sopenharmony_ciscbx093 scaleb         75    2  -> 7.5E+3
1557db96d56Sopenharmony_ciscbx094 scaleb        -75    2  -> -7.5E+3
1567db96d56Sopenharmony_ciscbx095 scaleb       7.50    2  -> 750
1577db96d56Sopenharmony_ciscbx096 scaleb      -7.50    2  -> -750
1587db96d56Sopenharmony_ciscbx097 scaleb       7.500   2  -> 750.0
1597db96d56Sopenharmony_ciscbx098 scaleb      -7.500   2  -> -750.0
1607db96d56Sopenharmony_ci
1617db96d56Sopenharmony_ci-- zeros
1627db96d56Sopenharmony_ciscbx111 scaleb          0  1 -> 0E+1
1637db96d56Sopenharmony_ciscbx112 scaleb         -0  2 -> -0E+2
1647db96d56Sopenharmony_ciscbx113 scaleb       0E+4  3 -> 0E+7
1657db96d56Sopenharmony_ciscbx114 scaleb      -0E+4  4 -> -0E+8
1667db96d56Sopenharmony_ciscbx115 scaleb     0.0000  5 -> 0E+1
1677db96d56Sopenharmony_ciscbx116 scaleb    -0.0000  6 -> -0E+2
1687db96d56Sopenharmony_ciscbx117 scaleb      0E-141 7 -> 0E-134
1697db96d56Sopenharmony_ciscbx118 scaleb     -0E-141 8 -> -0E-133
1707db96d56Sopenharmony_ci
1717db96d56Sopenharmony_ci-- Nmax, Nmin, Ntiny
1727db96d56Sopenharmony_ciscbx132 scaleb  9.99999999E+999 +999 -> Infinity    Overflow Inexact Rounded
1737db96d56Sopenharmony_ciscbx133 scaleb  9.99999999E+999  +10 -> Infinity     Overflow Inexact Rounded
1747db96d56Sopenharmony_ciscbx134 scaleb  9.99999999E+999  +1  -> Infinity     Overflow Inexact Rounded
1757db96d56Sopenharmony_ciscbx135 scaleb  9.99999999E+999   0  -> 9.99999999E+999
1767db96d56Sopenharmony_ciscbx136 scaleb  9.99999999E+999  -1  -> 9.99999999E+998
1777db96d56Sopenharmony_ciscbx137 scaleb  1E-999           +1  -> 1E-998
1787db96d56Sopenharmony_ciscbx138 scaleb  1E-999           -0  -> 1E-999
1797db96d56Sopenharmony_ciscbx139 scaleb  1E-999           -1  -> 1E-1000         Subnormal
1807db96d56Sopenharmony_ciscbx140 scaleb  1.00000000E-999  +1  -> 1.00000000E-998
1817db96d56Sopenharmony_ciscbx141 scaleb  1.00000000E-999   0  -> 1.00000000E-999
1827db96d56Sopenharmony_ciscbx142 scaleb  1.00000000E-999  -1  -> 1.0000000E-1000 Subnormal Rounded
1837db96d56Sopenharmony_ciscbx143 scaleb  1E-1007          +1  -> 1E-1006         Subnormal
1847db96d56Sopenharmony_ciscbx144 scaleb  1E-1007          -0  -> 1E-1007         Subnormal
1857db96d56Sopenharmony_ciscbx145 scaleb  1E-1007          -1  -> 0E-1007         Underflow Subnormal Inexact Rounded Clamped
1867db96d56Sopenharmony_ci
1877db96d56Sopenharmony_ciscbx150 scaleb  -1E-1007         +1  -> -1E-1006        Subnormal
1887db96d56Sopenharmony_ciscbx151 scaleb  -1E-1007         -0  -> -1E-1007        Subnormal
1897db96d56Sopenharmony_ciscbx152 scaleb  -1E-1007         -1  -> -0E-1007        Underflow Subnormal Inexact Rounded Clamped
1907db96d56Sopenharmony_ciscbx153 scaleb  -1.00000000E-999 +1  -> -1.00000000E-998
1917db96d56Sopenharmony_ciscbx154 scaleb  -1.00000000E-999 +0  -> -1.00000000E-999
1927db96d56Sopenharmony_ciscbx155 scaleb  -1.00000000E-999 -1  -> -1.0000000E-1000 Subnormal Rounded
1937db96d56Sopenharmony_ciscbx156 scaleb  -1E-999          +1  -> -1E-998
1947db96d56Sopenharmony_ciscbx157 scaleb  -1E-999          -0  -> -1E-999
1957db96d56Sopenharmony_ciscbx158 scaleb  -1E-999          -1  -> -1E-1000         Subnormal
1967db96d56Sopenharmony_ciscbx159 scaleb  -9.99999999E+999 +1  -> -Infinity        Overflow Inexact Rounded
1977db96d56Sopenharmony_ciscbx160 scaleb  -9.99999999E+999 +0  -> -9.99999999E+999
1987db96d56Sopenharmony_ciscbx161 scaleb  -9.99999999E+999 -1  -> -9.99999999E+998
1997db96d56Sopenharmony_ciscbx162 scaleb  -9E+999          +1  -> -Infinity        Overflow Inexact Rounded
2007db96d56Sopenharmony_ciscbx163 scaleb  -1E+999          +1  -> -Infinity        Overflow Inexact Rounded
2017db96d56Sopenharmony_ci
2027db96d56Sopenharmony_ci-- Krah examples
2037db96d56Sopenharmony_ciprecision:   34
2047db96d56Sopenharmony_cimaxExponent: 999999999
2057db96d56Sopenharmony_ciminExponent: -999999999
2067db96d56Sopenharmony_ci-- integer overflow in 3.61 or earlier
2077db96d56Sopenharmony_ciscbx164 scaleb  1E-999999999  -1200000000  -> NaN Invalid_operation
2087db96d56Sopenharmony_ci-- out of range
2097db96d56Sopenharmony_ciscbx165 scaleb  -1E-999999999  +1200000000  -> NaN Invalid_operation
210