|
1 ------------------------------------------------------------------------ |
|
2 -- dqCanonical.decTest -- test decQuad canonical results -- |
|
3 -- Copyright (c) IBM Corporation, 1981, 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 version: 2.57 |
|
21 |
|
22 -- This file tests that copy operations leave uncanonical operands |
|
23 -- unchanged, and vice versa |
|
24 |
|
25 -- All operands and results are decQuads. |
|
26 extended: 1 |
|
27 clamp: 1 |
|
28 precision: 34 |
|
29 maxExponent: 6144 |
|
30 minExponent: -6143 |
|
31 rounding: half_even |
|
32 |
|
33 -- Uncanonical declets are: abc, where: |
|
34 -- a=1,2,3 |
|
35 -- b=6,7,e,f |
|
36 -- c=e,f |
|
37 |
|
38 -- assert some standard (canonical) values; this tests that FromString |
|
39 -- produces canonical results (many more in decimalNN) |
|
40 dqcan001 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
41 dqcan002 apply 0 -> #22080000000000000000000000000000 |
|
42 dqcan003 apply 1 -> #22080000000000000000000000000001 |
|
43 dqcan004 apply -1 -> #a2080000000000000000000000000001 |
|
44 dqcan005 apply Infinity -> #78000000000000000000000000000000 |
|
45 dqcan006 apply -Infinity -> #f8000000000000000000000000000000 |
|
46 dqcan007 apply -NaN -> #fc000000000000000000000000000000 |
|
47 dqcan008 apply -sNaN -> #fe000000000000000000000000000000 |
|
48 dqcan009 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
49 dqcan010 apply sNaN999999999999999999999999999999999 -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
50 decan011 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff |
|
51 dqcan012 apply 7.50 -> #220780000000000000000000000003d0 |
|
52 dqcan013 apply 9.99 -> #220780000000000000000000000000ff |
|
53 |
|
54 -- Base tests for canonical encodings (individual operator |
|
55 -- propagation is tested later) |
|
56 |
|
57 -- Finites: declets in coefficient |
|
58 dqcan021 canonical #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
59 dqcan022 canonical #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
60 dqcan023 canonical #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
61 dqcan024 canonical #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
62 dqcan025 canonical #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
63 dqcan026 canonical #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
64 dqcan027 canonical #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
65 dqcan028 canonical #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
66 dqcan029 canonical #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
67 dqcan030 canonical #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
68 dqcan031 canonical #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
69 dqcan032 canonical #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
70 |
|
71 -- NaN: declets in payload |
|
72 dqcan061 canonical #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
73 dqcan062 canonical #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
74 dqcan063 canonical #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
75 dqcan064 canonical #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
76 dqcan065 canonical #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
77 dqcan066 canonical #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
78 dqcan067 canonical #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
79 dqcan068 canonical #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
80 dqcan069 canonical #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
81 dqcan070 canonical #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
82 dqcan071 canonical #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
83 -- NaN: exponent continuation bits [excluding sNaN selector] |
|
84 dqcan081 canonical #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
85 dqcan082 canonical #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
86 dqcan083 canonical #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
87 dqcan084 canonical #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
88 dqcan085 canonical #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
89 dqcan086 canonical #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
90 dqcan087 canonical #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
91 dqcan088 canonical #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
92 dqcan089 canonical #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
93 dqcan090 canonical #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
94 dqcan091 canonical #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
95 |
|
96 -- sNaN: declets in payload |
|
97 dqcan101 canonical #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
98 dqcan102 canonical #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
99 dqcan103 canonical #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
100 dqcan104 canonical #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
101 dqcan105 canonical #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
102 dqcan106 canonical #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
103 dqcan107 canonical #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
104 dqcan108 canonical #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
105 dqcan109 canonical #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
106 dqcan100 canonical #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
107 dqcan111 canonical #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
108 -- sNaN: exponent continuation bits [excluding sNaN selector] |
|
109 dqcan121 canonical #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
110 dqcan122 canonical #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
111 dqcan123 canonical #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
112 dqcan124 canonical #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
113 dqcan125 canonical #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
114 dqcan126 canonical #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
115 dqcan127 canonical #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
116 dqcan128 canonical #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
117 dqcan129 canonical #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
118 dqcan130 canonical #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
119 dqcan131 canonical #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff |
|
120 |
|
121 -- Inf: exponent continuation bits |
|
122 dqcan137 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000 |
|
123 dqcan138 canonical #79000000000000000000000000000000 -> #78000000000000000000000000000000 |
|
124 dqcan139 canonical #7a000000000000000000000000000000 -> #78000000000000000000000000000000 |
|
125 dqcan140 canonical #78800000000000000000000000000000 -> #78000000000000000000000000000000 |
|
126 dqcan141 canonical #78400000000000000000000000000000 -> #78000000000000000000000000000000 |
|
127 dqcan142 canonical #78200000000000000000000000000000 -> #78000000000000000000000000000000 |
|
128 dqcan143 canonical #78100000000000000000000000000000 -> #78000000000000000000000000000000 |
|
129 dqcan144 canonical #78080000000000000000000000000000 -> #78000000000000000000000000000000 |
|
130 dqcan145 canonical #78040000000000000000000000000000 -> #78000000000000000000000000000000 |
|
131 dqcan146 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000 |
|
132 dqcan147 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000 |
|
133 dqcan148 canonical #78008000000000000000000000000000 -> #78000000000000000000000000000000 |
|
134 dqcan149 canonical #78004000000000000000000000000000 -> #78000000000000000000000000000000 |
|
135 |
|
136 -- Inf: coefficient continuation bits (first, last, and a few others) |
|
137 dqcan150 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000 |
|
138 dqcan151 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000 |
|
139 dqcan152 canonical #78000000000000000000000000000001 -> #78000000000000000000000000000000 |
|
140 dqcan153 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000 |
|
141 dqcan154 canonical #78002000000000000000000000000000 -> #78000000000000000000000000000000 |
|
142 dqcan155 canonical #78000800000000000000000000000000 -> #78000000000000000000000000000000 |
|
143 dqcan156 canonical #78000020000000000000000000000000 -> #78000000000000000000000000000000 |
|
144 dqcan157 canonical #78000004000000000000000000000000 -> #78000000000000000000000000000000 |
|
145 dqcan158 canonical #78000000400000000000000000000000 -> #78000000000000000000000000000000 |
|
146 dqcan159 canonical #78000000080000000000000000000000 -> #78000000000000000000000000000000 |
|
147 dqcan160 canonical #78000000004000000000000000000000 -> #78000000000000000000000000000000 |
|
148 dqcan161 canonical #78000000000200000000000000000000 -> #78000000000000000000000000000000 |
|
149 dqcan162 canonical #78000000000080000000000000000000 -> #78000000000000000000000000000000 |
|
150 dqcan163 canonical #78000000000002000000000000000000 -> #78000000000000000000000000000000 |
|
151 dqcan164 canonical #78000000000000400000000000000000 -> #78000000000000000000000000000000 |
|
152 dqcan165 canonical #78000000000000080000000000000000 -> #78000000000000000000000000000000 |
|
153 dqcan166 canonical #78000000000000001000000000000000 -> #78000000000000000000000000000000 |
|
154 dqcan167 canonical #78000000000000000200000000000000 -> #78000000000000000000000000000000 |
|
155 dqcan168 canonical #78000000000000000080000000000000 -> #78000000000000000000000000000000 |
|
156 dqcan169 canonical #78000000000000000004000000000000 -> #78000000000000000000000000000000 |
|
157 dqcan170 canonical #78000000000000000000400000000000 -> #78000000000000000000000000000000 |
|
158 dqcan171 canonical #78000000000000000000010000000000 -> #78000000000000000000000000000000 |
|
159 dqcan172 canonical #78000000000000000000002000000000 -> #78000000000000000000000000000000 |
|
160 dqcan173 canonical #78000000000000000000000400000000 -> #78000000000000000000000000000000 |
|
161 dqcan174 canonical #78000000000000000000000080000000 -> #78000000000000000000000000000000 |
|
162 dqcan175 canonical #78000000000000000000000002000000 -> #78000000000000000000000000000000 |
|
163 dqcan176 canonical #78000000000000000000000000400000 -> #78000000000000000000000000000000 |
|
164 dqcan177 canonical #78000000000000000000000000020000 -> #78000000000000000000000000000000 |
|
165 dqcan178 canonical #78000000000000000000000000001000 -> #78000000000000000000000000000000 |
|
166 dqcan179 canonical #78000000000000000000000000000400 -> #78000000000000000000000000000000 |
|
167 dqcan180 canonical #78000000000000000000000000000020 -> #78000000000000000000000000000000 |
|
168 dqcan181 canonical #78000000000000000000000000000008 -> #78000000000000000000000000000000 |
|
169 |
|
170 |
|
171 -- Now the operators -- trying to check paths that might fail to |
|
172 -- canonicalize propagated operands |
|
173 |
|
174 ----- Add: |
|
175 -- Finites: neutral 0 |
|
176 dqcan202 add 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
177 dqcan203 add #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
178 -- tiny zero |
|
179 dqcan204 add 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded |
|
180 dqcan205 add #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded |
|
181 -- tiny non zero |
|
182 dqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded |
|
183 dqcan207 add #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded |
|
184 -- NaN: declets in payload |
|
185 dqcan211 add 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
186 dqcan212 add #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
187 -- NaN: exponent continuation bits [excluding sNaN selector] |
|
188 dqcan213 add 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
189 dqcan214 add #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
190 -- sNaN: declets in payload |
|
191 dqcan215 add 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
192 dqcan216 add #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
193 -- sNaN: exponent continuation bits [excluding sNaN selector] |
|
194 dqcan217 add 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
195 dqcan218 add #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
196 -- Inf: exponent continuation bits |
|
197 dqcan220 add 0 #78010000000000000000000000000000 -> #78000000000000000000000000000000 |
|
198 dqcan221 add #78680000000000000000000000000000 0 -> #78000000000000000000000000000000 |
|
199 -- Inf: coefficient continuation bits |
|
200 dqcan222 add 0 #78002000000000000000000000000000 -> #78000000000000000000000000000000 |
|
201 dqcan223 add #78000000000000000000000000000001 0 -> #78000000000000000000000000000000 |
|
202 dqcan224 add 0 #78000002000000000000000000000000 -> #78000000000000000000000000000000 |
|
203 dqcan225 add #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000 |
|
204 dqcan226 add 0 #78000000000000000005000000000000 -> #78000000000000000000000000000000 |
|
205 dqcan227 add #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000 |
|
206 |
|
207 ----- Class: [does not return encoded] |
|
208 |
|
209 ----- Compare: |
|
210 dqcan231 compare -Inf 1 -> #a2080000000000000000000000000001 |
|
211 dqcan232 compare -Inf -Inf -> #22080000000000000000000000000000 |
|
212 dqcan233 compare 1 -Inf -> #22080000000000000000000000000001 |
|
213 dqcan234 compare #7c010ff3fcff3fcff3fcff3ffffffcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
214 dqcan235 compare #7e004ff3fcff3fcff3ffffffcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
215 |
|
216 ----- CompareSig: |
|
217 dqcan241 comparesig -Inf 1 -> #a2080000000000000000000000000001 |
|
218 dqcan242 comparesig -Inf -Inf -> #22080000000000000000000000000000 |
|
219 dqcan243 comparesig 1 -Inf -> #22080000000000000000000000000001 |
|
220 dqcan244 comparesig #7c400ff3ffff3fcff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
221 dqcan245 comparesig #7e050ff3fcfffffff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
222 |
|
223 ----- Copy: [does not usually canonicalize] |
|
224 -- finites |
|
225 dqcan250 copy #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff |
|
226 dqcan251 copy #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff |
|
227 -- NaNs |
|
228 dqcan252 copy #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff |
|
229 dqcan253 copy #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff |
|
230 -- sNaN |
|
231 dqcan254 copy #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff |
|
232 dqcan255 copy #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff |
|
233 -- Inf |
|
234 dqcan258 copy #78002000000000000000000000000000 -> #78002000000000000000000000000000 |
|
235 dqcan259 copy #78000000000010000000000000100000 -> #78000000000010000000000000100000 |
|
236 |
|
237 ----- CopyAbs: [does not usually canonicalize] |
|
238 -- finites |
|
239 dqcan260 copyabs #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff |
|
240 dqcan261 copyabs #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff |
|
241 -- NaNs |
|
242 dqcan262 copyabs #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff |
|
243 dqcan263 copyabs #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff |
|
244 -- sNaN |
|
245 dqcan264 copyabs #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff |
|
246 dqcan265 copyabs #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff |
|
247 -- Inf |
|
248 dqcan268 copyabs #f8002000000000000000000000000000 -> #78002000000000000000000000000000 |
|
249 dqcan269 copyabs #f8000000000000700700700000000000 -> #78000000000000700700700000000000 |
|
250 |
|
251 ----- CopyNegate: [does not usually canonicalize] |
|
252 -- finites |
|
253 dqcan270 copynegate #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff |
|
254 dqcan271 copynegate #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff |
|
255 -- NaNs |
|
256 dqcan272 copynegate #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff |
|
257 dqcan273 copynegate #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff |
|
258 -- sNaN |
|
259 dqcan274 copynegate #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff |
|
260 dqcan275 copynegate #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff |
|
261 -- Inf |
|
262 dqcan278 copynegate #78002000000000000000000000000000 -> #f8002000000000000000000000000000 |
|
263 dqcan279 copynegate #78000000000010000000000000100000 -> #f8000000000010000000000000100000 |
|
264 |
|
265 ----- CopySign: [does not usually canonicalize] |
|
266 -- finites |
|
267 dqcan280 copysign #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff |
|
268 dqcan281 copysign #ee080ff3fcff3ffff3fcff3ffff3fcff 1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff |
|
269 -- NaNs |
|
270 dqcan282 copysign #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff |
|
271 dqcan283 copysign #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff |
|
272 -- sNaN |
|
273 dqcan284 copysign #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff |
|
274 dqcan285 copysign #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff |
|
275 -- Inf |
|
276 dqcan288 copysign #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000 |
|
277 dqcan289 copysign #78000000000010000000000000100000 1 -> #78000000000010000000000000100000 |
|
278 |
|
279 ----- Multiply: |
|
280 -- Finites: neutral 0 |
|
281 dqcan302 multiply 1 #77ffff3fcff3fcff0000000000000000 -> #77ffff3fcff3fcff0000000000000000 |
|
282 dqcan303 multiply #77fcffffcff3fcff0000000000000000 1 -> #77fccfffcff3fcff0000000000000000 |
|
283 -- negative |
|
284 dqcan306 multiply -1 #77ffff3fcff3fcff0000000000000000 -> #f7ffff3fcff3fcff0000000000000000 |
|
285 dqcan307 multiply #77fcffffcff3fcff0000000000000000 -1 -> #f7fccfffcff3fcff0000000000000000 |
|
286 -- NaN: declets in payload |
|
287 dqcan311 multiply 1 #7c03ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 |
|
288 dqcan312 multiply #7c03ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 |
|
289 -- NaN: exponent continuation bits [excluding sNaN selector] |
|
290 dqcan313 multiply 1 #7c40ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 |
|
291 dqcan314 multiply #7c40ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 |
|
292 -- sNaN: declets in payload |
|
293 dqcan315 multiply 1 #7e00ffffcff3fcff0000000000000000 -> #7c000fffcff3fcff0000000000000000 Invalid_operation |
|
294 dqcan316 multiply #7e00ffffcff3fcff0000000000000000 1 -> #7c000fffcff3fcff0000000000000000 Invalid_operation |
|
295 -- sNaN: exponent continuation bits [excluding sNaN selector] |
|
296 dqcan317 multiply 1 #7e80ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation |
|
297 dqcan318 multiply #7e80ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation |
|
298 -- Inf: exponent continuation bits |
|
299 dqcan320 multiply 1 #78800000000000000000000000000000 -> #78000000000000000000000000000000 |
|
300 dqcan321 multiply #78800000000000000000000000000000 1 -> #78000000000000000000000000000000 |
|
301 -- Inf: coefficient continuation bits |
|
302 dqcan322 multiply 1 #78020000000000000000000000000000 -> #78000000000000000000000000000000 |
|
303 dqcan323 multiply #78020000000000000000000000000000 1 -> #78000000000000000000000000000000 |
|
304 dqcan324 multiply 1 #78000000000000010000000000000000 -> #78000000000000000000000000000000 |
|
305 dqcan325 multiply #78000000000000010000000000000000 1 -> #78000000000000000000000000000000 |
|
306 dqcan326 multiply 1 #78000020000000000000000000000000 -> #78000000000000000000000000000000 |
|
307 dqcan327 multiply #78000020000000000000000000000000 1 -> #78000000000000000000000000000000 |
|
308 |
|
309 ----- Quantize: |
|
310 dqcan401 quantize #ee080ff3fcff3fcff3fffffffff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff |
|
311 dqcan402 quantize #ee080ff3fffffffffffcff3fcff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff |
|
312 dqcan403 quantize #78800000000000000000000000000000 Inf -> #78000000000000000000000000000000 |
|
313 dqcan404 quantize #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000 |
|
314 dqcan410 quantize #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
315 dqcan411 quantize #fc000ff3fcfffffff3fcff3fcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff |
|
316 dqcan412 quantize #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
317 dqcan413 quantize #fe000ff3fcff3fcff3ffffffcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
318 |
|
319 ----- Subtract: |
|
320 -- Finites: neutral 0 |
|
321 dqcan502 subtract 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff |
|
322 dqcan503 subtract #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff |
|
323 -- tiny zero |
|
324 dqcan504 subtract 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded |
|
325 dqcan505 subtract #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded |
|
326 -- tiny non zero |
|
327 dqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded |
|
328 dqcan507 subtract #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded |
|
329 -- NaN: declets in payload |
|
330 dqcan511 subtract 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
331 dqcan512 subtract #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
332 -- NaN: exponent continuation bits [excluding sNaN selector] |
|
333 dqcan513 subtract 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
334 dqcan514 subtract #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
335 -- sNaN: declets in payload |
|
336 dqcan515 subtract 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
337 dqcan516 subtract #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
338 -- sNaN: exponent continuation bits [excluding sNaN selector] |
|
339 dqcan517 subtract 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
340 dqcan518 subtract #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
341 -- Inf: exponent continuation bits |
|
342 dqcan520 subtract 0 #78010000000000000000000000000000 -> #f8000000000000000000000000000000 |
|
343 dqcan521 subtract #78680000000000000000000000000000 0 -> #78000000000000000000000000000000 |
|
344 -- Inf: coefficient continuation bits |
|
345 dqcan522 subtract 0 #78002000000000000000000000000000 -> #f8000000000000000000000000000000 |
|
346 dqcan523 subtract #78000000000000000000000000000001 0 -> #78000000000000000000000000000000 |
|
347 dqcan524 subtract 0 #78000002000000000000000000000000 -> #f8000000000000000000000000000000 |
|
348 dqcan525 subtract #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000 |
|
349 dqcan526 subtract 0 #78000000000000000005000000000000 -> #f8000000000000000000000000000000 |
|
350 dqcan527 subtract #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000 |
|
351 |
|
352 ----- ToIntegral: |
|
353 dqcan601 tointegralx #6e080ff3fdff3fcff3fcff3fcff3fcff -> #6e080ff3fcff3fcff3fcff3fcff3fcff |
|
354 dqcan602 tointegralx #ee080ff3fcff3ffff3fcff3fcff3fcff -> #ee080ff3fcff3fcff3fcff3fcff3fcff |
|
355 dqcan603 tointegralx #78800000000000000000000000000000 -> #78000000000000000000000000000000 |
|
356 dqcan604 tointegralx #78020000000000000000000000000000 -> #78000000000000000000000000000000 |
|
357 dqcan614 tointegralx #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff |
|
358 dqcan615 tointegralx #fc000ff3fcff3fcff3fcffffcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff |
|
359 dqcan616 tointegralx #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
360 dqcan617 tointegralx #fe000ff3fcff3fcff3fdff3fcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation |
|
361 -- uncanonical 3999, 39.99, 3.99, 0.399, and negatives |
|
362 dqcan618 tointegralx #22080000000000000000000000000fff -> #22080000000000000000000000000cff |
|
363 dqcan619 tointegralx #22078000000000000000000000000fff -> #22080000000000000000000000000040 Inexact Rounded |
|
364 dqcan620 tointegralx #22074000000000000000000000000fff -> #22080000000000000000000000000004 Inexact Rounded |
|
365 dqcan621 tointegralx #22070000000000000000000000000fff -> #22080000000000000000000000000000 Inexact Rounded |
|
366 dqcan622 tointegralx #a2080000000000000000000000000fff -> #a2080000000000000000000000000cff |
|
367 dqcan623 tointegralx #a2078000000000000000000000000fff -> #a2080000000000000000000000000040 Inexact Rounded |
|
368 dqcan624 tointegralx #a2074000000000000000000000000fff -> #a2080000000000000000000000000004 Inexact Rounded |
|
369 dqcan625 tointegralx #a2070000000000000000000000000fff -> #a2080000000000000000000000000000 Inexact Rounded |
|
370 |
|
371 |
|
372 |