summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/dqScaleB.decTest
blob: 88a3f9debc037384fbeddb2f630d80ba8ee2a513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
------------------------------------------------------------------------
-- dqScalebB.decTest -- scale a decQuad by powers of 10               --
-- Copyright (c) IBM Corporation, 1981, 2007.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.56

extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even

-- Max |rhs| is 2*(6144+34) = 12356

-- Sanity checks
dqscb001 scaleb       7.50   10 -> 7.50E+10
dqscb002 scaleb       7.50    3 -> 7.50E+3
dqscb003 scaleb       7.50    2 -> 750
dqscb004 scaleb       7.50    1 -> 75.0
dqscb005 scaleb       7.50    0 -> 7.50
dqscb006 scaleb       7.50   -1 -> 0.750
dqscb007 scaleb       7.50   -2 -> 0.0750
dqscb008 scaleb       7.50  -10 -> 7.50E-10
dqscb009 scaleb      -7.50    3 -> -7.50E+3
dqscb010 scaleb      -7.50    2 -> -750
dqscb011 scaleb      -7.50    1 -> -75.0
dqscb012 scaleb      -7.50    0 -> -7.50
dqscb013 scaleb      -7.50   -1 -> -0.750

-- Infinities
dqscb014 scaleb  Infinity   1 -> Infinity
dqscb015 scaleb  -Infinity  2 -> -Infinity
dqscb016 scaleb  Infinity  -1 -> Infinity
dqscb017 scaleb  -Infinity -2 -> -Infinity

-- Next two are somewhat undefined in 754r; treat as non-integer
dqscb018 scaleb  10  Infinity -> NaN Invalid_operation
dqscb019 scaleb  10 -Infinity -> NaN Invalid_operation

-- NaNs are undefined in 754r; assume usual processing
-- NaNs, 0 payload
dqscb021 scaleb         NaN  1 -> NaN
dqscb022 scaleb        -NaN -1 -> -NaN
dqscb023 scaleb        sNaN  1 -> NaN Invalid_operation
dqscb024 scaleb       -sNaN  1 -> -NaN Invalid_operation
dqscb025 scaleb    4    NaN    -> NaN
dqscb026 scaleb -Inf   -NaN    -> -NaN
dqscb027 scaleb    4   sNaN    -> NaN Invalid_operation
dqscb028 scaleb  Inf  -sNaN    -> -NaN Invalid_operation

-- non-integer RHS
dqscb030 scaleb  1.23    1    ->  12.3
dqscb031 scaleb  1.23    1.00 ->  NaN Invalid_operation
dqscb032 scaleb  1.23    1.1  ->  NaN Invalid_operation
dqscb033 scaleb  1.23    1.01 ->  NaN Invalid_operation
dqscb034 scaleb  1.23    0.01 ->  NaN Invalid_operation
dqscb035 scaleb  1.23    0.11 ->  NaN Invalid_operation
dqscb036 scaleb  1.23    0.999999999 ->  NaN Invalid_operation
dqscb037 scaleb  1.23   -1    ->  0.123
dqscb0614 scaleb  1.23   -1.00 ->  NaN Invalid_operation
dqscb039 scaleb  1.23   -1.1  ->  NaN Invalid_operation
dqscb040 scaleb  1.23   -1.01 ->  NaN Invalid_operation
dqscb041 scaleb  1.23   -0.01 ->  NaN Invalid_operation
dqscb042 scaleb  1.23   -0.11 ->  NaN Invalid_operation
dqscb043 scaleb  1.23   -0.999999999 ->  NaN Invalid_operation
dqscb044 scaleb  1.23    0.1         ->  NaN Invalid_operation
dqscb045 scaleb  1.23    1E+1        ->  NaN Invalid_operation
dqscb046 scaleb  1.23    1.1234E+6   ->  NaN Invalid_operation
dqscb047 scaleb  1.23    1.123E+4    ->  NaN Invalid_operation

