Ticket #13947: tuning.c

File tuning.c, 37.8 KB (added by wdj, 8 years ago)

attached by request (my dual quad-core 10.7.5 mac is having this problem)

Line 
1/*
2   NOTE: do not edit this file! It is auto-generated by the "tune" program.
3   (Run "make tune" and then "./tune > tuning.c" to regenerate it.)
4*/
5
6/*
7   tuning.c:  global tuning values
8
9   Copyright (C) 2007, 2008, David Harvey
10
11   This file is part of the zn_poly library (version 0.9).
12
13   This program is free software: you can redistribute it and/or modify
14   it under the terms of the GNU General Public License as published by
15   the Free Software Foundation, either version 2 of the License, or
16   (at your option) version 3 of the License.
17
18   This program is distributed in the hope that it will be useful,
19   but WITHOUT ANY WARRANTY; without even the implied warranty of
20   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21   GNU General Public License for more details.
22
23   You should have received a copy of the GNU General Public License
24   along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26*/
27
28#include "zn_poly_internal.h"
29
30size_t ZNP_mpn_smp_kara_thresh = 29;
31size_t ZNP_mpn_mulmid_fallback_thresh = SIZE_MAX;
32
33tuning_info_t tuning_info[] = 
34{
35   {  // bits = 0
36   },
37   {  // bits = 1
38   },
39   {  // bits = 2
40         75,   // KS1 -> KS2 multiplication threshold
41        141,   // KS2 -> KS4 multiplication threshold
42        908,   // KS4 -> FFT multiplication threshold
43        124,   // KS1 -> KS2 squaring threshold
44        282,   // KS2 -> KS4 squaring threshold
45       2609,   // KS4 -> FFT squaring threshold
46        151,   // KS1 -> KS2 middle product threshold
47       1053,   // KS2 -> KS4 middle product threshold
48      23040,   // KS4 -> FFT middle product threshold
49          9,   // nussbaumer multiplication threshold
50          9    // nussbaumer squaring threshold
51   },
52   {  // bits = 3
53         75,   // KS1 -> KS2 multiplication threshold
54        132,   // KS2 -> KS4 multiplication threshold
55       1070,   // KS4 -> FFT multiplication threshold
56        124,   // KS1 -> KS2 squaring threshold
57        231,   // KS2 -> KS4 squaring threshold
58       2363,   // KS4 -> FFT squaring threshold
59        132,   // KS1 -> KS2 middle product threshold
60       1647,   // KS2 -> KS4 middle product threshold
61      28087,   // KS4 -> FFT middle product threshold
62          7,   // nussbaumer multiplication threshold
63          9    // nussbaumer squaring threshold
64   },
65   {  // bits = 4
66         61,   // KS1 -> KS2 multiplication threshold
67        124,   // KS2 -> KS4 multiplication threshold
68        485,   // KS4 -> FFT multiplication threshold
69         57,   // KS1 -> KS2 squaring threshold
70        806,   // KS2 -> KS4 squaring threshold
71       1939,   // KS4 -> FFT squaring threshold
72         66,   // KS1 -> KS2 middle product threshold
73       1053,   // KS2 -> KS4 middle product threshold
74      28087,   // KS4 -> FFT middle product threshold
75          8,   // nussbaumer multiplication threshold
76          9    // nussbaumer squaring threshold
77   },
78   {  // bits = 5
79         57,   // KS1 -> KS2 multiplication threshold
80        118,   // KS2 -> KS4 multiplication threshold
81        535,   // KS4 -> FFT multiplication threshold
82        102,   // KS1 -> KS2 squaring threshold
83        216,   // KS2 -> KS4 squaring threshold
84       1756,   // KS4 -> FFT squaring threshold
85         94,   // KS1 -> KS2 middle product threshold
86        963,   // KS2 -> KS4 middle product threshold
87      21569,   // KS4 -> FFT middle product threshold
88          8,   // nussbaumer multiplication threshold
89          9    // nussbaumer squaring threshold
90   },
91   {  // bits = 6
92         47,   // KS1 -> KS2 multiplication threshold
93         80,   // KS2 -> KS4 multiplication threshold
94        360,   // KS4 -> FFT multiplication threshold
95         56,   // KS1 -> KS2 squaring threshold
96        173,   // KS2 -> KS4 squaring threshold
97       1440,   // KS4 -> FFT squaring threshold
98         47,   // KS1 -> KS2 middle product threshold
99       1053,   // KS2 -> KS4 middle product threshold
100      17119,   // KS4 -> FFT middle product threshold
101          8,   // nussbaumer multiplication threshold
102          9    // nussbaumer squaring threshold
103   },
104   {  // bits = 7
105         40,   // KS1 -> KS2 multiplication threshold
106         80,   // KS2 -> KS4 multiplication threshold
107        360,   // KS4 -> FFT multiplication threshold
108         56,   // KS1 -> KS2 squaring threshold
109        151,   // KS2 -> KS4 squaring threshold
110       1305,   // KS4 -> FFT squaring threshold
111         43,   // KS1 -> KS2 middle product threshold
112        264,   // KS2 -> KS4 middle product threshold
113      17119,   // KS4 -> FFT middle product threshold
114          8,   // nussbaumer multiplication threshold
115          9    // nussbaumer squaring threshold
116   },
117   {  // bits = 8
118         40,   // KS1 -> KS2 multiplication threshold
119         70,   // KS2 -> KS4 multiplication threshold
120        268,   // KS4 -> FFT multiplication threshold
121         51,   // KS1 -> KS2 squaring threshold
122        141,   // KS2 -> KS4 squaring threshold
123        795,   // KS4 -> FFT squaring threshold
124         51,   // KS1 -> KS2 middle product threshold
125        302,   // KS2 -> KS4 middle product threshold
126      12720,   // KS4 -> FFT middle product threshold
127          8,   // nussbaumer multiplication threshold
128          9    // nussbaumer squaring threshold
129   },
130   {  // bits = 9
131         33,   // KS1 -> KS2 multiplication threshold
132         75,   // KS2 -> KS4 multiplication threshold
133        243,   // KS4 -> FFT multiplication threshold
134         43,   // KS1 -> KS2 squaring threshold
135        141,   // KS2 -> KS4 squaring threshold
136       1182,   // KS4 -> FFT squaring threshold
137         40,   // KS1 -> KS2 middle product threshold
138        264,   // KS2 -> KS4 middle product threshold
139      15505,   // KS4 -> FFT middle product threshold
140          7,   // nussbaumer multiplication threshold
141          7    // nussbaumer squaring threshold
142   },
143   {  // bits = 10
144         27,   // KS1 -> KS2 multiplication threshold
145         66,   // KS2 -> KS4 multiplication threshold
146       1305,   // KS4 -> FFT multiplication threshold
147         27,   // KS1 -> KS2 squaring threshold
148        116,   // KS2 -> KS4 squaring threshold
149        720,   // KS4 -> FFT squaring threshold
150         30,   // KS1 -> KS2 middle product threshold
151        226,   // KS2 -> KS4 middle product threshold
152      12307,   // KS4 -> FFT middle product threshold
153          6,   // nussbaumer multiplication threshold
154          8    // nussbaumer squaring threshold
155   },
156   {  // bits = 11
157         21,   // KS1 -> KS2 multiplication threshold
158         61,   // KS2 -> KS4 multiplication threshold
159        259,   // KS4 -> FFT multiplication threshold
160         30,   // KS1 -> KS2 squaring threshold
161        116,   // KS2 -> KS4 squaring threshold
162        653,   // KS4 -> FFT squaring threshold
163         21,   // KS1 -> KS2 middle product threshold
164        101,   // KS2 -> KS4 middle product threshold
165      12720,   // KS4 -> FFT middle product threshold
166          7,   // nussbaumer multiplication threshold
167          8    // nussbaumer squaring threshold
168   },
169   {  // bits = 12
170         27,   // KS1 -> KS2 multiplication threshold
171         57,   // KS2 -> KS4 multiplication threshold
172        199,   // KS4 -> FFT multiplication threshold
173         33,   // KS1 -> KS2 squaring threshold
174        108,   // KS2 -> KS4 squaring threshold
175        485,   // KS4 -> FFT squaring threshold
176         19,   // KS1 -> KS2 middle product threshold
177         75,   // KS2 -> KS4 middle product threshold
178       7753,   // KS4 -> FFT middle product threshold
179          7,   // nussbaumer multiplication threshold
180          8    // nussbaumer squaring threshold
181   },
182   {  // bits = 13
183         27,   // KS1 -> KS2 multiplication threshold
184         57,   // KS2 -> KS4 multiplication threshold
185        199,   // KS4 -> FFT multiplication threshold
186         33,   // KS1 -> KS2 squaring threshold
187        101,   // KS2 -> KS4 squaring threshold
188        439,   // KS4 -> FFT squaring threshold
189         24,   // KS1 -> KS2 middle product threshold
190        264,   // KS2 -> KS4 middle product threshold
191       8560,   // KS4 -> FFT middle product threshold
192          7,   // nussbaumer multiplication threshold
193          8    // nussbaumer squaring threshold
194   },
195   {  // bits = 14
196         21,   // KS1 -> KS2 multiplication threshold
197         47,   // KS2 -> KS4 multiplication threshold
198        164,   // KS4 -> FFT multiplication threshold
199         25,   // KS1 -> KS2 squaring threshold
200        108,   // KS2 -> KS4 squaring threshold
201        360,   // KS4 -> FFT squaring threshold
202         24,   // KS1 -> KS2 middle product threshold
203        149,   // KS2 -> KS4 middle product threshold
204       5393,   // KS4 -> FFT middle product threshold
205          7,   // nussbaumer multiplication threshold
206          8    // nussbaumer squaring threshold
207   },
208   {  // bits = 15
209         24,   // KS1 -> KS2 multiplication threshold
210         54,   // KS2 -> KS4 multiplication threshold
211        142,   // KS4 -> FFT multiplication threshold
212         33,   // KS1 -> KS2 squaring threshold
213         92,   // KS2 -> KS4 squaring threshold
214        360,   // KS4 -> FFT squaring threshold
215         29,   // KS1 -> KS2 middle product threshold
216        144,   // KS2 -> KS4 middle product threshold
217       6154,   // KS4 -> FFT middle product threshold
218          7,   // nussbaumer multiplication threshold
219          8    // nussbaumer squaring threshold
220   },
221   {  // bits = 16
222         19,   // KS1 -> KS2 multiplication threshold
223         43,   // KS2 -> KS4 multiplication threshold
224        142,   // KS4 -> FFT multiplication threshold
225         25,   // KS1 -> KS2 squaring threshold
226         80,   // KS2 -> KS4 squaring threshold
227        296,   // KS4 -> FFT squaring threshold
228         30,   // KS1 -> KS2 middle product threshold
229         95,   // KS2 -> KS4 middle product threshold
230       4726,   // KS4 -> FFT middle product threshold
231          7,   // nussbaumer multiplication threshold
232          8    // nussbaumer squaring threshold
233   },
234   {  // bits = 17
235         12,   // KS1 -> KS2 multiplication threshold
236         40,   // KS2 -> KS4 multiplication threshold
237        109,   // KS4 -> FFT multiplication threshold
238         21,   // KS1 -> KS2 squaring threshold
239         86,   // KS2 -> KS4 squaring threshold
240        296,   // KS4 -> FFT squaring threshold
241         14,   // KS1 -> KS2 middle product threshold
242        107,   // KS2 -> KS4 middle product threshold
243       5393,   // KS4 -> FFT middle product threshold
244          7,   // nussbaumer multiplication threshold
245          8    // nussbaumer squaring threshold
246   },
247   {  // bits = 18
248         17,   // KS1 -> KS2 multiplication threshold
249         38,   // KS2 -> KS4 multiplication threshold
250        142,   // KS4 -> FFT multiplication threshold
251         25,   // KS1 -> KS2 squaring threshold
252         75,   // KS2 -> KS4 squaring threshold
253        268,   // KS4 -> FFT squaring threshold
254         24,   // KS1 -> KS2 middle product threshold
255         70,   // KS2 -> KS4 middle product threshold
256       4726,   // KS4 -> FFT middle product threshold
257          7,   // nussbaumer multiplication threshold
258          8    // nussbaumer squaring threshold
259   },
260   {  // bits = 19
261         19,   // KS1 -> KS2 multiplication threshold
262         38,   // KS2 -> KS4 multiplication threshold
263        109,   // KS4 -> FFT multiplication threshold
264         30,   // KS1 -> KS2 squaring threshold
265         70,   // KS2 -> KS4 squaring threshold
266        268,   // KS4 -> FFT squaring threshold
267         27,   // KS1 -> KS2 middle product threshold
268        315,   // KS2 -> KS4 middle product threshold
269       3511,   // KS4 -> FFT middle product threshold
270          7,   // nussbaumer multiplication threshold
271          8    // nussbaumer squaring threshold
272   },
273   {  // bits = 20
274         17,   // KS1 -> KS2 multiplication threshold
275         35,   // KS2 -> KS4 multiplication threshold
276         90,   // KS4 -> FFT multiplication threshold
277         24,   // KS1 -> KS2 squaring threshold
278         70,   // KS2 -> KS4 squaring threshold
279        268,   // KS4 -> FFT squaring threshold
280         23,   // KS1 -> KS2 middle product threshold
281        288,   // KS2 -> KS4 middle product threshold
282       3877,   // KS4 -> FFT middle product threshold
283          7,   // nussbaumer multiplication threshold
284          8    // nussbaumer squaring threshold
285   },
286   {  // bits = 21
287         16,   // KS1 -> KS2 multiplication threshold
288         33,   // KS2 -> KS4 multiplication threshold
289         96,   // KS4 -> FFT multiplication threshold
290         25,   // KS1 -> KS2 squaring threshold
291         70,   // KS2 -> KS4 squaring threshold
292        243,   // KS4 -> FFT squaring threshold
293         17,   // KS1 -> KS2 middle product threshold
294        264,   // KS2 -> KS4 middle product threshold
295       3877,   // KS4 -> FFT middle product threshold
296          7,   // nussbaumer multiplication threshold
297          7    // nussbaumer squaring threshold
298   },
299   {  // bits = 22
300         17,   // KS1 -> KS2 multiplication threshold
301         35,   // KS2 -> KS4 multiplication threshold
302         84,   // KS4 -> FFT multiplication threshold
303         21,   // KS1 -> KS2 squaring threshold
304         70,   // KS2 -> KS4 squaring threshold
305        243,   // KS4 -> FFT squaring threshold
306         21,   // KS1 -> KS2 middle product threshold
307        206,   // KS2 -> KS4 middle product threshold
308       3511,   // KS4 -> FFT middle product threshold
309          6,   // nussbaumer multiplication threshold
310          7    // nussbaumer squaring threshold
311   },
312   {  // bits = 23
313         19,   // KS1 -> KS2 multiplication threshold
314         31,   // KS2 -> KS4 multiplication threshold
315         84,   // KS4 -> FFT multiplication threshold
316         23,   // KS1 -> KS2 squaring threshold
317         70,   // KS2 -> KS4 squaring threshold
318        296,   // KS4 -> FFT squaring threshold
319         23,   // KS1 -> KS2 middle product threshold
320        189,   // KS2 -> KS4 middle product threshold
321       3180,   // KS4 -> FFT middle product threshold
322          6,   // nussbaumer multiplication threshold
323          6    // nussbaumer squaring threshold
324   },
325   {  // bits = 24
326         17,   // KS1 -> KS2 multiplication threshold
327         31,   // KS2 -> KS4 multiplication threshold
328         64,   // KS4 -> FFT multiplication threshold
329         19,   // KS1 -> KS2 squaring threshold
330         61,   // KS2 -> KS4 squaring threshold
331        220,   // KS4 -> FFT squaring threshold
332         19,   // KS1 -> KS2 middle product threshold
333        173,   // KS2 -> KS4 middle product threshold
334       3180,   // KS4 -> FFT middle product threshold
335          6,   // nussbaumer multiplication threshold
336          7    // nussbaumer squaring threshold
337   },
338   {  // bits = 25
339         17,   // KS1 -> KS2 multiplication threshold
340         29,   // KS2 -> KS4 multiplication threshold
341        148,   // KS4 -> FFT multiplication threshold
342         23,   // KS1 -> KS2 squaring threshold
343         61,   // KS2 -> KS4 squaring threshold
344        180,   // KS4 -> FFT squaring threshold
345         19,   // KS1 -> KS2 middle product threshold
346        173,   // KS2 -> KS4 middle product threshold
347      34238,   // KS4 -> FFT middle product threshold
348          4,   // nussbaumer multiplication threshold
349          7    // nussbaumer squaring threshold
350   },
351   {  // bits = 26
352         16,   // KS1 -> KS2 multiplication threshold
353         29,   // KS2 -> KS4 multiplication threshold
354         74,   // KS4 -> FFT multiplication threshold
355         23,   // KS1 -> KS2 squaring threshold
356         57,   // KS2 -> KS4 squaring threshold
357        199,   // KS4 -> FFT squaring threshold
358         17,   // KS1 -> KS2 middle product threshold
359        119,   // KS2 -> KS4 middle product threshold
360       3180,   // KS4 -> FFT middle product threshold
361          6,   // nussbaumer multiplication threshold
362          7    // nussbaumer squaring threshold
363   },
364   {  // bits = 27
365         14,   // KS1 -> KS2 multiplication threshold
366         27,   // KS2 -> KS4 multiplication threshold
367         64,   // KS4 -> FFT multiplication threshold
368         19,   // KS1 -> KS2 squaring threshold
369         57,   // KS2 -> KS4 squaring threshold
370        180,   // KS4 -> FFT squaring threshold
371         17,   // KS1 -> KS2 middle product threshold
372        123,   // KS2 -> KS4 middle product threshold
373       2609,   // KS4 -> FFT middle product threshold
374          6,   // nussbaumer multiplication threshold
375          7    // nussbaumer squaring threshold
376   },
377   {  // bits = 28
378         14,   // KS1 -> KS2 multiplication threshold
379         27,   // KS2 -> KS4 multiplication threshold
380         61,   // KS4 -> FFT multiplication threshold
381         19,   // KS1 -> KS2 squaring threshold
382         57,   // KS2 -> KS4 squaring threshold
383        180,   // KS4 -> FFT squaring threshold
384         19,   // KS1 -> KS2 middle product threshold
385         94,   // KS2 -> KS4 middle product threshold
386       2609,   // KS4 -> FFT middle product threshold
387          6,   // nussbaumer multiplication threshold
388          7    // nussbaumer squaring threshold
389   },
390   {  // bits = 29
391         14,   // KS1 -> KS2 multiplication threshold
392         25,   // KS2 -> KS4 multiplication threshold
393         56,   // KS4 -> FFT multiplication threshold
394         19,   // KS1 -> KS2 squaring threshold
395         54,   // KS2 -> KS4 squaring threshold
396        148,   // KS4 -> FFT squaring threshold
397         17,   // KS1 -> KS2 middle product threshold
398        112,   // KS2 -> KS4 middle product threshold
399       2609,   // KS4 -> FFT middle product threshold
400          6,   // nussbaumer multiplication threshold
401          7    // nussbaumer squaring threshold
402   },
403   {  // bits = 30
404         13,   // KS1 -> KS2 multiplication threshold
405         27,   // KS2 -> KS4 multiplication threshold
406         56,   // KS4 -> FFT multiplication threshold
407         17,   // KS1 -> KS2 squaring threshold
408         50,   // KS2 -> KS4 squaring threshold
409        148,   // KS4 -> FFT squaring threshold
410         17,   // KS1 -> KS2 middle product threshold
411         78,   // KS2 -> KS4 middle product threshold
412       2609,   // KS4 -> FFT middle product threshold
413          6,   // nussbaumer multiplication threshold
414          7    // nussbaumer squaring threshold
415   },
416   {  // bits = 31
417         14,   // KS1 -> KS2 multiplication threshold
418         24,   // KS2 -> KS4 multiplication threshold
419         55,   // KS4 -> FFT multiplication threshold
420         21,   // KS1 -> KS2 squaring threshold
421         47,   // KS2 -> KS4 squaring threshold
422        180,   // KS4 -> FFT squaring threshold
423         16,   // KS1 -> KS2 middle product threshold
424         86,   // KS2 -> KS4 middle product threshold
425       2609,   // KS4 -> FFT middle product threshold
426          6,   // nussbaumer multiplication threshold
427          7    // nussbaumer squaring threshold
428   },
429   {  // bits = 32
430         14,   // KS1 -> KS2 multiplication threshold
431         22,   // KS2 -> KS4 multiplication threshold
432         61,   // KS4 -> FFT multiplication threshold
433         17,   // KS1 -> KS2 squaring threshold
434         47,   // KS2 -> KS4 squaring threshold
435        180,   // KS4 -> FFT squaring threshold
436         17,   // KS1 -> KS2 middle product threshold
437         75,   // KS2 -> KS4 middle product threshold
438       2697,   // KS4 -> FFT middle product threshold
439          6,   // nussbaumer multiplication threshold
440          7    // nussbaumer squaring threshold
441   },
442   {  // bits = 33
443         13,   // KS1 -> KS2 multiplication threshold
444         22,   // KS2 -> KS4 multiplication threshold
445         49,   // KS4 -> FFT multiplication threshold
446         17,   // KS1 -> KS2 squaring threshold
447         50,   // KS2 -> KS4 squaring threshold
448        142,   // KS4 -> FFT squaring threshold
449         17,   // KS1 -> KS2 middle product threshold
450         78,   // KS2 -> KS4 middle product threshold
451       2363,   // KS4 -> FFT middle product threshold
452          6,   // nussbaumer multiplication threshold
453          7    // nussbaumer squaring threshold
454   },
455   {  // bits = 34
456         13,   // KS1 -> KS2 multiplication threshold
457         21,   // KS2 -> KS4 multiplication threshold
458         50,   // KS4 -> FFT multiplication threshold
459         19,   // KS1 -> KS2 squaring threshold
460         43,   // KS2 -> KS4 squaring threshold
461        142,   // KS4 -> FFT squaring threshold
462         17,   // KS1 -> KS2 middle product threshold
463         72,   // KS2 -> KS4 middle product threshold
464       2609,   // KS4 -> FFT middle product threshold
465          6,   // nussbaumer multiplication threshold
466          7    // nussbaumer squaring threshold
467   },
468   {  // bits = 35
469         14,   // KS1 -> KS2 multiplication threshold
470         21,   // KS2 -> KS4 multiplication threshold
471         50,   // KS4 -> FFT multiplication threshold
472         17,   // KS1 -> KS2 squaring threshold
473         46,   // KS2 -> KS4 squaring threshold
474        162,   // KS4 -> FFT squaring threshold
475         16,   // KS1 -> KS2 middle product threshold
476         75,   // KS2 -> KS4 middle product threshold
477       2363,   // KS4 -> FFT middle product threshold
478          6,   // nussbaumer multiplication threshold
479          7    // nussbaumer squaring threshold
480   },
481   {  // bits = 36
482         12,   // KS1 -> KS2 multiplication threshold
483         21,   // KS2 -> KS4 multiplication threshold
484         55,   // KS4 -> FFT multiplication threshold
485         19,   // KS1 -> KS2 squaring threshold
486         40,   // KS2 -> KS4 squaring threshold
487        162,   // KS4 -> FFT squaring threshold
488         16,   // KS1 -> KS2 middle product threshold
489         54,   // KS2 -> KS4 middle product threshold
490       2363,   // KS4 -> FFT middle product threshold
491          6,   // nussbaumer multiplication threshold
492          7    // nussbaumer squaring threshold
493   },
494   {  // bits = 37
495         13,   // KS1 -> KS2 multiplication threshold
496         19,   // KS2 -> KS4 multiplication threshold
497         50,   // KS4 -> FFT multiplication threshold
498         17,   // KS1 -> KS2 squaring threshold
499         43,   // KS2 -> KS4 squaring threshold
500        148,   // KS4 -> FFT squaring threshold
501         14,   // KS1 -> KS2 middle product threshold
502         47,   // KS2 -> KS4 middle product threshold
503       2140,   // KS4 -> FFT middle product threshold
504          6,   // nussbaumer multiplication threshold
505          7    // nussbaumer squaring threshold
506   },
507   {  // bits = 38
508         15,   // KS1 -> KS2 multiplication threshold
509         19,   // KS2 -> KS4 multiplication threshold
510         45,   // KS4 -> FFT multiplication threshold
511         19,   // KS1 -> KS2 squaring threshold
512         40,   // KS2 -> KS4 squaring threshold
513        164,   // KS4 -> FFT squaring threshold
514         14,   // KS1 -> KS2 middle product threshold
515         38,   // KS2 -> KS4 middle product threshold
516       2140,   // KS4 -> FFT middle product threshold
517          6,   // nussbaumer multiplication threshold
518          7    // nussbaumer squaring threshold
519   },
520   {  // bits = 39
521         15,   // KS1 -> KS2 multiplication threshold
522         21,   // KS2 -> KS4 multiplication threshold
523         45,   // KS4 -> FFT multiplication threshold
524         19,   // KS1 -> KS2 squaring threshold
525         38,   // KS2 -> KS4 squaring threshold
526        134,   // KS4 -> FFT squaring threshold
527         14,   // KS1 -> KS2 middle product threshold
528         35,   // KS2 -> KS4 middle product threshold
529       1939,   // KS4 -> FFT middle product threshold
530          6,   // nussbaumer multiplication threshold
531          7    // nussbaumer squaring threshold
532   },
533   {  // bits = 40
534         13,   // KS1 -> KS2 multiplication threshold
535         19,   // KS2 -> KS4 multiplication threshold
536         45,   // KS4 -> FFT multiplication threshold
537         19,   // KS1 -> KS2 squaring threshold
538         38,   // KS2 -> KS4 squaring threshold
539        134,   // KS4 -> FFT squaring threshold
540         13,   // KS1 -> KS2 middle product threshold
541         35,   // KS2 -> KS4 middle product threshold
542       1939,   // KS4 -> FFT middle product threshold
543          6,   // nussbaumer multiplication threshold
544          7    // nussbaumer squaring threshold
545   },
546   {  // bits = 41
547         13,   // KS1 -> KS2 multiplication threshold
548         17,   // KS2 -> KS4 multiplication threshold
549         41,   // KS4 -> FFT multiplication threshold
550         19,   // KS1 -> KS2 squaring threshold
551         35,   // KS2 -> KS4 squaring threshold
552        134,   // KS4 -> FFT squaring threshold
553         13,   // KS1 -> KS2 middle product threshold
554         35,   // KS2 -> KS4 middle product threshold
555       1756,   // KS4 -> FFT middle product threshold
556          6,   // nussbaumer multiplication threshold
557          7    // nussbaumer squaring threshold
558   },
559   {  // bits = 42
560         13,   // KS1 -> KS2 multiplication threshold
561         17,   // KS2 -> KS4 multiplication threshold
562         41,   // KS4 -> FFT multiplication threshold
563         19,   // KS1 -> KS2 squaring threshold
564         35,   // KS2 -> KS4 squaring threshold
565        134,   // KS4 -> FFT squaring threshold
566         13,   // KS1 -> KS2 middle product threshold
567         33,   // KS2 -> KS4 middle product threshold
568       1756,   // KS4 -> FFT middle product threshold
569          6,   // nussbaumer multiplication threshold
570          7    // nussbaumer squaring threshold
571   },
572   {  // bits = 43
573         13,   // KS1 -> KS2 multiplication threshold
574         17,   // KS2 -> KS4 multiplication threshold
575         41,   // KS4 -> FFT multiplication threshold
576         21,   // KS1 -> KS2 squaring threshold
577         38,   // KS2 -> KS4 squaring threshold
578        122,   // KS4 -> FFT squaring threshold
579         13,   // KS1 -> KS2 middle product threshold
580         33,   // KS2 -> KS4 middle product threshold
581       1756,   // KS4 -> FFT middle product threshold
582          6,   // nussbaumer multiplication threshold
583          7    // nussbaumer squaring threshold
584   },
585   {  // bits = 44
586         13,   // KS1 -> KS2 multiplication threshold
587         17,   // KS2 -> KS4 multiplication threshold
588         37,   // KS4 -> FFT multiplication threshold
589         19,   // KS1 -> KS2 squaring threshold
590         35,   // KS2 -> KS4 squaring threshold
591        122,   // KS4 -> FFT squaring threshold
592         13,   // KS1 -> KS2 middle product threshold
593         27,   // KS2 -> KS4 middle product threshold
594       1756,   // KS4 -> FFT middle product threshold
595          6,   // nussbaumer multiplication threshold
596          7    // nussbaumer squaring threshold
597   },
598   {  // bits = 45
599         12,   // KS1 -> KS2 multiplication threshold
600         17,   // KS2 -> KS4 multiplication threshold
601         34,   // KS4 -> FFT multiplication threshold
602         17,   // KS1 -> KS2 squaring threshold
603         33,   // KS2 -> KS4 squaring threshold
604        122,   // KS4 -> FFT squaring threshold
605         12,   // KS1 -> KS2 middle product threshold
606         27,   // KS2 -> KS4 middle product threshold
607       1539,   // KS4 -> FFT middle product threshold
608          6,   // nussbaumer multiplication threshold
609          7    // nussbaumer squaring threshold
610   },
611   {  // bits = 46
612         13,   // KS1 -> KS2 multiplication threshold
613         17,   // KS2 -> KS4 multiplication threshold
614         34,   // KS4 -> FFT multiplication threshold
615         24,   // KS1 -> KS2 squaring threshold
616         33,   // KS2 -> KS4 squaring threshold
617        122,   // KS4 -> FFT squaring threshold
618         13,   // KS1 -> KS2 middle product threshold
619         31,   // KS2 -> KS4 middle product threshold
620       1539,   // KS4 -> FFT middle product threshold
621          6,   // nussbaumer multiplication threshold
622          7    // nussbaumer squaring threshold
623   },
624   {  // bits = 47
625         15,   // KS1 -> KS2 multiplication threshold
626         16,   // KS2 -> KS4 multiplication threshold
627         37,   // KS4 -> FFT multiplication threshold
628         19,   // KS1 -> KS2 squaring threshold
629         31,   // KS2 -> KS4 squaring threshold
630        110,   // KS4 -> FFT squaring threshold
631         12,   // KS1 -> KS2 middle product threshold
632         27,   // KS2 -> KS4 middle product threshold
633       1590,   // KS4 -> FFT middle product threshold
634          6,   // nussbaumer multiplication threshold
635          7    // nussbaumer squaring threshold
636   },
637   {  // bits = 48
638         13,   // KS1 -> KS2 multiplication threshold
639         16,   // KS2 -> KS4 multiplication threshold
640         34,   // KS4 -> FFT multiplication threshold
641         19,   // KS1 -> KS2 squaring threshold
642         29,   // KS2 -> KS4 squaring threshold
643        122,   // KS4 -> FFT squaring threshold
644         12,   // KS1 -> KS2 middle product threshold
645         25,   // KS2 -> KS4 middle product threshold
646       1590,   // KS4 -> FFT middle product threshold
647          5,   // nussbaumer multiplication threshold
648          6    // nussbaumer squaring threshold
649   },
650   {  // bits = 49
651         13,   // KS1 -> KS2 multiplication threshold
652         16,   // KS2 -> KS4 multiplication threshold
653         34,   // KS4 -> FFT multiplication threshold
654         15,   // KS1 -> KS2 squaring threshold
655         27,   // KS2 -> KS4 squaring threshold
656        110,   // KS4 -> FFT squaring threshold
657         10,   // KS1 -> KS2 middle product threshold
658         25,   // KS2 -> KS4 middle product threshold
659       1349,   // KS4 -> FFT middle product threshold
660          5,   // nussbaumer multiplication threshold
661          6    // nussbaumer squaring threshold
662   },
663   {  // bits = 50
664         13,   // KS1 -> KS2 multiplication threshold
665         16,   // KS2 -> KS4 multiplication threshold
666         34,   // KS4 -> FFT multiplication threshold
667         17,   // KS1 -> KS2 squaring threshold
668         27,   // KS2 -> KS4 squaring threshold
669        110,   // KS4 -> FFT squaring threshold
670         10,   // KS1 -> KS2 middle product threshold
671         25,   // KS2 -> KS4 middle product threshold
672       1349,   // KS4 -> FFT middle product threshold
673          5,   // nussbaumer multiplication threshold
674          6    // nussbaumer squaring threshold
675   },
676   {  // bits = 51
677         10,   // KS1 -> KS2 multiplication threshold
678         14,   // KS2 -> KS4 multiplication threshold
679       2140,   // KS4 -> FFT multiplication threshold
680         17,   // KS1 -> KS2 squaring threshold
681         23,   // KS2 -> KS4 squaring threshold
682        243,   // KS4 -> FFT squaring threshold
683         10,   // KS1 -> KS2 middle product threshold
684         25,   // KS2 -> KS4 middle product threshold
685       2140,   // KS4 -> FFT middle product threshold
686          3,   // nussbaumer multiplication threshold
687          4    // nussbaumer squaring threshold
688   },
689   {  // bits = 52
690         10,   // KS1 -> KS2 multiplication threshold
691         16,   // KS2 -> KS4 multiplication threshold
692       2140,   // KS4 -> FFT multiplication threshold
693         17,   // KS1 -> KS2 squaring threshold
694         25,   // KS2 -> KS4 squaring threshold
695        220,   // KS4 -> FFT squaring threshold
696         10,   // KS1 -> KS2 middle product threshold
697         24,   // KS2 -> KS4 middle product threshold
698       2140,   // KS4 -> FFT middle product threshold
699          3,   // nussbaumer multiplication threshold
700          4    // nussbaumer squaring threshold
701   },
702   {  // bits = 53
703         12,   // KS1 -> KS2 multiplication threshold
704         14,   // KS2 -> KS4 multiplication threshold
705       2140,   // KS4 -> FFT multiplication threshold
706         17,   // KS1 -> KS2 squaring threshold
707         25,   // KS2 -> KS4 squaring threshold
708        220,   // KS4 -> FFT squaring threshold
709         10,   // KS1 -> KS2 middle product threshold
710         24,   // KS2 -> KS4 middle product threshold
711       2140,   // KS4 -> FFT middle product threshold
712          3,   // nussbaumer multiplication threshold
713          4    // nussbaumer squaring threshold
714   },
715   {  // bits = 54
716         13,   // KS1 -> KS2 multiplication threshold
717         13,   // KS2 -> KS4 multiplication threshold
718       2140,   // KS4 -> FFT multiplication threshold
719         19,   // KS1 -> KS2 squaring threshold
720         23,   // KS2 -> KS4 squaring threshold
721        220,   // KS4 -> FFT squaring threshold
722          9,   // KS1 -> KS2 middle product threshold
723         21,   // KS2 -> KS4 middle product threshold
724       2140,   // KS4 -> FFT middle product threshold
725          3,   // nussbaumer multiplication threshold
726          4    // nussbaumer squaring threshold
727   },
728   {  // bits = 55
729         12,   // KS1 -> KS2 multiplication threshold
730         13,   // KS2 -> KS4 multiplication threshold
731       2140,   // KS4 -> FFT multiplication threshold
732         13,   // KS1 -> KS2 squaring threshold
733         17,   // KS2 -> KS4 squaring threshold
734        100,   // KS4 -> FFT squaring threshold
735         10,   // KS1 -> KS2 middle product threshold
736         21,   // KS2 -> KS4 middle product threshold
737       2140,   // KS4 -> FFT middle product threshold
738          3,   // nussbaumer multiplication threshold
739          6    // nussbaumer squaring threshold
740   },
741   {  // bits = 56
742         12,   // KS1 -> KS2 multiplication threshold
743         13,   // KS2 -> KS4 multiplication threshold
744       2140,   // KS4 -> FFT multiplication threshold
745         13,   // KS1 -> KS2 squaring threshold
746         17,   // KS2 -> KS4 squaring threshold
747         90,   // KS4 -> FFT squaring threshold
748          9,   // KS1 -> KS2 middle product threshold
749         21,   // KS2 -> KS4 middle product threshold
750       2140,   // KS4 -> FFT middle product threshold
751          3,   // nussbaumer multiplication threshold
752          6    // nussbaumer squaring threshold
753   },
754   {  // bits = 57
755         12,   // KS1 -> KS2 multiplication threshold
756         13,   // KS2 -> KS4 multiplication threshold
757       2140,   // KS4 -> FFT multiplication threshold
758         15,   // KS1 -> KS2 squaring threshold
759         16,   // KS2 -> KS4 squaring threshold
760         90,   // KS4 -> FFT squaring threshold
761          9,   // KS1 -> KS2 middle product threshold
762         19,   // KS2 -> KS4 middle product threshold
763       2140,   // KS4 -> FFT middle product threshold
764          3,   // nussbaumer multiplication threshold
765          6    // nussbaumer squaring threshold
766   },
767   {  // bits = 58
768          9,   // KS1 -> KS2 multiplication threshold
769         14,   // KS2 -> KS4 multiplication threshold
770       2140,   // KS4 -> FFT multiplication threshold
771         15,   // KS1 -> KS2 squaring threshold
772         23,   // KS2 -> KS4 squaring threshold
773         90,   // KS4 -> FFT squaring threshold
774          9,   // KS1 -> KS2 middle product threshold
775         21,   // KS2 -> KS4 middle product threshold
776       2140,   // KS4 -> FFT middle product threshold
777          3,   // nussbaumer multiplication threshold
778          6    // nussbaumer squaring threshold
779   },
780   {  // bits = 59
781         10,   // KS1 -> KS2 multiplication threshold
782         13,   // KS2 -> KS4 multiplication threshold
783       2140,   // KS4 -> FFT multiplication threshold
784         15,   // KS1 -> KS2 squaring threshold
785         17,   // KS2 -> KS4 squaring threshold
786         82,   // KS4 -> FFT squaring threshold
787          8,   // KS1 -> KS2 middle product threshold
788         19,   // KS2 -> KS4 middle product threshold
789       2140,   // KS4 -> FFT middle product threshold
790          3,   // nussbaumer multiplication threshold
791          6    // nussbaumer squaring threshold
792   },
793   {  // bits = 60
794         10,   // KS1 -> KS2 multiplication threshold
795         14,   // KS2 -> KS4 multiplication threshold
796       2140,   // KS4 -> FFT multiplication threshold
797         15,   // KS1 -> KS2 squaring threshold
798         19,   // KS2 -> KS4 squaring threshold
799         82,   // KS4 -> FFT squaring threshold
800          8,   // KS1 -> KS2 middle product threshold
801         17,   // KS2 -> KS4 middle product threshold
802       2140,   // KS4 -> FFT middle product threshold
803          3,   // nussbaumer multiplication threshold
804          6    // nussbaumer squaring threshold
805   },
806   {  // bits = 61
807         10,   // KS1 -> KS2 multiplication threshold
808         14,   // KS2 -> KS4 multiplication threshold
809       2140,   // KS4 -> FFT multiplication threshold
810         15,   // KS1 -> KS2 squaring threshold
811         17,   // KS2 -> KS4 squaring threshold
812         74,   // KS4 -> FFT squaring threshold
813          8,   // KS1 -> KS2 middle product threshold
814         16,   // KS2 -> KS4 middle product threshold
815       2140,   // KS4 -> FFT middle product threshold
816          3,   // nussbaumer multiplication threshold
817          6    // nussbaumer squaring threshold
818   },
819   {  // bits = 62
820          9,   // KS1 -> KS2 multiplication threshold
821         13,   // KS2 -> KS4 multiplication threshold
822       1939,   // KS4 -> FFT multiplication threshold
823         17,   // KS1 -> KS2 squaring threshold
824         19,   // KS2 -> KS4 squaring threshold
825        134,   // KS4 -> FFT squaring threshold
826          8,   // KS1 -> KS2 middle product threshold
827         19,   // KS2 -> KS4 middle product threshold
828       2140,   // KS4 -> FFT middle product threshold
829          3,   // nussbaumer multiplication threshold
830          4    // nussbaumer squaring threshold
831   },
832   {  // bits = 63
833         10,   // KS1 -> KS2 multiplication threshold
834         12,   // KS2 -> KS4 multiplication threshold
835       2140,   // KS4 -> FFT multiplication threshold
836         15,   // KS1 -> KS2 squaring threshold
837         21,   // KS2 -> KS4 squaring threshold
838         74,   // KS4 -> FFT squaring threshold
839          8,   // KS1 -> KS2 middle product threshold
840         19,   // KS2 -> KS4 middle product threshold
841       2140,   // KS4 -> FFT middle product threshold
842          3,   // nussbaumer multiplication threshold
843          6    // nussbaumer squaring threshold
844   },
845   {  // bits = 64
846         10,   // KS1 -> KS2 multiplication threshold
847         12,   // KS2 -> KS4 multiplication threshold
848       2140,   // KS4 -> FFT multiplication threshold
849         13,   // KS1 -> KS2 squaring threshold
850         23,   // KS2 -> KS4 squaring threshold
851        100,   // KS4 -> FFT squaring threshold
852          8,   // KS1 -> KS2 middle product threshold
853         19,   // KS2 -> KS4 middle product threshold
854       2363,   // KS4 -> FFT middle product threshold
855          3,   // nussbaumer multiplication threshold
856          6    // nussbaumer squaring threshold
857   },
858};
859
860// end of file ****************************************************************