Commit | Line | Data |
---|---|---|
1d724f3f | 1 | # Test vectors for low-level MP functions |
2 | # | |
21bebf11 | 3 | # $Id: mpx,v 1.12 2004/04/01 12:50:41 mdw Exp $ |
1d724f3f | 4 | |
5 | # --- Load-store tests --- | |
6 | # | |
7 | # The test loads each number, as both big- and little-endian, and compares it | |
8 | # against the original octet version using a different method. It then | |
9 | # stores the value to another octet array and compares. This is done for | |
10 | # various sizes of MP, to ensure that truncation works correctly. | |
11 | ||
12 | load-store { | |
13 | ""; | |
14 | 00; | |
15 | 0123; | |
16 | 0123456789abcdef0123456789abcdef0123456789ab; | |
17 | 00000123456789abcdef01234789abcdef0123456789ab; | |
18 | 0123456789abcdef23456789abcdef0123456789ab0000; | |
19 | 80f8c5606bff51bac932859a4fb6331c4023b32b65cd95f4edc1d1c919fcc078; | |
20 | 522f8b1de257972a25ec49c9ff56340e2684e847ef2fa4d5714d7c8d454e90f6; | |
21 | } | |
22 | ||
f09e814a | 23 | # --- Two's complement tests --- |
24 | ||
25 | 2cb { | |
26 | "" ""; | |
27 | 00 00; | |
28 | 000000 00000000000000000000; | |
29 | 01 ff; | |
30 | 0123456789abcdef fedcba9876543211; | |
31 | 0123456789abcdef fffffffedcba9876543211; | |
32 | 0100000000 ffffff00000000; | |
2bd53494 | 33 | 00000000c1a4bc4b ffffffff3e5b43b5; |
34 | ffffffff3e5b43b5 00000000c1a4bc4b; | |
f09e814a | 35 | } |
36 | ||
37 | 2cl { | |
38 | "" ""; | |
39 | 00 00; | |
40 | 000000 00000000000000000000; | |
41 | 01 ff; | |
42 | efcdab8967452301 1132547698badcfe; | |
43 | efcdab8967452301 1132547698badcfeffffffff; | |
44 | 0000000001 00000000ffffffff; | |
2bd53494 | 45 | 4bbca4c100000000 b5435b3effffffff; |
46 | b5435b3effffffff 4bbca4c100000000; | |
f09e814a | 47 | } |
48 | ||
1d724f3f | 49 | # --- Shift tests --- |
50 | ||
51 | lsl { | |
1d724f3f | 52 | # --- Simple sanity checks --- |
53 | ||
54 | 01 2 04; | |
55 | 01 4 10; | |
56 | ||
4f29a732 | 57 | 7 -1 0; |
58 | ||
1d724f3f | 59 | # --- Copy shifts --- |
60 | ||
61 | 01 0 01; | |
62 | 0123456789abcdef0123456789abcdef 0 0123456789abcdef0123456789abcdef; | |
63 | ||
64 | # --- Single bit shifts --- | |
65 | ||
66 | 01 1 02; | |
67 | ff000000 1 01fe000000; | |
68 | ||
69 | # --- Word-size shifts (assumes 32-bit words) --- | |
70 | ||
71 | 0123456789abcdef0123456789abcdef 32 | |
72 | 0123456789abcdef0123456789abcdef00000000; | |
73 | ||
74 | # --- Random tests --- | |
75 | ||
23de8bae | 76 | 13bbec3a734e0b8b5155600b0826b913 90 |
77 | 4eefb0e9cd382e2d4555802c209ae44c0000000000000000000000; | |
1d724f3f | 78 | |
23de8bae | 79 | d6ca6a99fe49b256f80e9643e2bd4f3e 80 |
80 | d6ca6a99fe49b256f80e9643e2bd4f3e00000000000000000000; | |
81 | ||
82 | c94784b40d54de614084915915531ddc 59 | |
83 | 064a3c25a06aa6f30a04248ac8aa98eee000000000000000; | |
84 | ||
85 | a63c314a39cc37f950b3d530c95ead00 84 | |
86 | 0a63c314a39cc37f950b3d530c95ead00000000000000000000000; | |
1d724f3f | 87 | |
23de8bae | 88 | 842d03a339f5004cfd311e2bb23216ac 62 |
89 | 210b40e8ce7d40133f4c478aec8c85ab0000000000000000; | |
1d724f3f | 90 | |
23de8bae | 91 | 9a8e659739bf9ee7aa908b7c058c5e7e 123 |
92 | 04d4732cb9cdfcf73d54845be02c62f3f0000000000000000000000000000000; | |
1d724f3f | 93 | |
23de8bae | 94 | 287f5774f212db87bcd83a1bbb7b1ad5 6 |
95 | 0a1fd5dd3c84b6e1ef360e86eedec6b540; | |
1d724f3f | 96 | |
23de8bae | 97 | ec1739174d9d4438d3093cf378605a5c 63 |
98 | 760b9c8ba6cea21c69849e79bc302d2e0000000000000000; | |
1d724f3f | 99 | |
23de8bae | 100 | 3dfa8ad6a60a783639d05aa5fbfd993d 46 |
101 | 0f7ea2b5a9829e0d8e7416a97eff664f400000000000; | |
1d724f3f | 102 | |
23de8bae | 103 | e4e93a80b6d25b34c23aca3a0d06d76c 63 |
104 | 72749d405b692d9a611d651d06836bb60000000000000000; | |
1d724f3f | 105 | |
23de8bae | 106 | 5a4cf5becb4b64a1a31637c91b6415fd 102 |
107 | 16933d6fb2d2d92868c58df246d9057f40000000000000000000000000; | |
1d724f3f | 108 | |
23de8bae | 109 | d92f60928b67416c1e20bd9e09026115 69 |
110 | 1b25ec12516ce82d83c417b3c1204c22a00000000000000000; | |
1d724f3f | 111 | |
23de8bae | 112 | eae78f56200d7734f7eb68479fe09d51 18 |
113 | 03ab9e3d588035dcd3dfada11e7f8275440000; | |
1d724f3f | 114 | |
23de8bae | 115 | 4c9c215ead951513d969d66614016f6e 28 |
116 | 04c9c215ead951513d969d66614016f6e0000000; | |
1d724f3f | 117 | |
23de8bae | 118 | 5cb1e4d625eac0393644fe6a7e3ff788 33 |
119 | b963c9ac4bd580726c89fcd4fc7fef1000000000; | |
1d724f3f | 120 | |
23de8bae | 121 | 68b23795968766c77b1897c88a5d6ba8 78 |
122 | 1a2c8de565a1d9b1dec625f222975aea00000000000000000000; | |
1d724f3f | 123 | |
23de8bae | 124 | 3d96cd168c74f9015afb691d629f3f6d 72 |
125 | 3d96cd168c74f9015afb691d629f3f6d000000000000000000; | |
1d724f3f | 126 | |
23de8bae | 127 | 38fa8f63dc426399e0f9b5c01231e02c 95 |
128 | 1c7d47b1ee2131ccf07cdae00918f016000000000000000000000000; | |
129 | ||
130 | 90176b493061899ec95677ccc58b8cdf 78 | |
131 | 2405dad24c186267b2559df33162e337c0000000000000000000; | |
132 | ||
133 | 0706e95da68f32a4231ab184d16cbff7 33 | |
134 | 0e0dd2bb4d1e654846356309a2d97fee00000000; | |
1d724f3f | 135 | } |
136 | ||
81578196 | 137 | lslc { |
138 | # --- Simple sanity checks --- | |
139 | ||
140 | 01 2 07; | |
141 | 01 4 1f; | |
142 | ||
143 | 7 -1 0; | |
144 | ||
145 | # --- Copy shifts --- | |
146 | ||
147 | 01 0 01; | |
148 | 0123456789abcdef0123456789abcdef 0 0123456789abcdef0123456789abcdef; | |
149 | ||
150 | # --- Single bit shifts --- | |
151 | ||
152 | 01 1 03; | |
153 | ff000000 1 01fe000001; | |
154 | ||
155 | # --- Word-size shifts (assumes 32-bit words) --- | |
156 | ||
157 | 0123456789abcdef0123456789abcdef 32 | |
158 | 0123456789abcdef0123456789abcdefffffffff; | |
159 | ||
160 | # --- Random tests --- | |
161 | ||
162 | 13bbec3a734e0b8b5155600b0826b913 90 | |
163 | 4eefb0e9cd382e2d4555802c209ae44fffffffffffffffffffffff; | |
164 | ||
165 | d6ca6a99fe49b256f80e9643e2bd4f3e 80 | |
166 | d6ca6a99fe49b256f80e9643e2bd4f3effffffffffffffffffff; | |
167 | ||
168 | c94784b40d54de614084915915531ddc 59 | |
169 | 064a3c25a06aa6f30a04248ac8aa98eee7ffffffffffffff; | |
170 | ||
171 | a63c314a39cc37f950b3d530c95ead00 84 | |
172 | 0a63c314a39cc37f950b3d530c95ead00fffffffffffffffffffff; | |
173 | ||
174 | 842d03a339f5004cfd311e2bb23216ac 62 | |
175 | 210b40e8ce7d40133f4c478aec8c85ab3fffffffffffffff; | |
176 | ||
177 | 9a8e659739bf9ee7aa908b7c058c5e7e 123 | |
178 | 04d4732cb9cdfcf73d54845be02c62f3f7ffffffffffffffffffffffffffffff; | |
179 | ||
180 | 287f5774f212db87bcd83a1bbb7b1ad5 6 | |
181 | 0a1fd5dd3c84b6e1ef360e86eedec6b57f; | |
182 | ||
183 | ec1739174d9d4438d3093cf378605a5c 63 | |
184 | 760b9c8ba6cea21c69849e79bc302d2e7fffffffffffffff; | |
185 | ||
186 | 3dfa8ad6a60a783639d05aa5fbfd993d 46 | |
187 | 0f7ea2b5a9829e0d8e7416a97eff664f7fffffffffff; | |
188 | ||
189 | e4e93a80b6d25b34c23aca3a0d06d76c 63 | |
190 | 72749d405b692d9a611d651d06836bb67fffffffffffffff; | |
191 | ||
192 | 5a4cf5becb4b64a1a31637c91b6415fd 102 | |
193 | 16933d6fb2d2d92868c58df246d9057f7fffffffffffffffffffffffff; | |
194 | ||
195 | d92f60928b67416c1e20bd9e09026115 69 | |
196 | 1b25ec12516ce82d83c417b3c1204c22bfffffffffffffffff; | |
197 | ||
198 | eae78f56200d7734f7eb68479fe09d51 18 | |
199 | 03ab9e3d588035dcd3dfada11e7f827547ffff; | |
200 | ||
201 | 4c9c215ead951513d969d66614016f6e 28 | |
202 | 04c9c215ead951513d969d66614016f6efffffff; | |
203 | ||
204 | 5cb1e4d625eac0393644fe6a7e3ff788 33 | |
205 | b963c9ac4bd580726c89fcd4fc7fef11ffffffff; | |
206 | ||
207 | 68b23795968766c77b1897c88a5d6ba8 78 | |
208 | 1a2c8de565a1d9b1dec625f222975aea3fffffffffffffffffff; | |
209 | ||
210 | 3d96cd168c74f9015afb691d629f3f6d 72 | |
211 | 3d96cd168c74f9015afb691d629f3f6dffffffffffffffffff; | |
212 | ||
213 | 38fa8f63dc426399e0f9b5c01231e02c 95 | |
214 | 1c7d47b1ee2131ccf07cdae00918f0167fffffffffffffffffffffff; | |
215 | ||
216 | 90176b493061899ec95677ccc58b8cdf 78 | |
217 | 2405dad24c186267b2559df33162e337ffffffffffffffffffff; | |
218 | ||
219 | 0706e95da68f32a4231ab184d16cbff7 33 | |
220 | 0e0dd2bb4d1e654846356309a2d97fefffffffff; | |
221 | } | |
222 | ||
1d724f3f | 223 | lsr { |
1d724f3f | 224 | # --- Simple sanity checks --- |
225 | ||
226 | 04 2 01; | |
227 | 10 4 01; | |
4f29a732 | 228 | 7 -1 0; |
229 | 7 32 0; | |
1d724f3f | 230 | |
231 | # --- Copy shifts --- | |
232 | ||
233 | 01 0 01; | |
234 | 0123456789abcdef0123456789abcdef 0 0123456789abcdef0123456789abcdef; | |
235 | ||
236 | # --- Single bit shifts --- | |
237 | ||
238 | 02 1 01; | |
239 | 01fe000000 1 ff000000; | |
240 | ||
241 | # --- Word-size shifts (assumes 32-bit words) --- | |
242 | ||
243 | 0123456789abcdef0123456789abcdef 32 | |
244 | 0123456789abcdef01234567; | |
245 | ||
246 | # --- Random tests --- | |
247 | ||
23de8bae | 248 | eb4f57af83f78c0d67b3a6ad84e62378 120 |
249 | eb; | |
1d724f3f | 250 | |
23de8bae | 251 | c6a207d80522139f1fe168028d6afa8c 45 |
252 | 0635103ec029109cf8ff0b; | |
1d724f3f | 253 | |
23de8bae | 254 | 6027a129cf726a80445bf42a310ecd30 51 |
255 | 0c04f42539ee4d50088b; | |
1d724f3f | 256 | |
23de8bae | 257 | fb0cc20512774733c783bfea0ea3b503 36 |
258 | 0fb0cc20512774733c783bfe; | |
1d724f3f | 259 | |
23de8bae | 260 | 4f9884d0ec9fc9e3be6ac15382803eaa 107 |
261 | 09f310; | |
1d724f3f | 262 | |
23de8bae | 263 | e47895de118466ac7b16188284b35fb9 55 |
264 | 01c8f12bbc2308cd58f6; | |
1d724f3f | 265 | |
23de8bae | 266 | 22dfd1386bd2a5c4b6da0d619485e735 10 |
267 | 08b7f44e1af4a9712db68358652179; | |
1d724f3f | 268 | |
23de8bae | 269 | 489fab826eb8ce9f41084c2b4ea3bb25 117 |
270 | 0244; | |
1d724f3f | 271 | |
23de8bae | 272 | f6f7735e7d89edfa05482a6b19b1d7b6 53 |
273 | 07b7bb9af3ec4f6fd02a; | |
1d724f3f | 274 | |
23de8bae | 275 | bd4eda78b316190a28840f382a90bc63 80 |
276 | bd4eda78b316; | |
1d724f3f | 277 | |
23de8bae | 278 | af9f01ddcecf1d21b0af4c318df98e4f 39 |
279 | 015f3e03bb9d9e3a43615e98; | |
1d724f3f | 280 | |
23de8bae | 281 | 64d53464e8524ef2529389b14f2b9940 19 |
282 | 0c9aa68c9d0a49de4a52713629e5; | |
1d724f3f | 283 | |
23de8bae | 284 | ce49d3be79896131d044f41274ff13ee 99 |
285 | 19c93a77; | |
1d724f3f | 286 | |
23de8bae | 287 | 25a05fcae2ed3d9e2486cd633bd51070 18 |
288 | 096817f2b8bb4f678921b358cef5; | |
1d724f3f | 289 | |
23de8bae | 290 | 8a29be64acc97626d097231c4f3df4aa 82 |
291 | 228a6f992b32; | |
1d724f3f | 292 | |
23de8bae | 293 | ac27fc4590675fb16ecfbf774dc8e591 14 |
294 | 02b09ff116419d7ec5bb3efddd3723; | |
1d724f3f | 295 | |
23de8bae | 296 | b72f02eb26b965133db98adcedfe1e37 44 |
297 | 0b72f02eb26b965133db98; | |
1d724f3f | 298 | |
23de8bae | 299 | afc634103a039f37b8f9f98b1d94ac85 52 |
300 | 0afc634103a039f37b8f; | |
1d724f3f | 301 | |
23de8bae | 302 | f670a78a3801b81e0a00e5b5deb81a47 57 |
303 | 7b3853c51c00dc0f05; | |
1d724f3f | 304 | |
23de8bae | 305 | 3a1d23d0d00fa4e165ba2b54eccd8f8d 92 |
306 | 03a1d23d0d; | |
1d724f3f | 307 | } |
308 | ||
309 | # --- Arithmetic tests --- | |
310 | # | |
311 | # For each of the fundamental operations, there's a sequence of simple tests | |
312 | # which ensure that the functions are working even slightly correctly. Then | |
313 | # there are some tests aimed at limit conditions in the algorithm. Finally, | |
314 | # some random tests dreamed up by the Perl script `mpx-gen.pl' are given. | |
315 | ||
316 | uadd { | |
317 | ||
318 | # --- Simple sanity checks --- | |
319 | ||
320 | 00 00 00; | |
321 | 00 01 01; | |
45c0fd36 | 322 | 01 00 01; |
1d724f3f | 323 | |
324 | # --- Carry propagation tests --- | |
325 | ||
326 | ffffffffffffffffffffffffffffffffffffffffffffffffffffffff | |
45c0fd36 | 327 | 01 |
1d724f3f | 328 | 0100000000000000000000000000000000000000000000000000000000; |
329 | ||
45c0fd36 | 330 | 01 |
1d724f3f | 331 | ffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
332 | 0100000000000000000000000000000000000000000000000000000000; | |
333 | ||
334 | 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80 | |
335 | 80808080808080808080808080808080 | |
336 | 0100000000000000000000000000000000; | |
337 | ||
338 | # --- Random data tests --- | |
339 | ||
23de8bae | 340 | 272724be3cc4179a4b387bcd1acf24e1107be9bbb4dbd68408303df3537c83e0 |
341 | c80ff7173b00d75c83bb38948118fecd9c16ec3bc2d5d051057a1ad8dbfa3349 | |
342 | ef371bd577c4eef6cef3b4619be823aeac92d5f777b1a6d50daa58cc2f76b729; | |
343 | ||
344 | 257099bff6868847d89969cfc691e1f5e0af7516360493a8dae919704eea7385 | |
345 | b4408b380c648d50175dfa8b9c1d8aa68f71f67b540045ed3f92f2aa19145cb2 | |
346 | d9b124f802eb1597eff7645b62af6c9c70216b918a04d9961a7c0c1a67fed037; | |
347 | ||
348 | 11978446632ed887ce26aeabf9997a9ae9600da7cb6d431e6ab5dc932b427eec | |
349 | 652931ca2eb81d3113453615d16e60de08b3777a6060d7f1775c916253b1e666 | |
350 | 76c0b61091e6f5b8e16be4c1cb07db78f21385222bce1b0fe2126df57ef46552; | |
351 | ||
352 | 73d3697b4f886a8b242c21cb39151055937f36a6000849d0d1e526ce666a7d52 | |
353 | 209e8d770ab7352e5441f74af428a2e9b791dabb655fd78d8a722055e896d7fe | |
354 | 9471f6f25a3f9fb9786e19162d3db33f4b1111616568215e5c5747244f015550; | |
355 | ||
356 | 3e47ae33e633861903e0960b1ef8c8c8900a659cb3e03a1cf1ba04eed5e3f93d | |
357 | b844b1b685b21fce078e0db2b960e22dd1e81aac33062b6d9ed1ab68b8cbbd67 | |
358 | f68c5fea6be5a5e70b6ea3bdd859aaf661f28048e6e6658a908bb0578eafb6a4; | |
1d724f3f | 359 | |
23de8bae | 360 | 23156b15f2b9a6598b6703cda3177d7432016bb388989d5e33a5cb8778aca38f |
361 | 77197a3167c282ed511bf0eb865be89624e4b5e1e9dd4b7d44acd59d41287639 | |
362 | 9a2ee5475a7c2946dc82f4b92973660a56e621957275e8db7852a124b9d519c8; | |
1d724f3f | 363 | |
23de8bae | 364 | ed61746de1ab76f33cf25878088b24a389d79ecd65df792954a5788a887982a7 |
365 | b673af9ad91712c6d64f05cc14fbd503b04345aca5695ef26cad9ca1f1460496 | |
366 | 01a3d52408bac289ba13415e441d86f9a73a1ae47a0b48d81bc153152c79bf873d; | |
1d724f3f | 367 | |
23de8bae | 368 | 46a147c2b345b5ba782b600d1811975cd6a75b9bb6fa6db6bd8c594ecead30b3 |
369 | 3dff366370a27aef1ec46b32c4946f90ef75c7263f71703be87074ba18705391 | |
370 | 84a07e2623e830a996efcb3fdca606edc61d22c1f66bddf2a5fcce08e71d8444; | |
1d724f3f | 371 | |
23de8bae | 372 | a1756514e2f8c5805538ad1b85bafebeb1d4ba9c61d19fbf2f286518eeac08fe |
373 | 4646f60744b71c5d7e2a5f66250e0295fc6ddf5acae1f2397ad37403a6881e24 | |
374 | e7bc5b1c27afe1ddd3630c81aac90154ae4299f72cb391f8a9fbd91c95342722; | |
1d724f3f | 375 | |
23de8bae | 376 | cf5f959a7c1d3d0027f62303d4a517bd5acadde74db6f18bee67aed2ee1bbb23 |
377 | 76e38874ce5c3b7fe616b20f2ace6cf550190d9bad4b2fd80bf6deaff8a329c5 | |
378 | 0146431e0f4a7978800e0cd512ff7384b2aae3eb82fb022163fa5e8d82e6bee4e8; | |
1d724f3f | 379 | |
23de8bae | 380 | 1dee3d9ad0cc6212e5843a57d736fad4675c422efbbac6d625a0f45ee90b7d73 |
381 | d6df29c49292fe633ec60e597d0c5688eb0ba6c134b7c041689fed3e72535c55 | |
382 | f4cd675f635f6076244a48b15443515d5267e8f0307287178e40e19d5b5ed9c8; | |
1d724f3f | 383 | |
23de8bae | 384 | 3ba228e4e40cb50141845ae8b7318b43c6643765ace7ce83a069f1787ece6058 |
385 | 06b3792dbbde4db5f47be20035524962224fdaa18be7dd9eda23f1671e6ad33d | |
386 | 4255a2129feb02b736003ce8ec83d4a5e8b4120738cfac227a8de2df9d393395; | |
1d724f3f | 387 | |
23de8bae | 388 | e7ff758bb68a5a6106962113f72f9705dc0641ad029741f7c57a5320d030ad32 |
389 | 7fd185b393c432dba9892a0b67aa12a85be6e1643cdfe8404963fe92f4f668bb | |
390 | 0167d0fb3f4a4e8d3cb01f4b1f5ed9a9ae37ed23113f772a380ede51b3c52715ed; | |
1d724f3f | 391 | |
23de8bae | 392 | a5bb634cb6ffda70661189874605f802cc34a8960a137130f238638d9a9e72c1 |
393 | ddccdab554733987e04a5aa8674b5eba27f594f37cdec51b3b5745dfa159aab7 | |
394 | 0183883e020b7313f8465be42fad5156bcf42a3d8986f2364c2d8fa96d3bf81d78; | |
1d724f3f | 395 | |
23de8bae | 396 | 76888f3fc82690a4681e30b5f94efd08d03b7eb1c814ed01cde866847e3c75a4 |
397 | 78d0869abb1b1fafc582ccd8bb0c27d7ba51de9832d3b0cd8ca366d27d268788 | |
398 | ef5915da8341b0542da0fd8eb45b24e08a8d5d49fae89dcf5a8bcd56fb62fd2c; | |
1d724f3f | 399 | |
23de8bae | 400 | 24fbb9214449c926753d15573ca07552ff219c97c43824182a6dbabed6872610 |
401 | be3795a426052f168129345d33c6dded8ae8de0e0cbdbcc7c2b3f3386031b548 | |
402 | e3334ec56a4ef83cf66649b4706753408a0a7aa5d0f5e0dfed21adf736b8db58; | |
1d724f3f | 403 | |
23de8bae | 404 | 97b74ea8ef087496a84b73ee7d8713a13a511f40cc9a19f613a10891774fbc9a |
405 | fe8dd31272be1f79ee524d736c7fbd3a2c1718b918b072025612a1f2176cf53b | |
406 | 01964521bb61c69410969dc161ea06d0db666837f9e54a8bf869b3aa838ebcb1d5; | |
1d724f3f | 407 | |
23de8bae | 408 | 66a6b572a25f6f97ec5b7e7e393bfd686b69c083cd673feab076b9923133a46a |
409 | e7b501c43dafc08bc521b15be8a1ca9dffe174c282111ea9eb0bac34fd0584b7 | |
410 | 014e5bb736e00f3023b17d2fda21ddc8066b4b35464f785e949b8265c72e392921; | |
1d724f3f | 411 | |
23de8bae | 412 | 59a803f729f14d54c35de20cdf9ce5b8e2f430016448c80e9d3e2ec608f8bd67 |
413 | 7a5a9cf43d1d70e200c5bc7baf4dad57e5892866bb3ced09eb0ed096214509b3 | |
414 | d402a0eb670ebe36c4239e888eea9310c87d58681f85b518884cff5c2a3dc71a; | |
415 | ||
416 | d26914575527153ca24945f0e83df5b0480c8840e1e6807b71d008068b082c7d | |
417 | 281c235d8f8773649c75baba0c302f99f3c526c971cf3daf976deba0bdb3f38f | |
418 | fa8537b4e4ae88a13ebf00aaf46e254a3bd1af0a53b5be2b093df3a748bc200c; | |
1d724f3f | 419 | } |
420 | ||
421 | usub { | |
422 | ||
423 | # --- Simple sanity tests --- | |
424 | ||
425 | 01 00 01; | |
426 | 02 01 01; | |
427 | 05 03 02; | |
428 | ||
429 | # --- Carry propagation tests --- | |
430 | ||
431 | 0100000000 01 ffffffff; | |
432 | 010000000000000000 01 ffffffffffffffff; | |
433 | ||
434 | # --- Random data tests --- | |
435 | ||
23de8bae | 436 | a024729f63161b8fbb711008eb863b9e2044a77ccc7bccf19437471e51a4beec |
437 | 9239ec16929055e3a156768fa1432c56d997ba51c1efbed4c791f062d95641a5 | |
438 | 0dea8688d085c5ac1a1a99794a430f4746aced2b0a8c0e1ccca556bb784e7d47; | |
439 | ||
440 | 8ab8ea06c7afbdfe6636590f748fdd376a2dd9c708e7923541e134687fbfd526 | |
441 | 8896da6b7c98b78a0ea2c9cae23d7065a94daea56d1c919a7db2583da936bd8d | |
442 | 02220f9b4b17067457938f4492526cd1c0e02b219bcb009ac42edc2ad6891799; | |
443 | ||
444 | fedfecaf26399ad6eda68c7c5cada4aed095e82182e3df696cae47e521c382a4 | |
445 | 7510069be2896480db0beedc6c5497e79bd7ac5e9fc14bf9ca460c7f99aa6834 | |
446 | 89cfe61343b03656129a9d9ff0590cc734be3bc2e322936fa2683b6588191a70; | |
1d724f3f | 447 | |
23de8bae | 448 | ffb81ed18909fda98730e146735c21d3914122faf84882dc688237371825739b |
449 | d7eb8f85d95888d2c4dc7b9fbbe689e2ce529f8870b2487ce28d192ef3ac2317 | |
450 | 27cc8f4bafb174d6c25465a6b77597f0c2ee837287963a5f85f51e0824795084; | |
1d724f3f | 451 | |
23de8bae | 452 | c3c2c77bc0867d30c58c1eb786ab7feed60f9e0e2dcfd6ed97725fff364c7b5b |
453 | a936ff836dd8dd063ab05e4fc7176e8c05a45ddaa7f701e4184b4fd371ce968a | |
454 | 1a8bc7f852ada02a8adbc067bf941162d06b403385d8d5097f27102bc47de4d1; | |
1d724f3f | 455 | |
23de8bae | 456 | ef76a6e2dc6ba3317dcec6e338a20cf12eb852388204efe290a3b1536f6b198b |
457 | 3eb8d18b7903d682d713859f258ddbc13aae32392a4267b0cd1481c036ab5baf | |
458 | b0bdd5576367ccaea6bb41441314312ff40a1fff57c28831c38f2f9338bfbddc; | |
1d724f3f | 459 | |
23de8bae | 460 | 5cf09a0f0488a077e2983b4a854c28fc7a11f7befc196824f7990fadacfc26db |
461 | 0f46fbc396b81c512b7a0ec003759de05a967101a3ec50b7cbf84f42708f396c | |
462 | 4da99e4b6dd08426b71e2c8a81d68b1c1f7b86bd582d176d2ba0c06b3c6ced6f; | |
1d724f3f | 463 | |
23de8bae | 464 | ea9b202602ad3219e3d3a8fbaf042c3cec8a3d7f16923855b0ae67b8ebf57b50 |
465 | 850568cdebe8fe9f91c3d8bb4bc525158bd8590b235f46d6d556bf969e2f24f4 | |
466 | 6595b75816c4337a520fd040633f072760b1e473f332f17edb57a8224dc6565c; | |
1d724f3f | 467 | |
23de8bae | 468 | fab03a9f849f408b4af55746316f8e3a81c6359b3c3ba1ebd1d8b9e7a983a03b |
469 | a60ecaf59c0c7d0ce3ef4d6d9006880efc9c6e0edcafbf7291b009e7b3cb03e4 | |
470 | 54a16fa9e892c37e670609d8a169062b8529c78c5f8be2794028affff5b89c57; | |
1d724f3f | 471 | |
23de8bae | 472 | ef7de9bf497c4c47d323a379a42789925606f700e786622b280aec1ee6e13901 |
473 | 8a4197e881f1d2f6a09296e6d826ea628aec658b4bf7e9c436ab7e70746c4c87 | |
474 | 653c51d6c78a795132910c92cc009f2fcb1a91759b8e7866f15f6dae7274ec7a; | |
1d724f3f | 475 | |
23de8bae | 476 | 9cf0d943545ee18ca59af6f547cfb45de41b1d52c996f482728fe68993d3a966 |
477 | 58ad4b10fc09cf4f4f4a1488e36ed3beb0a2a9e8c8ec042aba113b2144ff1939 | |
478 | 44438e325855123d5650e26c6460e09f3378736a00aaf057b87eab684ed4902d; | |
1d724f3f | 479 | |
23de8bae | 480 | 3e0e637d1f4ff5b6d58549f8011ae0a885bbdcb5c478777417e6293c108c7c0c |
481 | 09e06b0b986110817123a2a5aad0c178bac3005315628424d849216a43b71ac4 | |
482 | 342df87186eee5356461a752564a1f2fcaf8dc62af15f34f3f9d07d1ccd56148; | |
1d724f3f | 483 | |
23de8bae | 484 | c3b4cb636f76027a876150753e266774af9350d3e68713adcc39cff5e389e285 |
485 | a4abec0b5d38bc91310f3b9e3e12d0c4af2984ba710a6309544340ac3c94e121 | |
486 | 1f08df58123d45e9565214d7001396b00069cc19757cb0a477f68f49a6f50164; | |
1d724f3f | 487 | |
23de8bae | 488 | 175402d43706fcdb3caf41cd8de6822447e39f3a0ed2f00d4d315a1cc03b5bfa |
489 | 0ffd7d0692776dbce6e112902472edba5ec4c1500412d9bcd24472da90889b7e | |
490 | 075685cda48f8f1e55ce2f3d69739469e91eddea0ac016507aece7422fb2c07c; | |
1d724f3f | 491 | |
23de8bae | 492 | f6060bfae1e558606d44496967e0eafe805e6f60d1c4a8f886574c9d6c6989da |
493 | e933391716ffc61eda9c547e7bdd41799ecc56e05178ebd7e2068d32467aace6 | |
494 | 0cd2d2e3cae5924192a7f4eaec03a984e1921880804bbd20a450bf6b25eedcf4; | |
1d724f3f | 495 | |
23de8bae | 496 | cfd8ba6b7173b72451f370c7a7dad7754ea2323e52f622c1490ff2d3ccf5753e |
497 | b4e23f1700a3fe1d5f0465cf3666235f1c7460ffebce87c8b8d551ceab09ed1b | |
498 | 1af67b5470cfb906f2ef0af87174b416322dd13e67279af8903aa10521eb8823; | |
1d724f3f | 499 | |
23de8bae | 500 | ebf9500e9cda50607204618fa6cf2f29f2e0af023237034f1a3e72787364370d |
501 | 0e826c97712e73f32d850d4cf63925fe8c8ed86396350432b9971900a4068cbe | |
502 | dd76e3772babdc6d447f5442b096092b6651d69e9c01ff1c60a75977cf5daa4f; | |
1d724f3f | 503 | |
23de8bae | 504 | c4f9d29310ea767aa8dd0af418447dd3dc2c220c48591f99b6dbf0521f7a5640 |
505 | 6d72f5441ca9dbafcbf4db9701d6c667c1d5376251de09468e3efbf1fb04cd95 | |
506 | 5786dd4ef4409acadce82f5d166db76c1a56eaa9f67b1653289cf460247588ab; | |
507 | ||
508 | 91af1ae9122ba385deae3f9b478c8270a2d2221396fb3639b44e06e3a1ae9817 | |
509 | 08966b342d42332d2155fe03fef2d3f84b415d1fda1168a5c63d0f9b86b77cce | |
510 | 8918afb4e4e97058bd5841974899ae785790c4f3bce9cd93ee10f7481af71b49; | |
511 | ||
512 | 976e1fa5146093d794691c63d1aff7ceb5851bb6196909eb51fbe4640829b208 | |
513 | 1e8a3a0a9050c307cd94a65793371f88eebe42ae8893b1ff984357d597c884d1 | |
514 | 78e3e59a840fd0cfc6d4760c3e78d845c6c6d90790d557ebb9b88c8e70612d37; | |
1d724f3f | 515 | } |
516 | ||
517 | umul { | |
518 | ||
519 | # --- Simple sanity tests --- | |
520 | ||
521 | 01 00 00; | |
522 | 00 01 00; | |
523 | 01 45 45; | |
524 | 45 01 45; | |
525 | ||
526 | # --- Random tests --- | |
45c0fd36 | 527 | |
23de8bae | 528 | 4162c300b3e157e9cd1301d499c20121 |
529 | 10549901fc6dcb85882440087bd398ff | |
530 | 042bc7ac8fe08ceefb098f286cdd84fd037906ead144324e361c488a221db7df; | |
531 | ||
532 | f4c0a35591d6567a3ead2846f4350141 | |
533 | 58bb07247f8a7591b7acfa727118ad8d | |
534 | 54d507b0e32175976a30766da14de0726a8ffbdc7ef0291a7389759422229dcd; | |
1d724f3f | 535 | |
23de8bae | 536 | 5d0965f58c9d794ca477ca2349900193 |
537 | 2cbff5f50dbae1965e3aec1108c36d17 | |
538 | 104360ec53eef2e669285143dc0d01c9ccf31a77dc302bf8d45356feb794bb35; | |
1d724f3f | 539 | |
23de8bae | 540 | 1a438b12e1babb4c68ae4606694fd1be |
541 | 5bac6d40fdea39c2f1f6ce285f028d36 | |
542 | 0967b3069413a0fac34c03fdf67e2f5187232be344bbc6011849688052d7e414; | |
1d724f3f | 543 | |
23de8bae | 544 | 59e648d1f656407efc7c9b622de6bc6f |
545 | 0dd07d6e4dc035816236aa0cd512e424 | |
546 | 04d9e8da01ea1a42b1b9670a4a14694cd104406f346a0598b65e0ae58f135b9c; | |
1d724f3f | 547 | |
23de8bae | 548 | 55c69d7a662a945e6a535911e7abdfc4 |
549 | 9883a7ea2c89f5a873b5bae63cf5ac73 | |
550 | 331a0a66497eb713fb09b260f8774aa97765c13bb040d7917a4b7cb9a321350c; | |
1d724f3f | 551 | |
23de8bae | 552 | bb15812991a5a01c6e803475d5f2f1c8 |
553 | 66782adade0952e8ab51a2fda6a5f611 | |
554 | 4ae262dc95488914177d07869caf42dd008ecfc3c092df3007fca8702f603e48; | |
1d724f3f | 555 | |
23de8bae | 556 | b06a37683348e8e46ccd954ff0348a82 |
557 | e158b834e442cf83aa863dde751525b7 | |
558 | 9b4a7e266b977f83598e6288efafd0f517d9658a2bda86adec7e1835143dccee; | |
1d724f3f | 559 | |
23de8bae | 560 | b7f66a5ca27d276bdbad5995aac0f676 |
561 | 8f05519b9acbe85369aad7a865a0bc5e | |
562 | 66c677de9ba98e4c527c86b80ad1485c41782c3e0be53dba2f547fa0ff992754; | |
1d724f3f | 563 | |
23de8bae | 564 | b7f43225f41056548b095f359b6a3b83 |
565 | 966a8ba6772991700ead0e01bde39120 | |
566 | 6c15a4d835ec2367ec41c566ce63a098c496aec8a5b041fc7c91e6601525a360; | |
1d724f3f | 567 | |
23de8bae | 568 | 87277faca81e1bb28e0e24e4bbf5e8c3 |
569 | 5f126e08716855110489045453e69dcc | |
570 | 3231633f7a7eb05793df2c7761d793a634faeb021fda1a404f05b2edefe71264; | |
1d724f3f | 571 | |
23de8bae | 572 | 3358074e192e79ba42c186ead80404a9 |
573 | dc1df51ac8c3328107638e83b17f777a | |
574 | 2c25a8688faf32cb8b1d4b454cd4a2ad1130df69188cd2ec44cc8806f8ebc78a; | |
1d724f3f | 575 | |
23de8bae | 576 | 7ad1d7a04f7588af0ff7bf29c13533c9 |
577 | 0785d4d4d5f1d25aa6dcf744662ab2d6 | |
578 | 039bf2064b716e3befa638d510131596518b1d91833200ba19ae6aff15750c06; | |
1d724f3f | 579 | |
23de8bae | 580 | 8b8a4c2ef785abd1607b663b3088e37c |
581 | fcc67dfa767e06d97cfd5341ded07e42 | |
582 | 89c854a034d2cc29ebb34f379d6a74a9996d261774b1e7ba965e98204001adf8; | |
1d724f3f | 583 | |
23de8bae | 584 | 1c9ea6a1b9aba96124dd8abfd3dd78b1 |
585 | 93ecdfc3f4c188819e777f082b77e4c6 | |
586 | 108994f4961164206f1a97cc0f39edc29faf2bad99d164fc60c06ccff20ffce6; | |
1d724f3f | 587 | |
23de8bae | 588 | c6d9a8a4760fffb11ac2d38b62f62a89 |
589 | c0989f4e8aabd21f7a2b38ec27afb783 | |
590 | 9599cb75abf86c37db000858bd671992ecde9d440cc765855287391f8f06b31b; | |
1d724f3f | 591 | |
23de8bae | 592 | 5d48ba3dba86c0e9d3922cab8d88c5b7 |
593 | 5186010a8c3fc4e3499534669a13f219 | |
594 | 1db4d7602500cc34de718d5892f79db44096a6c6705cf6e9ca8b438cdfd74cdf; | |
1d724f3f | 595 | |
23de8bae | 596 | d009f15fd77915f113e471884e464462 |
597 | cad68bffeb24842cc083f5496b10e36a | |
598 | a4d6328ac530f0615ca3b0aebeaf104960e120609c58710eee206cc3f3db3694; | |
599 | ||
600 | 343f0033e5648741936c20439bf044c3 | |
601 | 9b26545821fb1270515566d970e566bb | |
602 | 1fa9f7b01c40607bdc8f554e57555de879784cdb1eebfcc3a75918d27656ec71; | |
603 | ||
604 | 08d95fc1d6dd6b9423c7bb033598df0c | |
605 | 6c03f5958677efd383509141bf257375 | |
606 | 03bbd76f19ba19e3f255c24063f6384d4ac913d9e582392589a525195bcc547c; | |
a86e33af | 607 | |
608 | # --- Karatsuba regression --- | |
609 | # | |
45c0fd36 | 610 | # This bug was caused by kmul (a) choosing the split point too low on |
a86e33af | 611 | # odd-sized inputs and (b) not allocating enough workspace. |
612 | ||
613 | 21a9269d7b8b63cf18faa933b3c868ba1e8cb3f00b57e197709abf96eeb9bf12e8fe22b3 | |
614 | 0144c992b68e3ca712678215d5bc968702ccfea17717737ba501a38d26fa5091ba | |
615 | 2ab495f91afd7c36f85ece6fd58577f995de88d62a98a07c6d9e3500ae67b0f100bc709d1f30894662774d0cadfba091788c427cc6f4bacb26e42cf92f6e4494e03c990e; | |
616 | ||
617 | # --- Larger number tests for Karatsuba --- | |
618 | ||
619 | 416e63549e2cf08fb225058b3545cb4a47cbf9 | |
620 | de38c473c27f7bdef02a084192b3e17f435cf7 | |
621 | 38cc3c7f360737411df7b52a222a3672c6e0d39f0a868479176a6143e1129d44d5aa61be493f; | |
622 | ||
623 | aa20b1355073f21c57530d2f90bc40e47ac463 | |
624 | 8315dfa60e97ff3dab7a6f61fcec2cd5b6f127 | |
625 | 571d43fda6ce14a78534ac72c50b58738d62630766a59a7cec1a63433e499b1b5eac5ef71e15; | |
626 | ||
627 | f641594177c8c364d922c659a8f7ae0460c7d74b266c8cc258ad5f | |
628 | 5948dd29fc5172c37c31da6957779a1bebe452d8deba26c5d3d390 | |
629 | 55e2cf27aa49f938584dca4044d944077e226206c6f8c7688e8760f3b5c106413fd0ef4b63a97991da86fd113ff4822a41f76913d270; | |
630 | ||
631 | a4170f55dfa135c4bdd3a921a8c1567eebc6b799fb62b0dd27b089 | |
632 | 7b7d619e07a5d01427348c05605f67196b2923b074787c375977ac | |
633 | 4f277232c75290f0c5fed384dba2aaa23fe4a360ea63ee45fb6c0134b36a09a9163f3c767d498b8dcd31e5deaef386d4a9b7d85b4b0c; | |
634 | ||
635 | 250e7a0c7035df81429572d3f772720e723b710d54b9eb5f16814117980f0559bf12b82e00c5b3904e | |
636 | 1be3c88b01ce53a70c12f74dcc247823846ac6c06a9cb41b86794900006045f05e29da23b81523aa9f | |
637 | 04097fbcf75616fef7b6b91680963f7e0cf1bf72bc5f453e46136fc92b20ae8a30d7ae7965f8271de854442b93562ebaa9ee09fba4a7b79ef8b26718b12424419dc301496dc0d6cfb04e4f7a3a3729046c72; | |
638 | ||
639 | af3148a72dcf1340f6b5a3b2fc1cacd7e6f9e60a13de5c91c37bb850f0e930683c2dc96882a9f62b76 | |
640 | 48603cc656908b34c70ed826da8c3414d5845100f53cb6f9f370a4c7708a9b8ffd787537048f89493a | |
641 | 3187b8818bf644805c880d189bbf606ca23e01431cf5b3b633db48a1202aa346f6a0e3958c7264fa1de2d92660345e820f4f3659cf0040a28fb9b725f7ab83610c9c056062326f776ce871696eede0507ebc; | |
642 | ||
643 | 0b1cc934a2f6244b93c8ac10881de20349d133642ac19fa0be3acacbf4429d0ec7bbad2f41534a693647b7c02e683cde249e36f008fb68e96de65c8a268eb1ea | |
644 | 12444899c13f0ee85a4f47024f06d8a5746f0d9fec02e57c6d87a7bba17c1454fe6387bff5b96e38ce6142b9eebe249865c52b617b8966e6f93b16f612a91155 | |
645 | cafcf1ea9f16a56f9ac4635d58992a789c51b6d7e53b5e1d8b59d5c1850c5c6ac2297839af44b29d5cf440772f98fd9d090ccec2d56adeb113bd3459d620b0b02679b72f3170ea8e2bd4486eebf2496d8be01cfe86923e5bbeb6f91582dfb95c6ef0a52cbc068081dc363b31dbd2ed80e3267d973ea39f82e276002eab9cb2; | |
646 | ||
647 | 3ba5a9c550b8cf6c3b87cc106b6551221a0dc90ac193ebcc526e4e5f53cf012fa6e05b155dcb3c4c0e1a90a01062a67ec434f6744195349194770711ea836a8b | |
648 | 54f04f121d22db842523e9bf75727d5b0e9ef17e6d727918894927fade87ceeb2106684c4af7c49653425e29f7a91abf8adec4de2ca499df2534644397e454ac | |
649 | 13ca59703f4c087c16a9a7bc7022904a37a469c1d0fd9fa7ffabe8f7d887fe1572c0bf5c75fde6913b565f8106bba9c26c9bbce190a9b8967112d74c0ac3d4ff9d2a385b96833e3c456d5601c74d8d2c9fff35abc60e7cc15d7c680f20757c13a415f1b8fbe3c6c32434aa36c528473dd20ea39f0e5ee22d1cd23040900d3164; | |
650 | ||
83c017f3 | 651 | # --- More Karatsuba bugs --- |
652 | ||
653 | 3fef06998b0ddd140e01527426ea409b2b9e640f223dfd652229fd17eb99d44f6be6d4935505df676f48c8fcbfe2d5096345d6509267aa40c54d427f0cce45cd0f8fa7e4a22492d7ed4ffa45e3c0e5e3c25c841943fb2cecd6ee9275ae93c4e15e2d9f8f317c44c541ed52a6338b0fb9f7f7f4dea78cf7ef5201837c00a6d4d2 | |
654 | 0260acc6378341b2b894dacab3a44b914f19292bb32898b155584a406161bb04ad9c14db20888dfcdab613b368b5c699305c4e9b226d90f9523fbcb6293407bd2bb18bf7bdba8539fb577f19b72124c2d83a2bc31f44366e917ddc705085b79fe9e0df0e98e4f6ae3df63d9b321382c18b95de1dc4d1db93b3092c9c6f8c9764 | |
655 | 9802d5c5d5a73f9d4e694a8920f951ce4bfe80c13a35cd5332a556136b83495a2e9b4d2ed53aae1218d2e1c41349311f86b1ee1f2ad5cd3c5b264e8e68906ca45bd7d0fc8e8a5a9648f458cecba41fd0848a04f506bb11ddb378f3214085cf865ba5533cfd73b28b1e12784f447b156f59a3b68e6ec68303ddfce59ce33ca386ff3316e6a5e6f9b4201682aa9e59a6d7cb9315a492457640acca19fc7dc3a25a316fea9a0f1d32838b7f911650647f996551263c2d001fa1c720753afca316c7137300ff93f2ddd2846ce14c55d0ead626f681bd11707f9674905396a9bc9a889eae721ab6407586880a95575a968b43bdf50323627aa0fcddfa4e198b0008; | |
1d724f3f | 656 | } |
657 | ||
658 | usqr { | |
659 | ||
660 | # --- Sanity check tests --- | |
661 | ||
662 | 00 00; | |
663 | 01 01; | |
664 | 02 04; | |
665 | ff fe01; | |
666 | ||
667 | # --- Random tests --- | |
668 | ||
23de8bae | 669 | d573446554727d0f05ad3ccd03665c2f |
670 | b1f903b723d65fefeb935ef5c50ab18da09777b28b8a093adab73a5cb0a5d0a1; | |
671 | ||
672 | 27ed6604397ef6acdb3f1906e5c0be25 | |
673 | 063a313b55fe82206c4e69624c2afd726dcf52c1efc9d0f81c948907f6baf159; | |
674 | ||
675 | 869593eda5bbb87109593218d3c99f86 | |
676 | 46c0ee42519e3a8ce80f19b6bd60332254e1e144350898d77e803ce2c7d3ba24; | |
677 | ||
678 | 94edc3ffcbd975677c95b44e7f4a8164 | |
679 | 56a3c77441629088100fea8b3e510352c9904877e9705b9e150e7b004735ef10; | |
1d724f3f | 680 | |
23de8bae | 681 | 4a3b7b546f9f15a09bd35d6de3b33f82 |
682 | 1586711ee4ddaaf121f7e4311d3e182948ed5569def0257e099be8d66b8d3e04; | |
1d724f3f | 683 | |
23de8bae | 684 | adf038609b8f95940806994831db9409 |
685 | 762e8d9c53ce25e6641019bd974169acd1aa3e95968b13e80c97d2120f006851; | |
1d724f3f | 686 | |
23de8bae | 687 | 337e87847e2ddf24444fac6f64c6cc66 |
688 | 0a5ba888786f7db6d9c28a7482545e31ce687996024edfdc05ae3a8480fab8a4; | |
1d724f3f | 689 | |
23de8bae | 690 | 0b2c882b8a7dcad93cffc77be4436e62 |
691 | 7cdb72d54cb539de9fc55d68b9ca4731ad6b1bef79fd0dd12c9c8d86e45d84; | |
1d724f3f | 692 | |
23de8bae | 693 | 298a1b9f23f7e77dc288c177a492843c |
694 | 06bd875ac41323efd9b958064f96e74d84faf58a2c43f4bec525750ff8bdee10; | |
1d724f3f | 695 | |
23de8bae | 696 | f58345742a51bd04c80b3791a688871e |
697 | eb74864080bb96f90ac10021b82af6ea9acd21af8b8c103739a14c06bf30a784; | |
1d724f3f | 698 | |
23de8bae | 699 | 0c720ed1384848bc57e6f92cd98541cd |
700 | 9ae434d07874574a5702724fcaf6d27f5686744f03aa444afe9762f9ebbe29; | |
1d724f3f | 701 | |
23de8bae | 702 | 37e91e1c9a3f237a08dda2e6919dbfa8 |
703 | 0c35ff381de29f85eb03c278ca9623be8603ac9f744c826d08e91630f38c1e40; | |
1d724f3f | 704 | |
23de8bae | 705 | 8b270d9328ea8561db59a8ac4e651d05 |
706 | 4ba36eb2f1fd6b0cbd6f71ac36aabe1be53e21ae9afd4c9ce1715456f53c2219; | |
1d724f3f | 707 | |
23de8bae | 708 | 5e64af22a077e8832538dc9ff235bea0 |
709 | 22ce1836b8b5c880ea1e00f95f339ee776d8edda0563e498c98f726efc31e400; | |
1d724f3f | 710 | |
23de8bae | 711 | 8e6d67cd33ac976b183475e54afdb715 |
712 | 4f3d8de934283d046ebdb7263c73978e60c2e68179cb3edf79c266dd867107b9; | |
1d724f3f | 713 | |
23de8bae | 714 | 27f566956e3fa7141088402630e929e8 |
715 | 063cb07f0ab7d5d22828664724da2dd261c14526d80f7760aa04b4f44f2c2240; | |
1d724f3f | 716 | |
23de8bae | 717 | e26c74de93a02296693ee98e552d5524 |
718 | c843ac4bcdcdc37c3ef17997e8d013d1d4ecff5a58a22e2be50d1e80f2f8ed10; | |
1d724f3f | 719 | |
23de8bae | 720 | ca53baed02dd4ba78cf7a3963b438395 |
721 | 9fe83e60c6b25a7b58d1f84a5905081769b4c5b5c9b1d63a5bec2110d19fd4b9; | |
1d724f3f | 722 | |
23de8bae | 723 | d6e517000ade8ef62963e890a472d530 |
724 | b463cf763a508b234fbf75a75781c97b5a9963b8f8456d23d05a2aa81048e900; | |
1d724f3f | 725 | |
23de8bae | 726 | c4245e0ce04fe1151ca17eb8aeb6e3e3 |
727 | 9647b52e4da6dc80171bd5495ab519835e871bf915ee7e59f1fe2ac165a05b49; | |
78882df4 | 728 | |
729 | # --- Large tests for Karatsuba --- | |
730 | ||
731 | 8390d2dfc9770526e8c4820e1cccca0e8e19d2 | |
732 | 439d89bef1a65f537e59e74590df3ef10b7e78066ac2af7b5c910e1929de102b491b9f92b044; | |
733 | ||
734 | 26c4cb564d57970bc3dd00c0c1690c7f1a2e9a | |
735 | 05df03a59c9e6ab7bfed79ff8f32811303e46f94c2e8d9abcab5bdac1040e7fdaf5a4bc3b4a4; | |
736 | ||
737 | 599b3cceca39690c06425127a95b84310cddef | |
738 | 1f5d4e6a797662648e4b09abeee439415b76cae52e7cf9db1a54b7f99afb9c00b6130cce8521; | |
739 | ||
740 | 485b65b3d5edb34810402943ccfbe37a137f8f | |
741 | 147389d69e9730f86b04a1782fd15611e6f8dc2e99abc812be0cb82efb2a1ad538aa7ac931e1; | |
742 | ||
743 | 5a243e54da1f87a8fe23c8b0988b3574aa77c1fe620a5d25b8e03295aebe6c6e135a17 | |
744 | 1fbd80f54068ba081e793c1aad443094416a75e2e708337618e4ff02ca9dd26bad87cdc0f758342df39a56625c956c971b1f7f18f7d3cb6a1880a574bb7b06a6ca4a431e2e11; | |
745 | ||
746 | f5c57a7610feec56586de369136ee25aaf5d3861ad80033410c410658332ca856e4cce | |
747 | ebf394bbb0d2d75ba78b75ae018c77f417cc1c67f0aa587d070980386e14f2b59d9a580d8d483b4df7f6a8d4a44ec8786a87d1da031bb5c288c3afc65d931471786c2412f5c4; | |
748 | ||
749 | 5bc4457e00bcacf257200a96eadf90359cbd9f6a2c2c69b5ea2e4c5d3939f0ce100c06 | |
750 | 20e51fe210546e478bfb9d2b0418df921974417799951533f317498439caed52a75c4c66db81910b3fc4f4fb3711cc25f2b4ef151a2023b6e52e64e1d5b7dffb0b9b29509024; | |
751 | ||
752 | 4b51f1e0a9206173d39a0f1f4eea558dbd9d1ca2d41671b2d27b1b77391e76504e14c0 | |
753 | 16291df497ccc32ee92a9037b78ff10828c2645dfbf91541f3a0d963892d59c5cd966ffe1e1ebb2dfe6f434fae44da11ae2d2357876b711feba596612c102b8905c8a6ae9000; | |
754 | ||
755 | 10f63541b2bc5a7d241f887d0b3d182dc473a06c4fb275259112b2fecc9455d7b1eb5b2e9b5c3646c35121d05f1ae99f1ad990c7f0e48b002bd5fdd253c68b56 | |
756 | 011fb3729baf522bcaed9a966645754804b2cc80168de9f93544e17d5b6d6b81c516f68b72580257f15e3f95bc6eec22608c3055de04051598bf4a76975d111a59d6b02a2fc42de65926cee5d5b97b6c7fc85e00dd59bfdac2c95bc80b7657582b2853244e55b507594a83d5bd87b7a83016dbbc104ce596bdaaed6d98de80e4; | |
757 | ||
758 | 9e40b3c041505a5e266109f752d85ae3abcbdd28bfc70bbb2c7228bc1564ea893cdda0350689610b74babfe45b14da9708f28c22e3999c841fc70075dd0535cb | |
759 | 61d3ee3baef64371ce0416d3f5a6e687903413ad06e85ebbffb9ea0ae9e8cc290fe9dc1cec429e0a294b18121ee29755baf4306861e092e5c1f1def03953f559766787a222368b64594b7be2eeea0698d1fc630446714e681210b5a66e0433b6c43038c0ff213cd14fc0a1fb71789d57b097ab44d859f8bc912f2a89a33baef9; | |
760 | ||
761 | d35af50f523d29f53bf0126ccddf4f3052ddb44eeaead360b5f36aad902ba105a921880cefb12caf5e1b3719a40596732d265e996e491f82ca2edf08adca131e | |
762 | ae7f10487aecfa7f91217020f96a1cb00d81545deaf9730daa2c7113e84e76c7e54a1b14971d26750816a696d55622ae1dbd56befdc12a656e66e1d10e87c3bc209e0903635784af6d48a4d7ec84634efb91b7efbfff724bb50ace7d4684d2e72eb7eef84ed5cfd14a7602ceded675da541646febcaa285396b23338b8c57784; | |
763 | ||
764 | 3df659f884c6a31c5b332efc44fbd70fea46b81adb241fc651af038380f8c476a471f06382ebe55eba339d84edb33a03002ac505d93c61a42ba20e36a691c287 | |
765 | 0eff53f178849510a118db72c5620423c2991365b06e8caa76300f3df554cf8830c9833f6ec1d33c850b1bb380e33a486a9963b63b5228229fd7e9bdd308bc810aa5e74ccc0e65a2af40c9a287c67e69e841495b0221110f35ed6319bda0dcb0b02174b666df4766eea05481f6a80fe4b93a06fe475d58ae3002303904bee331; | |
1d724f3f | 766 | } |
767 | ||
768 | udiv { | |
769 | ||
770 | # --- Simple tests --- | |
771 | ||
772 | 09 04 02 01; | |
773 | ffe3 01 ffe3 00; | |
774 | cdef fedc 00 cdef; | |
775 | ||
776 | # --- Random tests --- | |
777 | ||
23de8bae | 778 | 8ab316d0d1a2e88535cf77c1172881ead70d592c59e9c5fbc16e4b0c4dc49481 |
779 | 18ca3bf7ee3c6d7bab3f144b015ccc6c25472843d346b461 | |
780 | 059850f995ddeb799c | |
781 | 02c1815029b766b96ad4507dc1af8151307961c6d161d065; | |
782 | ||
783 | 8117d1663ee63341eb8faeff304549f0f8b32d587acc2fd5597ea6a31625881d | |
784 | dc85df77dfb61876805623bcbed325b99d00c2cd65c252c879 | |
785 | 95dc734282eb19 | |
786 | 395da02e8a6c66476467c4e04f328d8208cc411e3d1e96e14c; | |
787 | ||
788 | 63791966f2ad44a6df11bcc87c6b7c2400c74e69f7e3ca02fcac12b3bf56238b | |
789 | a49e473b8f7539d89cdb002d73182558773eec10db93cc6049d8c5533e | |
790 | 9ab11a | |
791 | 65caf6833baa118b53c7bdc44a831605ca382b5993beead59f3971d13f; | |
792 | ||
793 | 9ca438db3e0f79305987292e8ec6174e6c313f7904ebb35a349a700e3ae63a37 | |
794 | b24c93d499c7073b8f7aac718c1f12da1a8fc8bccdd47b49 | |
795 | e0e779304869fdc1 | |
796 | 46393cb15e38cbbc8a85698151a113f28081b4c8f6ed232e; | |
797 | ||
798 | 8214fd17858a4a913015412b5331eb9654faeb5156a674b1e5f6550a68957146 | |
799 | c4f0ebaad6c0ee0111c57667ea8e0a254f3068f212949e20ededa89a7da6 | |
800 | a917 | |
801 | 3fde916ba21d19414d4316041420ca59d8b01aa2acf3f3ef106245c1915c; | |
802 | ||
803 | 55a487a70935360158bd55542eb46271f90f7312e77344c4ca6a580a80810612 | |
804 | 8996dd0613f846 | |
805 | 9f58fe011d73a8750454d9bffb55906e9bcf563e0c48b5b608 | |
806 | 4cfd95e3e17fe2; | |
807 | ||
808 | 6a13e1be50ecdd7011f9ced42269615efb38fcd3e5477bc57377138cf1ff9519 | |
809 | fda103ff99ff21 | |
810 | 6b11bf2670bf080ef7c5aa0fa5989324e88e3e581c0e7507ba | |
811 | 717db69e0d501f; | |
812 | ||
813 | 367aa8f5ba9ac4e8e2ea198b8af2c3b3081deab392ffc05715783b245a62a6fa | |
814 | 72e2c37447f8bca34c4a39b130ea8e5c9a7d8b54564aa88ea773 | |
815 | 7965572732ac | |
816 | 08e8c03ebf398c63d71d8fd7ca4ece12367a8dde180ca650afb6; | |
817 | ||
818 | 6da07a0a1f9a7dd93e1f82be23fd5e7814b84fc74d4566dd83914adf368c1689 | |
819 | 3cc71e64 | |
820 | 01cdc15d7d825955c50ccca72fc5a16f9a7dd04363b12d8354d3088e51 | |
821 | 299000e5; | |
822 | ||
823 | 001f5d985f594315d8c58f2d654304c8417f683b65d6d3246b89960e5f6c133c | |
824 | 5bbc034d956a17998a30a3 | |
825 | 5787e7e94449592b493486bd9a323f939ad9bfde | |
826 | 1298fecf49a80ad72148e2; | |
827 | ||
828 | ae2d84438ac6643fc601c1634351aa75b284fecbbe5faf3a132be9dd1a326e6c | |
829 | c33c890f030644d88cc65f8ccf99c625c9b9fa21d4eb153e52ef89df54130855 | |
830 | 00 | |
831 | ae2d84438ac6643fc601c1634351aa75b284fecbbe5faf3a132be9dd1a326e6c; | |
832 | ||
833 | 65901dcdad8dd0625d4d158f99b666fee10480d1df15e3bdac640584b9b746bc | |
834 | d8a1d326fee87d55f39f15b5b2cfe71f5146083928 | |
835 | 7805090edf620d22dac08f | |
836 | 859c41164983547c03134b99530e25a0f874315964; | |
837 | ||
838 | 5d9e7037d70e822c2ce4b3d93f3e20d437a047aa94103296cc041e1b7ea0d9ae | |
839 | d2b14235853f6bac6fdba208897d | |
840 | 71c036bc8940293745e65c49f9b0bc1a8aa3 | |
841 | 700473d994c1cd61ab24f661ed17; | |
842 | ||
843 | 3a826450bde36cf03de1d6829f7e21af52beb2655e2c902ed634f84e135b241c | |
844 | 3023b54e1deda493ad0b4558 | |
845 | 01372549e716f70dd3c6bb31f193682b7a9355a7fc | |
846 | 04359aabd8bfdf8dd3ce797c; | |
847 | ||
848 | bdcfd9593348eb1567377e0d4f4bfe8a26acac14b56f7dfd82beddb4f11c2373 | |
849 | 1f0356b60ad66f4fd7dda57cfc6d1aa374108bd4841127c8 | |
850 | 061ed1e07aff1c094d | |
851 | 0e313b6052859863725786d1459434762ccad8540bad244b; | |
852 | ||
853 | 293be875d1251920e18102446ceec021da8d8d24aabe49c5911d19ddc3db516d | |
854 | b66e4ce3aa7390a9d888c5d22176bea5c36ae962ae8f252cdf3642556641271c | |
855 | 00 | |
856 | 293be875d1251920e18102446ceec021da8d8d24aabe49c5911d19ddc3db516d; | |
857 | ||
858 | 5f1085256c5fb856ceab16f2372b6b7024c7d1fcfa7039a0555bb1496c0bc92b | |
859 | c46c1fcd4a8a9cb91775f901af0ab42e39015e09fc737ae2011899b34322cd | |
860 | 7b | |
861 | b091ddc98f1f09e065684e681146ddef6429ce2e24bd95bed4df704aca10ac; | |
862 | ||
863 | 82ea5bd086409cf3681e55e6133626ce9579db9eb01a0411db9c8521c3c66c2c | |
864 | 605a13a7d4b75f1094260227cd4cab | |
865 | 015bd5405d6bfd4571e54bc47a1b089abfd7 | |
866 | 3074a3c84ec3bfa32e0db1b349738f; | |
867 | ||
868 | 3b68662228026ec9e9be8206d3226edd265552a3dbe15a7aa399eba05a69a6c3 | |
869 | a0f4265e8f59474132846bfb15 | |
870 | 5e7d40f138e2a107a52f85a0eb6f92a1c3ec97 | |
871 | 1508f62d27e7fad09e3d423160; | |
872 | ||
873 | 82a5058150e570c9eef1f4e5d55d3cf261de28a17f4735caec8bb38e1813978a | |
874 | 620d87bb63872a40fc2092b0ed7d3ec4b648be41 | |
875 | 0155177e99a8a5113226ff8270 | |
876 | 2ea2205327e66d75990cc999fc2380883ee4591a; | |
01b1f530 | 877 | |
878 | # --- Bugs --- | |
879 | ||
880 | 1a923b3406cbe81b093ce418f6a73107f504502b2e3d1b200762fcf6062723de405cab0aea00000000000000000000000000000000 | |
881 | 184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000 | |
882 | 0117d3db34ad005954459be9abedd0e5deb4ea0000000000000000 | |
883 | 00; | |
21bebf11 | 884 | |
885 | ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff | |
886 | 7fffffffffffffffe487ed5110b4611a62633145c06e0e68948127044533e63a0105df531d89cd9128a5043cc71a026ef7ca8cd9e69d218d98158536f92f8a1ba7f09ab6b6a8e122f242dabb312f3f637a262174d31d1b107fffffffffffffff | |
887 | 02 01; | |
c29970a7 MW |
888 | |
889 | 26737e 0ffffc 02 067386; | |
1d724f3f | 890 | } |