-- out-of range RHS
dqscb120 scaleb  1.23    12355       ->  Infinity Overflow Inexact Rounded
dqscb121 scaleb  1.23    12356       ->  Infinity Overflow Inexact Rounded
dqscb122 scaleb  1.23    12357       ->  NaN Invalid_operation
dqscb123 scaleb  1.23    12358       ->  NaN Invalid_operation
dqscb124 scaleb  1.23   -12355       ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqscb125 scaleb  1.23   -12356       ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqscb126 scaleb  1.23   -12357       ->  NaN Invalid_operation
dqscb127 scaleb  1.23   -12358       ->  NaN Invalid_operation

-- NaNs, non-0 payload
-- propagating NaNs
dqscb861 scaleb  NaN01   -Inf     ->  NaN1
dqscb862 scaleb -NaN02   -1000    -> -NaN2
dqscb863 scaleb  NaN03    1000    ->  NaN3
dqscb864 scaleb  NaN04    Inf     ->  NaN4
dqscb865 scaleb  NaN05    NaN61   ->  NaN5
dqscb866 scaleb -Inf     -NaN71   -> -NaN71
dqscb867 scaleb -1000     NaN81   ->  NaN81
dqscb868 scaleb  1000     NaN91   ->  NaN91
dqscb869 scaleb  Inf      NaN101  ->  NaN101
dqscb871 scaleb  sNaN011  -Inf    ->  NaN11  Invalid_operation
dqscb872 scaleb  sNaN012  -1000   ->  NaN12  Invalid_operation
dqscb873 scaleb -sNaN013   1000   -> -NaN13  Invalid_operation
dqscb874 scaleb  sNaN014   NaN171 ->  NaN14  Invalid_operation
dqscb875 scaleb  sNaN015  sNaN181 ->  NaN15  Invalid_operation
dqscb876 scaleb  NaN016   sNaN191 ->  NaN191 Invalid_operation
dqscb877 scaleb -Inf      sNaN201 ->  NaN201 Invalid_operation
dqscb878 scaleb -1000     sNaN211 ->  NaN211 Invalid_operation
dqscb879 scaleb  1000    -sNaN221 -> -NaN221 Invalid_operation
dqscb880 scaleb  Inf      sNaN231 ->  NaN231 Invalid_operation
dqscb881 scaleb  NaN025   sNaN241 ->  NaN241 Invalid_operation

-- finites
dqscb051 scaleb          7   -2  -> 0.07
dqscb052 scaleb         -7   -2  -> -0.07
dqscb053 scaleb         75   -2  -> 0.75
dqscb054 scaleb        -75   -2  -> -0.75
dqscb055 scaleb       7.50   -2  -> 0.0750
dqscb056 scaleb      -7.50   -2  -> -0.0750
dqscb057 scaleb       7.500  -2  -> 0.07500
dqscb058 scaleb      -7.500  -2  -> -0.07500
dqscb061 scaleb          7   -1  -> 0.7
dqscb062 scaleb         -7   -1  -> -0.7
dqscb063 scaleb         75   -1  -> 7.5
dqscb064 scaleb        -75   -1  -> -7.5
dqscb065 scaleb       7.50   -1  -> 0.750
dqscb066 scaleb      -7.50   -1  -> -0.750
dqscb067 scaleb       7.500  -1  -> 0.7500
dqscb068 scaleb      -7.500  -1  -> -0.7500
dqscb071 scaleb          7    0  -> 7
dqscb072 scaleb         -7    0  -> -7
dqscb073 scaleb         75    0  -> 75
dqscb074 scaleb        -75    0  -> -75
dqscb075 scaleb       7.50    0  -> 7.50
dqscb076 scaleb      -7.50    0  -> -7.50
dqscb077 scaleb       7.500   0  -> 7.500
dqscb078 scaleb      -7.500   0  -> -7.500
dqscb081 scaleb          7    1  -> 7E+1
dqscb082 scaleb         -7    1  -> -7E+1
dqscb083 scaleb         75    1  -> 7.5E+2
dqscb084 scaleb        -75    1  -> -7.5E+2
dqscb085 scaleb       7.50    1  -> 75.0
dqscb086 scaleb      -7.50    1  -> -75.0
dqscb087 scaleb       7.500   1  -> 75.00
dqscb088 scaleb      -7.500   1  -> -75.00
dqscb091 scaleb          7    2  -> 7E+2
dqscb092 scaleb         -7    2  -> -7E+2
dqscb093 scaleb         75    2  -> 7.5E+3
dqscb094 scaleb        -75    2  -> -7.5E+3
dqscb095 scaleb       7.50    2  -> 750
dqscb096 scaleb      -7.50    2  -> -750
dqscb097 scaleb       7.500   2  -> 750.0
dqscb098 scaleb      -7.500   2  -> -750.0

