|
1 ------------------------------------------------------------------------ |
|
2 -- ddSubtract.decTest -- decDouble subtraction -- |
|
3 -- Copyright (c) IBM Corporation, 1981, 2008. 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 version: 2.58 |
|
21 |
|
22 -- This set of tests are for decDoubles only; all arguments are |
|
23 -- representable in a decDouble |
|
24 precision: 16 |
|
25 maxExponent: 384 |
|
26 minExponent: -383 |
|
27 extended: 1 |
|
28 clamp: 1 |
|
29 rounding: half_even |
|
30 |
|
31 -- [first group are 'quick confidence check'] |
|
32 ddsub001 subtract 0 0 -> '0' |
|
33 ddsub002 subtract 1 1 -> '0' |
|
34 ddsub003 subtract 1 2 -> '-1' |
|
35 ddsub004 subtract 2 1 -> '1' |
|
36 ddsub005 subtract 2 2 -> '0' |
|
37 ddsub006 subtract 3 2 -> '1' |
|
38 ddsub007 subtract 2 3 -> '-1' |
|
39 |
|
40 ddsub011 subtract -0 0 -> '-0' |
|
41 ddsub012 subtract -1 1 -> '-2' |
|
42 ddsub013 subtract -1 2 -> '-3' |
|
43 ddsub014 subtract -2 1 -> '-3' |
|
44 ddsub015 subtract -2 2 -> '-4' |
|
45 ddsub016 subtract -3 2 -> '-5' |
|
46 ddsub017 subtract -2 3 -> '-5' |
|
47 |
|
48 ddsub021 subtract 0 -0 -> '0' |
|
49 ddsub022 subtract 1 -1 -> '2' |
|
50 ddsub023 subtract 1 -2 -> '3' |
|
51 ddsub024 subtract 2 -1 -> '3' |
|
52 ddsub025 subtract 2 -2 -> '4' |
|
53 ddsub026 subtract 3 -2 -> '5' |
|
54 ddsub027 subtract 2 -3 -> '5' |
|
55 |
|
56 ddsub030 subtract 11 1 -> 10 |
|
57 ddsub031 subtract 10 1 -> 9 |
|
58 ddsub032 subtract 9 1 -> 8 |
|
59 ddsub033 subtract 1 1 -> 0 |
|
60 ddsub034 subtract 0 1 -> -1 |
|
61 ddsub035 subtract -1 1 -> -2 |
|
62 ddsub036 subtract -9 1 -> -10 |
|
63 ddsub037 subtract -10 1 -> -11 |
|
64 ddsub038 subtract -11 1 -> -12 |
|
65 |
|
66 ddsub040 subtract '5.75' '3.3' -> '2.45' |
|
67 ddsub041 subtract '5' '-3' -> '8' |
|
68 ddsub042 subtract '-5' '-3' -> '-2' |
|
69 ddsub043 subtract '-7' '2.5' -> '-9.5' |
|
70 ddsub044 subtract '0.7' '0.3' -> '0.4' |
|
71 ddsub045 subtract '1.3' '0.3' -> '1.0' |
|
72 ddsub046 subtract '1.25' '1.25' -> '0.00' |
|
73 |
|
74 ddsub050 subtract '1.23456789' '1.00000000' -> '0.23456789' |
|
75 ddsub051 subtract '1.23456789' '1.00000089' -> '0.23456700' |
|
76 |
|
77 ddsub060 subtract '70' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded |
|
78 ddsub061 subtract '700' '10000e+16' -> '-1.000000000000000E+20' Inexact Rounded |
|
79 ddsub062 subtract '7000' '10000e+16' -> '-9.999999999999999E+19' Inexact Rounded |
|
80 ddsub063 subtract '70000' '10000e+16' -> '-9.999999999999993E+19' Rounded |
|
81 ddsub064 subtract '700000' '10000e+16' -> '-9.999999999999930E+19' Rounded |
|
82 -- symmetry: |
|
83 ddsub065 subtract '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded |
|
84 ddsub066 subtract '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded |
|
85 ddsub067 subtract '10000e+16' '7000' -> '9.999999999999999E+19' Inexact Rounded |
|
86 ddsub068 subtract '10000e+16' '70000' -> '9.999999999999993E+19' Rounded |
|
87 ddsub069 subtract '10000e+16' '700000' -> '9.999999999999930E+19' Rounded |
|
88 |
|
89 -- some of the next group are really constructor tests |
|
90 ddsub090 subtract '00.0' '0.0' -> '0.0' |
|
91 ddsub091 subtract '00.0' '0.00' -> '0.00' |
|
92 ddsub092 subtract '0.00' '00.0' -> '0.00' |
|
93 ddsub093 subtract '00.0' '0.00' -> '0.00' |
|
94 ddsub094 subtract '0.00' '00.0' -> '0.00' |
|
95 ddsub095 subtract '3' '.3' -> '2.7' |
|
96 ddsub096 subtract '3.' '.3' -> '2.7' |
|
97 ddsub097 subtract '3.0' '.3' -> '2.7' |
|
98 ddsub098 subtract '3.00' '.3' -> '2.70' |
|
99 ddsub099 subtract '3' '3' -> '0' |
|
100 ddsub100 subtract '3' '+3' -> '0' |
|
101 ddsub101 subtract '3' '-3' -> '6' |
|
102 ddsub102 subtract '3' '0.3' -> '2.7' |
|
103 ddsub103 subtract '3.' '0.3' -> '2.7' |
|
104 ddsub104 subtract '3.0' '0.3' -> '2.7' |
|
105 ddsub105 subtract '3.00' '0.3' -> '2.70' |
|
106 ddsub106 subtract '3' '3.0' -> '0.0' |
|
107 ddsub107 subtract '3' '+3.0' -> '0.0' |
|
108 ddsub108 subtract '3' '-3.0' -> '6.0' |
|
109 |
|
110 -- the above all from add; massaged and extended. Now some new ones... |
|
111 -- [particularly important for comparisons] |
|
112 -- NB: -xE-8 below were non-exponents pre-ANSI X3-274, and -1E-7 or 0E-7 |
|
113 -- with input rounding. |
|
114 ddsub120 subtract '10.23456784' '10.23456789' -> '-5E-8' |
|
115 ddsub121 subtract '10.23456785' '10.23456789' -> '-4E-8' |
|
116 ddsub122 subtract '10.23456786' '10.23456789' -> '-3E-8' |
|
117 ddsub123 subtract '10.23456787' '10.23456789' -> '-2E-8' |
|
118 ddsub124 subtract '10.23456788' '10.23456789' -> '-1E-8' |
|
119 ddsub125 subtract '10.23456789' '10.23456789' -> '0E-8' |
|
120 ddsub126 subtract '10.23456790' '10.23456789' -> '1E-8' |
|
121 ddsub127 subtract '10.23456791' '10.23456789' -> '2E-8' |
|
122 ddsub128 subtract '10.23456792' '10.23456789' -> '3E-8' |
|
123 ddsub129 subtract '10.23456793' '10.23456789' -> '4E-8' |
|
124 ddsub130 subtract '10.23456794' '10.23456789' -> '5E-8' |
|
125 ddsub131 subtract '10.23456781' '10.23456786' -> '-5E-8' |
|
126 ddsub132 subtract '10.23456782' '10.23456786' -> '-4E-8' |
|
127 ddsub133 subtract '10.23456783' '10.23456786' -> '-3E-8' |
|
128 ddsub134 subtract '10.23456784' '10.23456786' -> '-2E-8' |
|
129 ddsub135 subtract '10.23456785' '10.23456786' -> '-1E-8' |
|
130 ddsub136 subtract '10.23456786' '10.23456786' -> '0E-8' |
|
131 ddsub137 subtract '10.23456787' '10.23456786' -> '1E-8' |
|
132 ddsub138 subtract '10.23456788' '10.23456786' -> '2E-8' |
|
133 ddsub139 subtract '10.23456789' '10.23456786' -> '3E-8' |
|
134 ddsub140 subtract '10.23456790' '10.23456786' -> '4E-8' |
|
135 ddsub141 subtract '10.23456791' '10.23456786' -> '5E-8' |
|
136 ddsub142 subtract '1' '0.999999999' -> '1E-9' |
|
137 ddsub143 subtract '0.999999999' '1' -> '-1E-9' |
|
138 ddsub144 subtract '-10.23456780' '-10.23456786' -> '6E-8' |
|
139 ddsub145 subtract '-10.23456790' '-10.23456786' -> '-4E-8' |
|
140 ddsub146 subtract '-10.23456791' '-10.23456786' -> '-5E-8' |
|
141 |
|
142 -- additional scaled arithmetic tests [0.97 problem] |
|
143 ddsub160 subtract '0' '.1' -> '-0.1' |
|
144 ddsub161 subtract '00' '.97983' -> '-0.97983' |
|
145 ddsub162 subtract '0' '.9' -> '-0.9' |
|
146 ddsub163 subtract '0' '0.102' -> '-0.102' |
|
147 ddsub164 subtract '0' '.4' -> '-0.4' |
|
148 ddsub165 subtract '0' '.307' -> '-0.307' |
|
149 ddsub166 subtract '0' '.43822' -> '-0.43822' |
|
150 ddsub167 subtract '0' '.911' -> '-0.911' |
|
151 ddsub168 subtract '.0' '.02' -> '-0.02' |
|
152 ddsub169 subtract '00' '.392' -> '-0.392' |
|
153 ddsub170 subtract '0' '.26' -> '-0.26' |
|
154 ddsub171 subtract '0' '0.51' -> '-0.51' |
|
155 ddsub172 subtract '0' '.2234' -> '-0.2234' |
|
156 ddsub173 subtract '0' '.2' -> '-0.2' |
|
157 ddsub174 subtract '.0' '.0008' -> '-0.0008' |
|
158 -- 0. on left |
|
159 ddsub180 subtract '0.0' '-.1' -> '0.1' |
|
160 ddsub181 subtract '0.00' '-.97983' -> '0.97983' |
|
161 ddsub182 subtract '0.0' '-.9' -> '0.9' |
|
162 ddsub183 subtract '0.0' '-0.102' -> '0.102' |
|
163 ddsub184 subtract '0.0' '-.4' -> '0.4' |
|
164 ddsub185 subtract '0.0' '-.307' -> '0.307' |
|
165 ddsub186 subtract '0.0' '-.43822' -> '0.43822' |
|
166 ddsub187 subtract '0.0' '-.911' -> '0.911' |
|
167 ddsub188 subtract '0.0' '-.02' -> '0.02' |
|
168 ddsub189 subtract '0.00' '-.392' -> '0.392' |
|
169 ddsub190 subtract '0.0' '-.26' -> '0.26' |
|
170 ddsub191 subtract '0.0' '-0.51' -> '0.51' |
|
171 ddsub192 subtract '0.0' '-.2234' -> '0.2234' |
|
172 ddsub193 subtract '0.0' '-.2' -> '0.2' |
|
173 ddsub194 subtract '0.0' '-.0008' -> '0.0008' |
|
174 -- negatives of same |
|
175 ddsub200 subtract '0' '-.1' -> '0.1' |
|
176 ddsub201 subtract '00' '-.97983' -> '0.97983' |
|
177 ddsub202 subtract '0' '-.9' -> '0.9' |
|
178 ddsub203 subtract '0' '-0.102' -> '0.102' |
|
179 ddsub204 subtract '0' '-.4' -> '0.4' |
|
180 ddsub205 subtract '0' '-.307' -> '0.307' |
|
181 ddsub206 subtract '0' '-.43822' -> '0.43822' |
|
182 ddsub207 subtract '0' '-.911' -> '0.911' |
|
183 ddsub208 subtract '.0' '-.02' -> '0.02' |
|
184 ddsub209 subtract '00' '-.392' -> '0.392' |
|
185 ddsub210 subtract '0' '-.26' -> '0.26' |
|
186 ddsub211 subtract '0' '-0.51' -> '0.51' |
|
187 ddsub212 subtract '0' '-.2234' -> '0.2234' |
|
188 ddsub213 subtract '0' '-.2' -> '0.2' |
|
189 ddsub214 subtract '.0' '-.0008' -> '0.0008' |
|
190 |
|
191 -- more fixed, LHS swaps [really the same as testcases under add] |
|
192 ddsub220 subtract '-56267E-12' 0 -> '-5.6267E-8' |
|
193 ddsub221 subtract '-56267E-11' 0 -> '-5.6267E-7' |
|
194 ddsub222 subtract '-56267E-10' 0 -> '-0.0000056267' |
|
195 ddsub223 subtract '-56267E-9' 0 -> '-0.000056267' |
|
196 ddsub224 subtract '-56267E-8' 0 -> '-0.00056267' |
|
197 ddsub225 subtract '-56267E-7' 0 -> '-0.0056267' |
|
198 ddsub226 subtract '-56267E-6' 0 -> '-0.056267' |
|
199 ddsub227 subtract '-56267E-5' 0 -> '-0.56267' |
|
200 ddsub228 subtract '-56267E-2' 0 -> '-562.67' |
|
201 ddsub229 subtract '-56267E-1' 0 -> '-5626.7' |
|
202 ddsub230 subtract '-56267E-0' 0 -> '-56267' |
|
203 -- symmetry ... |
|
204 ddsub240 subtract 0 '-56267E-12' -> '5.6267E-8' |
|
205 ddsub241 subtract 0 '-56267E-11' -> '5.6267E-7' |
|
206 ddsub242 subtract 0 '-56267E-10' -> '0.0000056267' |
|
207 ddsub243 subtract 0 '-56267E-9' -> '0.000056267' |
|
208 ddsub244 subtract 0 '-56267E-8' -> '0.00056267' |
|
209 ddsub245 subtract 0 '-56267E-7' -> '0.0056267' |
|
210 ddsub246 subtract 0 '-56267E-6' -> '0.056267' |
|
211 ddsub247 subtract 0 '-56267E-5' -> '0.56267' |
|
212 ddsub248 subtract 0 '-56267E-2' -> '562.67' |
|
213 ddsub249 subtract 0 '-56267E-1' -> '5626.7' |
|
214 ddsub250 subtract 0 '-56267E-0' -> '56267' |
|
215 |
|
216 -- now some more from the 'new' add |
|
217 ddsub301 subtract '1.23456789' '1.00000000' -> '0.23456789' |
|
218 ddsub302 subtract '1.23456789' '1.00000011' -> '0.23456778' |
|
219 |
|
220 -- some carrying effects |
|
221 ddsub321 subtract '0.9998' '0.0000' -> '0.9998' |
|
222 ddsub322 subtract '0.9998' '0.0001' -> '0.9997' |
|
223 ddsub323 subtract '0.9998' '0.0002' -> '0.9996' |
|
224 ddsub324 subtract '0.9998' '0.0003' -> '0.9995' |
|
225 ddsub325 subtract '0.9998' '-0.0000' -> '0.9998' |
|
226 ddsub326 subtract '0.9998' '-0.0001' -> '0.9999' |
|
227 ddsub327 subtract '0.9998' '-0.0002' -> '1.0000' |
|
228 ddsub328 subtract '0.9998' '-0.0003' -> '1.0001' |
|
229 |
|
230 -- internal boundaries |
|
231 ddsub346 subtract '10000e+9' '7' -> '9999999999993' |
|
232 ddsub347 subtract '10000e+9' '70' -> '9999999999930' |
|
233 ddsub348 subtract '10000e+9' '700' -> '9999999999300' |
|
234 ddsub349 subtract '10000e+9' '7000' -> '9999999993000' |
|
235 ddsub350 subtract '10000e+9' '70000' -> '9999999930000' |
|
236 ddsub351 subtract '10000e+9' '700000' -> '9999999300000' |
|
237 ddsub352 subtract '7' '10000e+9' -> '-9999999999993' |
|
238 ddsub353 subtract '70' '10000e+9' -> '-9999999999930' |
|
239 ddsub354 subtract '700' '10000e+9' -> '-9999999999300' |
|
240 ddsub355 subtract '7000' '10000e+9' -> '-9999999993000' |
|
241 ddsub356 subtract '70000' '10000e+9' -> '-9999999930000' |
|
242 ddsub357 subtract '700000' '10000e+9' -> '-9999999300000' |
|
243 |
|
244 -- zero preservation |
|
245 ddsub361 subtract 1 '0.0001' -> '0.9999' |
|
246 ddsub362 subtract 1 '0.00001' -> '0.99999' |
|
247 ddsub363 subtract 1 '0.000001' -> '0.999999' |
|
248 ddsub364 subtract 1 '0.0000000000000001' -> '0.9999999999999999' |
|
249 ddsub365 subtract 1 '0.00000000000000001' -> '1.000000000000000' Inexact Rounded |
|
250 ddsub366 subtract 1 '0.000000000000000001' -> '1.000000000000000' Inexact Rounded |
|
251 |
|
252 -- some funny zeros [in case of bad signum] |
|
253 ddsub370 subtract 1 0 -> 1 |
|
254 ddsub371 subtract 1 0. -> 1 |
|
255 ddsub372 subtract 1 .0 -> 1.0 |
|
256 ddsub373 subtract 1 0.0 -> 1.0 |
|
257 ddsub374 subtract 0 1 -> -1 |
|
258 ddsub375 subtract 0. 1 -> -1 |
|
259 ddsub376 subtract .0 1 -> -1.0 |
|
260 ddsub377 subtract 0.0 1 -> -1.0 |
|
261 |
|
262 -- leading 0 digit before round |
|
263 ddsub910 subtract -103519362 -51897955.3 -> -51621406.7 |
|
264 ddsub911 subtract 159579.444 89827.5229 -> 69751.9211 |
|
265 |
|
266 ddsub920 subtract 333.0000000123456 33.00000001234566 -> 299.9999999999999 Inexact Rounded |
|
267 ddsub921 subtract 333.0000000123456 33.00000001234565 -> 300.0000000000000 Inexact Rounded |
|
268 ddsub922 subtract 133.0000000123456 33.00000001234565 -> 99.99999999999995 |
|
269 ddsub923 subtract 133.0000000123456 33.00000001234564 -> 99.99999999999996 |
|
270 ddsub924 subtract 133.0000000123456 33.00000001234540 -> 100.0000000000002 Rounded |
|
271 ddsub925 subtract 133.0000000123456 43.00000001234560 -> 90.00000000000000 |
|
272 ddsub926 subtract 133.0000000123456 43.00000001234561 -> 89.99999999999999 |
|
273 ddsub927 subtract 133.0000000123456 43.00000001234566 -> 89.99999999999994 |
|
274 ddsub928 subtract 101.0000000123456 91.00000001234566 -> 9.99999999999994 |
|
275 ddsub929 subtract 101.0000000123456 99.00000001234566 -> 1.99999999999994 |
|
276 |
|
277 -- more LHS swaps [were fixed] |
|
278 ddsub390 subtract '-56267E-10' 0 -> '-0.0000056267' |
|
279 ddsub391 subtract '-56267E-6' 0 -> '-0.056267' |
|
280 ddsub392 subtract '-56267E-5' 0 -> '-0.56267' |
|
281 ddsub393 subtract '-56267E-4' 0 -> '-5.6267' |
|
282 ddsub394 subtract '-56267E-3' 0 -> '-56.267' |
|
283 ddsub395 subtract '-56267E-2' 0 -> '-562.67' |
|
284 ddsub396 subtract '-56267E-1' 0 -> '-5626.7' |
|
285 ddsub397 subtract '-56267E-0' 0 -> '-56267' |
|
286 ddsub398 subtract '-5E-10' 0 -> '-5E-10' |
|
287 ddsub399 subtract '-5E-7' 0 -> '-5E-7' |
|
288 ddsub400 subtract '-5E-6' 0 -> '-0.000005' |
|
289 ddsub401 subtract '-5E-5' 0 -> '-0.00005' |
|
290 ddsub402 subtract '-5E-4' 0 -> '-0.0005' |
|
291 ddsub403 subtract '-5E-1' 0 -> '-0.5' |
|
292 ddsub404 subtract '-5E0' 0 -> '-5' |
|
293 ddsub405 subtract '-5E1' 0 -> '-50' |
|
294 ddsub406 subtract '-5E5' 0 -> '-500000' |
|
295 ddsub407 subtract '-5E15' 0 -> '-5000000000000000' |
|
296 ddsub408 subtract '-5E16' 0 -> '-5.000000000000000E+16' Rounded |
|
297 ddsub409 subtract '-5E17' 0 -> '-5.000000000000000E+17' Rounded |
|
298 ddsub410 subtract '-5E18' 0 -> '-5.000000000000000E+18' Rounded |
|
299 ddsub411 subtract '-5E100' 0 -> '-5.000000000000000E+100' Rounded |
|
300 |
|
301 -- more RHS swaps [were fixed] |
|
302 ddsub420 subtract 0 '-56267E-10' -> '0.0000056267' |
|
303 ddsub421 subtract 0 '-56267E-6' -> '0.056267' |
|
304 ddsub422 subtract 0 '-56267E-5' -> '0.56267' |
|
305 ddsub423 subtract 0 '-56267E-4' -> '5.6267' |
|
306 ddsub424 subtract 0 '-56267E-3' -> '56.267' |
|
307 ddsub425 subtract 0 '-56267E-2' -> '562.67' |
|
308 ddsub426 subtract 0 '-56267E-1' -> '5626.7' |
|
309 ddsub427 subtract 0 '-56267E-0' -> '56267' |
|
310 ddsub428 subtract 0 '-5E-10' -> '5E-10' |
|
311 ddsub429 subtract 0 '-5E-7' -> '5E-7' |
|
312 ddsub430 subtract 0 '-5E-6' -> '0.000005' |
|
313 ddsub431 subtract 0 '-5E-5' -> '0.00005' |
|
314 ddsub432 subtract 0 '-5E-4' -> '0.0005' |
|
315 ddsub433 subtract 0 '-5E-1' -> '0.5' |
|
316 ddsub434 subtract 0 '-5E0' -> '5' |
|
317 ddsub435 subtract 0 '-5E1' -> '50' |
|
318 ddsub436 subtract 0 '-5E5' -> '500000' |
|
319 ddsub437 subtract 0 '-5E15' -> '5000000000000000' |
|
320 ddsub438 subtract 0 '-5E16' -> '5.000000000000000E+16' Rounded |
|
321 ddsub439 subtract 0 '-5E17' -> '5.000000000000000E+17' Rounded |
|
322 ddsub440 subtract 0 '-5E18' -> '5.000000000000000E+18' Rounded |
|
323 ddsub441 subtract 0 '-5E100' -> '5.000000000000000E+100' Rounded |
|
324 |
|
325 |
|
326 -- try borderline precision, with carries, etc. |
|
327 ddsub461 subtract '1E+16' '1' -> '9999999999999999' |
|
328 ddsub462 subtract '1E+12' '-1.111' -> '1000000000001.111' |
|
329 ddsub463 subtract '1.111' '-1E+12' -> '1000000000001.111' |
|
330 ddsub464 subtract '-1' '-1E+16' -> '9999999999999999' |
|
331 ddsub465 subtract '7E+15' '1' -> '6999999999999999' |
|
332 ddsub466 subtract '7E+12' '-1.111' -> '7000000000001.111' |
|
333 ddsub467 subtract '1.111' '-7E+12' -> '7000000000001.111' |
|
334 ddsub468 subtract '-1' '-7E+15' -> '6999999999999999' |
|
335 |
|
336 -- 1234567890123456 1234567890123456 1 23456789012345 |
|
337 ddsub470 subtract '0.4444444444444444' '-0.5555555555555563' -> '1.000000000000001' Inexact Rounded |
|
338 ddsub471 subtract '0.4444444444444444' '-0.5555555555555562' -> '1.000000000000001' Inexact Rounded |
|
339 ddsub472 subtract '0.4444444444444444' '-0.5555555555555561' -> '1.000000000000000' Inexact Rounded |
|
340 ddsub473 subtract '0.4444444444444444' '-0.5555555555555560' -> '1.000000000000000' Inexact Rounded |
|
341 ddsub474 subtract '0.4444444444444444' '-0.5555555555555559' -> '1.000000000000000' Inexact Rounded |
|
342 ddsub475 subtract '0.4444444444444444' '-0.5555555555555558' -> '1.000000000000000' Inexact Rounded |
|
343 ddsub476 subtract '0.4444444444444444' '-0.5555555555555557' -> '1.000000000000000' Inexact Rounded |
|
344 ddsub477 subtract '0.4444444444444444' '-0.5555555555555556' -> '1.000000000000000' Rounded |
|
345 ddsub478 subtract '0.4444444444444444' '-0.5555555555555555' -> '0.9999999999999999' |
|
346 ddsub479 subtract '0.4444444444444444' '-0.5555555555555554' -> '0.9999999999999998' |
|
347 ddsub480 subtract '0.4444444444444444' '-0.5555555555555553' -> '0.9999999999999997' |
|
348 ddsub481 subtract '0.4444444444444444' '-0.5555555555555552' -> '0.9999999999999996' |
|
349 ddsub482 subtract '0.4444444444444444' '-0.5555555555555551' -> '0.9999999999999995' |
|
350 ddsub483 subtract '0.4444444444444444' '-0.5555555555555550' -> '0.9999999999999994' |
|
351 |
|
352 -- and some more, including residue effects and different roundings |
|
353 rounding: half_up |
|
354 ddsub500 subtract '1231234567456789' 0 -> '1231234567456789' |
|
355 ddsub501 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded |
|
356 ddsub502 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded |
|
357 ddsub503 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded |
|
358 ddsub504 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded |
|
359 ddsub505 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded |
|
360 ddsub506 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded |
|
361 ddsub507 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded |
|
362 ddsub508 subtract '1231234567456789' 0.5 -> '1231234567456789' Inexact Rounded |
|
363 ddsub509 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded |
|
364 ddsub510 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded |
|
365 ddsub511 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded |
|
366 ddsub512 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded |
|
367 ddsub513 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded |
|
368 ddsub514 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded |
|
369 ddsub515 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded |
|
370 ddsub516 subtract '1231234567456789' 1 -> '1231234567456788' |
|
371 ddsub517 subtract '1231234567456789' 1.000000001 -> '1231234567456788' Inexact Rounded |
|
372 ddsub518 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded |
|
373 ddsub519 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded |
|
374 |
|
375 rounding: half_even |
|
376 ddsub520 subtract '1231234567456789' 0 -> '1231234567456789' |
|
377 ddsub521 subtract '1231234567456789' 0.000000001 -> '1231234567456789' Inexact Rounded |
|
378 ddsub522 subtract '1231234567456789' 0.000001 -> '1231234567456789' Inexact Rounded |
|
379 ddsub523 subtract '1231234567456789' 0.1 -> '1231234567456789' Inexact Rounded |
|
380 ddsub524 subtract '1231234567456789' 0.4 -> '1231234567456789' Inexact Rounded |
|
381 ddsub525 subtract '1231234567456789' 0.49 -> '1231234567456789' Inexact Rounded |
|
382 ddsub526 subtract '1231234567456789' 0.499999 -> '1231234567456789' Inexact Rounded |
|
383 ddsub527 subtract '1231234567456789' 0.499999999 -> '1231234567456789' Inexact Rounded |
|
384 ddsub528 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded |
|
385 ddsub529 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded |
|
386 ddsub530 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded |
|
387 ddsub531 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded |
|
388 ddsub532 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded |
|
389 ddsub533 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded |
|
390 ddsub534 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded |
|
391 ddsub535 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded |
|
392 ddsub536 subtract '1231234567456789' 1 -> '1231234567456788' |
|
393 ddsub537 subtract '1231234567456789' 1.00000001 -> '1231234567456788' Inexact Rounded |
|
394 ddsub538 subtract '1231234567456789' 1.00001 -> '1231234567456788' Inexact Rounded |
|
395 ddsub539 subtract '1231234567456789' 1.1 -> '1231234567456788' Inexact Rounded |
|
396 -- critical few with even bottom digit... |
|
397 ddsub540 subtract '1231234567456788' 0.499999999 -> '1231234567456788' Inexact Rounded |
|
398 ddsub541 subtract '1231234567456788' 0.5 -> '1231234567456788' Inexact Rounded |
|
399 ddsub542 subtract '1231234567456788' 0.500000001 -> '1231234567456787' Inexact Rounded |
|
400 |
|
401 rounding: down |
|
402 ddsub550 subtract '1231234567456789' 0 -> '1231234567456789' |
|
403 ddsub551 subtract '1231234567456789' 0.000000001 -> '1231234567456788' Inexact Rounded |
|
404 ddsub552 subtract '1231234567456789' 0.000001 -> '1231234567456788' Inexact Rounded |
|
405 ddsub553 subtract '1231234567456789' 0.1 -> '1231234567456788' Inexact Rounded |
|
406 ddsub554 subtract '1231234567456789' 0.4 -> '1231234567456788' Inexact Rounded |
|
407 ddsub555 subtract '1231234567456789' 0.49 -> '1231234567456788' Inexact Rounded |
|
408 ddsub556 subtract '1231234567456789' 0.499999 -> '1231234567456788' Inexact Rounded |
|
409 ddsub557 subtract '1231234567456789' 0.499999999 -> '1231234567456788' Inexact Rounded |
|
410 ddsub558 subtract '1231234567456789' 0.5 -> '1231234567456788' Inexact Rounded |
|
411 ddsub559 subtract '1231234567456789' 0.500000001 -> '1231234567456788' Inexact Rounded |
|
412 ddsub560 subtract '1231234567456789' 0.500001 -> '1231234567456788' Inexact Rounded |
|
413 ddsub561 subtract '1231234567456789' 0.51 -> '1231234567456788' Inexact Rounded |
|
414 ddsub562 subtract '1231234567456789' 0.6 -> '1231234567456788' Inexact Rounded |
|
415 ddsub563 subtract '1231234567456789' 0.9 -> '1231234567456788' Inexact Rounded |
|
416 ddsub564 subtract '1231234567456789' 0.99999 -> '1231234567456788' Inexact Rounded |
|
417 ddsub565 subtract '1231234567456789' 0.999999999 -> '1231234567456788' Inexact Rounded |
|
418 ddsub566 subtract '1231234567456789' 1 -> '1231234567456788' |
|
419 ddsub567 subtract '1231234567456789' 1.00000001 -> '1231234567456787' Inexact Rounded |
|
420 ddsub568 subtract '1231234567456789' 1.00001 -> '1231234567456787' Inexact Rounded |
|
421 ddsub569 subtract '1231234567456789' 1.1 -> '1231234567456787' Inexact Rounded |
|
422 |
|
423 -- symmetry... |
|
424 rounding: half_up |
|
425 ddsub600 subtract 0 '1231234567456789' -> '-1231234567456789' |
|
426 ddsub601 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
427 ddsub602 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
428 ddsub603 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
429 ddsub604 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
430 ddsub605 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
431 ddsub606 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
432 ddsub607 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
433 ddsub608 subtract 0.5 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
434 ddsub609 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
435 ddsub610 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
436 ddsub611 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
437 ddsub612 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
438 ddsub613 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
439 ddsub614 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
440 ddsub615 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
441 ddsub616 subtract 1 '1231234567456789' -> '-1231234567456788' |
|
442 ddsub617 subtract 1.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
443 ddsub618 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
444 ddsub619 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
445 |
|
446 rounding: half_even |
|
447 ddsub620 subtract 0 '1231234567456789' -> '-1231234567456789' |
|
448 ddsub621 subtract 0.000000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
449 ddsub622 subtract 0.000001 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
450 ddsub623 subtract 0.1 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
451 ddsub624 subtract 0.4 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
452 ddsub625 subtract 0.49 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
453 ddsub626 subtract 0.499999 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
454 ddsub627 subtract 0.499999999 '1231234567456789' -> '-1231234567456789' Inexact Rounded |
|
455 ddsub628 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
456 ddsub629 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
457 ddsub630 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
458 ddsub631 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
459 ddsub632 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
460 ddsub633 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
461 ddsub634 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
462 ddsub635 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
463 ddsub636 subtract 1 '1231234567456789' -> '-1231234567456788' |
|
464 ddsub637 subtract 1.00000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
465 ddsub638 subtract 1.00001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
466 ddsub639 subtract 1.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
467 -- critical few with even bottom digit... |
|
468 ddsub640 subtract 0.499999999 '1231234567456788' -> '-1231234567456788' Inexact Rounded |
|
469 ddsub641 subtract 0.5 '1231234567456788' -> '-1231234567456788' Inexact Rounded |
|
470 ddsub642 subtract 0.500000001 '1231234567456788' -> '-1231234567456787' Inexact Rounded |
|
471 |
|
472 rounding: down |
|
473 ddsub650 subtract 0 '1231234567456789' -> '-1231234567456789' |
|
474 ddsub651 subtract 0.000000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
475 ddsub652 subtract 0.000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
476 ddsub653 subtract 0.1 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
477 ddsub654 subtract 0.4 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
478 ddsub655 subtract 0.49 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
479 ddsub656 subtract 0.499999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
480 ddsub657 subtract 0.499999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
481 ddsub658 subtract 0.5 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
482 ddsub659 subtract 0.500000001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
483 ddsub660 subtract 0.500001 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
484 ddsub661 subtract 0.51 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
485 ddsub662 subtract 0.6 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
486 ddsub663 subtract 0.9 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
487 ddsub664 subtract 0.99999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
488 ddsub665 subtract 0.999999999 '1231234567456789' -> '-1231234567456788' Inexact Rounded |
|
489 ddsub666 subtract 1 '1231234567456789' -> '-1231234567456788' |
|
490 ddsub667 subtract 1.00000001 '1231234567456789' -> '-1231234567456787' Inexact Rounded |
|
491 ddsub668 subtract 1.00001 '1231234567456789' -> '-1231234567456787' Inexact Rounded |
|
492 ddsub669 subtract 1.1 '1231234567456789' -> '-1231234567456787' Inexact Rounded |
|
493 |
|
494 |
|
495 -- lots of leading zeros in intermediate result, and showing effects of |
|
496 -- input rounding would have affected the following |
|
497 rounding: half_up |
|
498 ddsub670 subtract '1234567456789' '1234567456788.1' -> 0.9 |
|
499 ddsub671 subtract '1234567456789' '1234567456788.9' -> 0.1 |
|
500 ddsub672 subtract '1234567456789' '1234567456789.1' -> -0.1 |
|
501 ddsub673 subtract '1234567456789' '1234567456789.5' -> -0.5 |
|
502 ddsub674 subtract '1234567456789' '1234567456789.9' -> -0.9 |
|
503 |
|
504 rounding: half_even |
|
505 ddsub680 subtract '1234567456789' '1234567456788.1' -> 0.9 |
|
506 ddsub681 subtract '1234567456789' '1234567456788.9' -> 0.1 |
|
507 ddsub682 subtract '1234567456789' '1234567456789.1' -> -0.1 |
|
508 ddsub683 subtract '1234567456789' '1234567456789.5' -> -0.5 |
|
509 ddsub684 subtract '1234567456789' '1234567456789.9' -> -0.9 |
|
510 |
|
511 ddsub685 subtract '1234567456788' '1234567456787.1' -> 0.9 |
|
512 ddsub686 subtract '1234567456788' '1234567456787.9' -> 0.1 |
|
513 ddsub687 subtract '1234567456788' '1234567456788.1' -> -0.1 |
|
514 ddsub688 subtract '1234567456788' '1234567456788.5' -> -0.5 |
|
515 ddsub689 subtract '1234567456788' '1234567456788.9' -> -0.9 |
|
516 |
|
517 rounding: down |
|
518 ddsub690 subtract '1234567456789' '1234567456788.1' -> 0.9 |
|
519 ddsub691 subtract '1234567456789' '1234567456788.9' -> 0.1 |
|
520 ddsub692 subtract '1234567456789' '1234567456789.1' -> -0.1 |
|
521 ddsub693 subtract '1234567456789' '1234567456789.5' -> -0.5 |
|
522 ddsub694 subtract '1234567456789' '1234567456789.9' -> -0.9 |
|
523 |
|
524 -- Specials |
|
525 ddsub780 subtract -Inf Inf -> -Infinity |
|
526 ddsub781 subtract -Inf 1000 -> -Infinity |
|
527 ddsub782 subtract -Inf 1 -> -Infinity |
|
528 ddsub783 subtract -Inf -0 -> -Infinity |
|
529 ddsub784 subtract -Inf -1 -> -Infinity |
|
530 ddsub785 subtract -Inf -1000 -> -Infinity |
|
531 ddsub787 subtract -1000 Inf -> -Infinity |
|
532 ddsub788 subtract -Inf Inf -> -Infinity |
|
533 ddsub789 subtract -1 Inf -> -Infinity |
|
534 ddsub790 subtract 0 Inf -> -Infinity |
|
535 ddsub791 subtract 1 Inf -> -Infinity |
|
536 ddsub792 subtract 1000 Inf -> -Infinity |
|
537 |
|
538 ddsub800 subtract Inf Inf -> NaN Invalid_operation |
|
539 ddsub801 subtract Inf 1000 -> Infinity |
|
540 ddsub802 subtract Inf 1 -> Infinity |
|
541 ddsub803 subtract Inf 0 -> Infinity |
|
542 ddsub804 subtract Inf -0 -> Infinity |
|
543 ddsub805 subtract Inf -1 -> Infinity |
|
544 ddsub806 subtract Inf -1000 -> Infinity |
|
545 ddsub807 subtract Inf -Inf -> Infinity |
|
546 ddsub808 subtract -1000 -Inf -> Infinity |
|
547 ddsub809 subtract -Inf -Inf -> NaN Invalid_operation |
|
548 ddsub810 subtract -1 -Inf -> Infinity |
|
549 ddsub811 subtract -0 -Inf -> Infinity |
|
550 ddsub812 subtract 0 -Inf -> Infinity |
|
551 ddsub813 subtract 1 -Inf -> Infinity |
|
552 ddsub814 subtract 1000 -Inf -> Infinity |
|
553 ddsub815 subtract Inf -Inf -> Infinity |
|
554 |
|
555 ddsub821 subtract NaN Inf -> NaN |
|
556 ddsub822 subtract -NaN 1000 -> -NaN |
|
557 ddsub823 subtract NaN 1 -> NaN |
|
558 ddsub824 subtract NaN 0 -> NaN |
|
559 ddsub825 subtract NaN -0 -> NaN |
|
560 ddsub826 subtract NaN -1 -> NaN |
|
561 ddsub827 subtract NaN -1000 -> NaN |
|
562 ddsub828 subtract NaN -Inf -> NaN |
|
563 ddsub829 subtract -NaN NaN -> -NaN |
|
564 ddsub830 subtract -Inf NaN -> NaN |
|
565 ddsub831 subtract -1000 NaN -> NaN |
|
566 ddsub832 subtract -1 NaN -> NaN |
|
567 ddsub833 subtract -0 NaN -> NaN |
|
568 ddsub834 subtract 0 NaN -> NaN |
|
569 ddsub835 subtract 1 NaN -> NaN |
|
570 ddsub836 subtract 1000 -NaN -> -NaN |
|
571 ddsub837 subtract Inf NaN -> NaN |
|
572 |
|
573 ddsub841 subtract sNaN Inf -> NaN Invalid_operation |
|
574 ddsub842 subtract -sNaN 1000 -> -NaN Invalid_operation |
|
575 ddsub843 subtract sNaN 1 -> NaN Invalid_operation |
|
576 ddsub844 subtract sNaN 0 -> NaN Invalid_operation |
|
577 ddsub845 subtract sNaN -0 -> NaN Invalid_operation |
|
578 ddsub846 subtract sNaN -1 -> NaN Invalid_operation |
|
579 ddsub847 subtract sNaN -1000 -> NaN Invalid_operation |
|
580 ddsub848 subtract sNaN NaN -> NaN Invalid_operation |
|
581 ddsub849 subtract sNaN sNaN -> NaN Invalid_operation |
|
582 ddsub850 subtract NaN sNaN -> NaN Invalid_operation |
|
583 ddsub851 subtract -Inf -sNaN -> -NaN Invalid_operation |
|
584 ddsub852 subtract -1000 sNaN -> NaN Invalid_operation |
|
585 ddsub853 subtract -1 sNaN -> NaN Invalid_operation |
|
586 ddsub854 subtract -0 sNaN -> NaN Invalid_operation |
|
587 ddsub855 subtract 0 sNaN -> NaN Invalid_operation |
|
588 ddsub856 subtract 1 sNaN -> NaN Invalid_operation |
|
589 ddsub857 subtract 1000 sNaN -> NaN Invalid_operation |
|
590 ddsub858 subtract Inf sNaN -> NaN Invalid_operation |
|
591 ddsub859 subtract NaN sNaN -> NaN Invalid_operation |
|
592 |
|
593 -- propagating NaNs |
|
594 ddsub861 subtract NaN01 -Inf -> NaN1 |
|
595 ddsub862 subtract -NaN02 -1000 -> -NaN2 |
|
596 ddsub863 subtract NaN03 1000 -> NaN3 |
|
597 ddsub864 subtract NaN04 Inf -> NaN4 |
|
598 ddsub865 subtract NaN05 NaN61 -> NaN5 |
|
599 ddsub866 subtract -Inf -NaN71 -> -NaN71 |
|
600 ddsub867 subtract -1000 NaN81 -> NaN81 |
|
601 ddsub868 subtract 1000 NaN91 -> NaN91 |
|
602 ddsub869 subtract Inf NaN101 -> NaN101 |
|
603 ddsub871 subtract sNaN011 -Inf -> NaN11 Invalid_operation |
|
604 ddsub872 subtract sNaN012 -1000 -> NaN12 Invalid_operation |
|
605 ddsub873 subtract -sNaN013 1000 -> -NaN13 Invalid_operation |
|
606 ddsub874 subtract sNaN014 NaN171 -> NaN14 Invalid_operation |
|
607 ddsub875 subtract sNaN015 sNaN181 -> NaN15 Invalid_operation |
|
608 ddsub876 subtract NaN016 sNaN191 -> NaN191 Invalid_operation |
|
609 ddsub877 subtract -Inf sNaN201 -> NaN201 Invalid_operation |
|
610 ddsub878 subtract -1000 sNaN211 -> NaN211 Invalid_operation |
|
611 ddsub879 subtract 1000 -sNaN221 -> -NaN221 Invalid_operation |
|
612 ddsub880 subtract Inf sNaN231 -> NaN231 Invalid_operation |
|
613 ddsub881 subtract NaN025 sNaN241 -> NaN241 Invalid_operation |
|
614 |
|
615 -- edge case spills |
|
616 ddsub901 subtract 2.E-3 1.002 -> -1.000 |
|
617 ddsub902 subtract 2.0E-3 1.002 -> -1.0000 |
|
618 ddsub903 subtract 2.00E-3 1.0020 -> -1.00000 |
|
619 ddsub904 subtract 2.000E-3 1.00200 -> -1.000000 |
|
620 ddsub905 subtract 2.0000E-3 1.002000 -> -1.0000000 |
|
621 ddsub906 subtract 2.00000E-3 1.0020000 -> -1.00000000 |
|
622 ddsub907 subtract 2.000000E-3 1.00200000 -> -1.000000000 |
|
623 ddsub908 subtract 2.0000000E-3 1.002000000 -> -1.0000000000 |
|
624 |
|
625 -- subnormals and overflows covered under Add |
|
626 |
|
627 -- Null tests |
|
628 ddsub9990 subtract 10 # -> NaN Invalid_operation |
|
629 ddsub9991 subtract # 10 -> NaN Invalid_operation |