-- zeros
dqscb111 scaleb          0  1 -> 0E+1
dqscb112 scaleb         -0  2 -> -0E+2
dqscb113 scaleb       0E+4  3 -> 0E+7
dqscb114 scaleb      -0E+4  4 -> -0E+8
dqscb115 scaleb     0.0000  5 -> 0E+1
dqscb116 scaleb    -0.0000  6 -> -0E+2
dqscb117 scaleb      0E-141 7 -> 0E-134
dqscb118 scaleb     -0E-141 8 -> -0E-133

-- Nmax, Nmin, Ntiny
dqscb132 scaleb  9.999999999999999999999999999999999E+6144  +6144 -> Infinity    Overflow Inexact Rounded
dqscb133 scaleb  9.999999999999999999999999999999999E+6144  +10 -> Infinity     Overflow Inexact Rounded
dqscb134 scaleb  9.999999999999999999999999999999999E+6144  +1  -> Infinity     Overflow Inexact Rounded
dqscb135 scaleb  9.999999999999999999999999999999999E+6144   0  -> 9.999999999999999999999999999999999E+6144
dqscb136 scaleb  9.999999999999999999999999999999999E+6144  -1  -> 9.999999999999999999999999999999999E+6143
dqscb137 scaleb  1E-6143           +1  -> 1E-6142
dqscb1614 scaleb  1E-6143           -0  -> 1E-6143
dqscb139 scaleb  1E-6143           -1  -> 1E-6144          Subnormal
dqscb140 scaleb  1.000000000000000000000000000000000E-6143  +1  -> 1.000000000000000000000000000000000E-6142
dqscb141 scaleb  1.000000000000000000000000000000000E-6143   0  -> 1.000000000000000000000000000000000E-6143
dqscb142 scaleb  1.000000000000000000000000000000000E-6143  -1  -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded
dqscb143 scaleb  1E-6176          +1  -> 1E-6175         Subnormal
dqscb144 scaleb  1E-6176          -0  -> 1E-6176         Subnormal
dqscb145 scaleb  1E-6176          -1  -> 0E-6176         Underflow Subnormal Inexact Rounded Clamped

dqscb150 scaleb  -1E-6176         +1  -> -1E-6175        Subnormal
dqscb151 scaleb  -1E-6176         -0  -> -1E-6176        Subnormal
dqscb152 scaleb  -1E-6176         -1  -> -0E-6176        Underflow Subnormal Inexact Rounded Clamped
dqscb153 scaleb  -1.000000000000000000000000000000000E-6143 +1  -> -1.000000000000000000000000000000000E-6142
dqscb154 scaleb  -1.000000000000000000000000000000000E-6143 +0  -> -1.000000000000000000000000000000000E-6143
dqscb155 scaleb  -1.000000000000000000000000000000000E-6143 -1  -> -1.00000000000000000000000000000000E-6144 Subnormal Rounded
dqscb156 scaleb  -1E-6143          +1  -> -1E-6142
dqscb157 scaleb  -1E-6143          -0  -> -1E-6143
dqscb158 scaleb  -1E-6143          -1  -> -1E-6144          Subnormal
dqscb159 scaleb  -9.999999999999999999999999999999999E+6144 +1  -> -Infinity        Overflow Inexact Rounded
dqscb160 scaleb  -9.999999999999999999999999999999999E+6144 +0  -> -9.999999999999999999999999999999999E+6144
dqscb161 scaleb  -9.999999999999999999999999999999999E+6144 -1  -> -9.999999999999999999999999999999999E+6143
dqscb162 scaleb  -9E+6144          +1  -> -Infinity        Overflow Inexact Rounded
dqscb163 scaleb  -1E+6144          +1  -> -Infinity        Overflow Inexact Rounded

-- some Origami
-- (these check that overflow is being done correctly)
dqscb171 scaleb   1000E+6109  +1 -> 1.000E+6113
dqscb172 scaleb   1000E+6110  +1 -> 1.000E+6114
dqscb173 scaleb   1000E+6111  +1 -> 1.0000E+6115                    Clamped
dqscb174 scaleb   1000E+6112  +1 -> 1.00000E+6116                   Clamped
dqscb175 scaleb   1000E+6113  +1 -> 1.000000E+6117                  Clamped
dqscb176 scaleb   1000E+6114  +1 -> 1.0000000E+6118                 Clamped
dqscb177 scaleb   1000E+6131  +1 -> 1.000000000000000000000000E+6135                Clamped
dqscb178 scaleb   1000E+6132  +1 -> 1.0000000000000000000000000E+6136               Clamped
dqscb179 scaleb   1000E+6133  +1 -> 1.00000000000000000000000000E+6137              Clamped
dqscb180 scaleb   1000E+6134  +1 -> 1.000000000000000000000000000E+6138             Clamped
dqscb181 scaleb   1000E+6135  +1 -> 1.0000000000000000000000000000E+6139            Clamped
dqscb182 scaleb   1000E+6136  +1 -> 1.00000000000000000000000000000E+6140           Clamped
dqscb183 scaleb   1000E+6137  +1 -> 1.000000000000000000000000000000E+6141          Clamped
dqscb184 scaleb   1000E+6138  +1 -> 1.0000000000000000000000000000000E+6142         Clamped
dqscb185 scaleb   1000E+6139  +1 -> 1.00000000000000000000000000000000E+6143        Clamped
dqscb186 scaleb   1000E+6140  +1 -> 1.000000000000000000000000000000000E+6144       Clamped
dqscb187 scaleb   1000E+6141  +1 -> Infinity    Overflow Inexact Rounded

-- and a few more subnormal truncations
-- (these check that underflow is being done correctly)
dqscb221 scaleb  1.000000000000000000000000000000000E-6143   0  -> 1.000000000000000000000000000000000E-6143
dqscb222 scaleb  1.000000000000000000000000000000000E-6143  -1  -> 1.00000000000000000000000000000000E-6144 Subnormal Rounded
dqscb223 scaleb  1.000000000000000000000000000000000E-6143  -2  -> 1.0000000000000000000000000000000E-6145 Subnormal Rounded
dqscb224 scaleb  1.000000000000000000000000000000000E-6143  -3  -> 1.000000000000000000000000000000E-6146 Subnormal Rounded
dqscb225 scaleb  1.000000000000000000000000000000000E-6143  -4  -> 1.00000000000000000000000000000E-6147 Subnormal Rounded
dqscb226 scaleb  1.000000000000000000000000000000000E-6143  -5  -> 1.0000000000000000000000000000E-6148 Subnormal Rounded
dqscb227 scaleb  1.000000000000000000000000000000000E-6143  -6  -> 1.000000000000000000000000000E-6149 Subnormal Rounded
dqscb228 scaleb  1.000000000000000000000000000000000E-6143  -7  -> 1.00000000000000000000000000E-6150 Subnormal Rounded
dqscb229 scaleb  1.000000000000000000000000000000000E-6143  -8  -> 1.0000000000000000000000000E-6151 Subnormal Rounded
dqscb230 scaleb  1.000000000000000000000000000000000E-6143  -9  -> 1.000000000000000000000000E-6152 Subnormal Rounded
dqscb231 scaleb  1.000000000000000000000000000000000E-6143  -10 -> 1.00000000000000000000000E-6153 Subnormal Rounded
dqscb232 scaleb  1.000000000000000000000000000000000E-6143  -11 -> 1.0000000000000000000000E-6154 Subnormal Rounded
dqscb233 scaleb  1.000000000000000000000000000000000E-6143  -12 -> 1.000000000000000000000E-6155 Subnormal Rounded
dqscb234 scaleb  1.000000000000000000000000000000000E-6143  -13 -> 1.00000000000000000000E-6156 Subnormal Rounded
dqscb235 scaleb  1.000000000000000000000000000000000E-6143  -14 -> 1.0000000000000000000E-6157 Subnormal Rounded
dqscb236 scaleb  1.000000000000000000000000000000000E-6143  -15 -> 1.000000000000000000E-6158 Subnormal Rounded
dqscb237 scaleb  1.000000000000000000000000000000000E-6143  -16 -> 1.00000000000000000E-6159 Subnormal Rounded
dqscb238 scaleb  1.000000000000000000000000000000000E-6143  -17 -> 1.0000000000000000E-6160 Subnormal Rounded
dqscb239 scaleb  1.000000000000000000000000000000000E-6143  -18 -> 1.000000000000000E-6161 Subnormal Rounded
dqscb202 scaleb  1.000000000000000000000000000000000E-6143  -19 -> 1.00000000000000E-6162 Subnormal Rounded
dqscb203 scaleb  1.000000000000000000000000000000000E-6143  -20 -> 1.0000000000000E-6163 Subnormal Rounded
dqscb204 scaleb  1.000000000000000000000000000000000E-6143  -21 -> 1.000000000000E-6164 Subnormal Rounded
dqscb205 scaleb  1.000000000000000000000000000000000E-6143  -22 -> 1.00000000000E-6165 Subnormal Rounded
dqscb206 scaleb  1.000000000000000000000000000000000E-6143  -23 -> 1.0000000000E-6166 Subnormal Rounded
dqscb207 scaleb  1.000000000000000000000000000000000E-6143  -24 -> 1.000000000E-6167 Subnormal Rounded
dqscb208 scaleb  1.000000000000000000000000000000000E-6143  -25 -> 1.00000000E-6168 Subnormal Rounded
dqscb209 scaleb  1.000000000000000000000000000000000E-6143  -26 -> 1.0000000E-6169 Subnormal Rounded
dqscb210 scaleb  1.000000000000000000000000000000000E-6143  -27 -> 1.000000E-6170 Subnormal Rounded
dqscb211 scaleb  1.000000000000000000000000000000000E-6143  -28 -> 1.00000E-6171 Subnormal Rounded
dqscb212 scaleb  1.000000000000000000000000000000000E-6143  -29 -> 1.0000E-6172 Subnormal Rounded
dqscb213 scaleb  1.000000000000000000000000000000000E-6143  -30 -> 1.000E-6173 Subnormal Rounded
dqscb214 scaleb  1.000000000000000000000000000000000E-6143  -31 -> 1.00E-6174 Subnormal Rounded
dqscb215 scaleb  1.000000000000000000000000000000000E-6143  -32 -> 1.0E-6175 Subnormal Rounded
dqscb216 scaleb  1.000000000000000000000000000000000E-6143  -33 -> 1E-6176 Subnormal Rounded
dqscb217 scaleb  1.000000000000000000000000000000000E-6143  -34 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqscb218 scaleb  1.000000000000000000000000000000000E-6143  -35 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped