New package: zn_poly-0.9.2

This commit is contained in:
Gonzalo Tornaría 2021-08-29 20:05:24 -03:00 committed by Leah Neukirchen
parent f91cd82ceb
commit bf74a2e243
3 changed files with 1336 additions and 0 deletions

View file

@ -0,0 +1,444 @@
/*
NOTE: do not edit this file! It is auto-generated by the "tune" program.
(Run "make tune" and then "./tune > tuning.c" to regenerate it.)
*/
/*
tuning.c: global tuning values
Copyright (C) 2007, 2008, David Harvey
This file is part of the zn_poly library (version 0.9).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "zn_poly_internal.h"
size_t ZNP_mpn_smp_kara_thresh = 43;
size_t ZNP_mpn_mulmid_fallback_thresh = 551;
tuning_info_t tuning_info[] =
{
{ // bits = 0
},
{ // bits = 1
},
{ // bits = 2
47, // KS1 -> KS2 multiplication threshold
1053, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
43, // KS1 -> KS2 squaring threshold
1053, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
56, // KS1 -> KS2 middle product threshold
689, // KS2 -> KS4 middle product threshold
23040, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 3
39, // KS1 -> KS2 multiplication threshold
412, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
39, // KS1 -> KS2 squaring threshold
315, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
43, // KS1 -> KS2 middle product threshold
264, // KS2 -> KS4 middle product threshold
23040, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 4
39, // KS1 -> KS2 multiplication threshold
901, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
33, // KS1 -> KS2 squaring threshold
901, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
43, // KS1 -> KS2 middle product threshold
185, // KS2 -> KS4 middle product threshold
23040, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 5
35, // KS1 -> KS2 multiplication threshold
264, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
31, // KS1 -> KS2 squaring threshold
264, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
35, // KS1 -> KS2 middle product threshold
144, // KS2 -> KS4 middle product threshold
21569, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 6
33, // KS1 -> KS2 multiplication threshold
247, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
31, // KS1 -> KS2 squaring threshold
173, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
116, // KS2 -> KS4 middle product threshold
14044, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 7
33, // KS1 -> KS2 multiplication threshold
247, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
23, // KS1 -> KS2 squaring threshold
226, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
116, // KS2 -> KS4 middle product threshold
12720, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 8
27, // KS1 -> KS2 multiplication threshold
123, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
112, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
94, // KS2 -> KS4 middle product threshold
7753, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 9
24, // KS1 -> KS2 multiplication threshold
206, // KS2 -> KS4 multiplication threshold
62020, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
158, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
27, // KS1 -> KS2 middle product threshold
86, // KS2 -> KS4 middle product threshold
9451, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 10
25, // KS1 -> KS2 multiplication threshold
86, // KS2 -> KS4 multiplication threshold
68475, // KS4 -> FFT multiplication threshold
17, // KS1 -> KS2 squaring threshold
66, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
24, // KS1 -> KS2 middle product threshold
70, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 11
23, // KS1 -> KS2 multiplication threshold
134, // KS2 -> KS4 multiplication threshold
62020, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
107, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
23, // KS1 -> KS2 middle product threshold
75, // KS2 -> KS4 middle product threshold
5393, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 12
17, // KS1 -> KS2 multiplication threshold
78, // KS2 -> KS4 multiplication threshold
75603, // KS4 -> FFT multiplication threshold
16, // KS1 -> KS2 squaring threshold
72, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
19, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
4280, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 13
17, // KS1 -> KS2 multiplication threshold
86, // KS2 -> KS4 multiplication threshold
56173, // KS4 -> FFT multiplication threshold
14, // KS1 -> KS2 squaring threshold
78, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
19, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 14
19, // KS1 -> KS2 multiplication threshold
66, // KS2 -> KS4 multiplication threshold
62020, // KS4 -> FFT multiplication threshold
16, // KS1 -> KS2 squaring threshold
62, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 15
16, // KS1 -> KS2 multiplication threshold
67, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
43, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
51, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 16
14, // KS1 -> KS2 multiplication threshold
66, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
56, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
54, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 17
14, // KS1 -> KS2 multiplication threshold
47, // KS2 -> KS4 multiplication threshold
50877, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
33, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
47, // KS2 -> KS4 middle product threshold
3077, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 18
13, // KS1 -> KS2 multiplication threshold
47, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
33, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
14, // KS1 -> KS2 middle product threshold
47, // KS2 -> KS4 middle product threshold
3077, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 19
13, // KS1 -> KS2 multiplication threshold
31, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
27, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
38, // KS2 -> KS4 middle product threshold
2363, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 20
12, // KS1 -> KS2 multiplication threshold
43, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
33, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
39, // KS2 -> KS4 middle product threshold
2363, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 21
13, // KS1 -> KS2 multiplication threshold
32, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
25, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
35, // KS2 -> KS4 middle product threshold
1756, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 22
12, // KS1 -> KS2 multiplication threshold
31, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
24, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
35, // KS2 -> KS4 middle product threshold
2071, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 23
12, // KS1 -> KS2 multiplication threshold
24, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
21, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
27, // KS2 -> KS4 middle product threshold
1539, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 24
9, // KS1 -> KS2 multiplication threshold
28, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
23, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
29, // KS2 -> KS4 middle product threshold
1756, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 25
12, // KS1 -> KS2 multiplication threshold
21, // KS2 -> KS4 multiplication threshold
25439, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
21, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
1305, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 26
10, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
31010, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
19, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
1349, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 27
9, // KS1 -> KS2 multiplication threshold
17, // KS2 -> KS4 multiplication threshold
28087, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
1070, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 28
10, // KS1 -> KS2 multiplication threshold
17, // KS2 -> KS4 multiplication threshold
28087, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
21, // KS2 -> KS4 middle product threshold
1070, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 29
8, // KS1 -> KS2 multiplication threshold
17, // KS2 -> KS4 multiplication threshold
20868, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
14, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
21, // KS2 -> KS4 middle product threshold
970, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
8 // nussbaumer squaring threshold
},
{ // bits = 30
8, // KS1 -> KS2 multiplication threshold
27, // KS2 -> KS4 multiplication threshold
28087, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
23, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
27, // KS2 -> KS4 middle product threshold
1305, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
8 // nussbaumer squaring threshold
},
{ // bits = 31
9, // KS1 -> KS2 multiplication threshold
23, // KS2 -> KS4 multiplication threshold
28087, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
1070, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 32
8, // KS1 -> KS2 multiplication threshold
25, // KS2 -> KS4 multiplication threshold
28087, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
19, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
8, // KS1 -> KS2 middle product threshold
27, // KS2 -> KS4 middle product threshold
1539, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
};
// end of file ****************************************************************

View file

@ -0,0 +1,860 @@
/*
NOTE: do not edit this file! It is auto-generated by the "tune" program.
(Run "make tune" and then "./tune > tuning.c" to regenerate it.)
*/
/*
tuning.c: global tuning values
Copyright (C) 2007, 2008, David Harvey
This file is part of the zn_poly library (version 0.9).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "zn_poly_internal.h"
size_t ZNP_mpn_smp_kara_thresh = 35;
size_t ZNP_mpn_mulmid_fallback_thresh = 458;
tuning_info_t tuning_info[] =
{
{ // bits = 0
},
{ // bits = 1
},
{ // bits = 2
141, // KS1 -> KS2 multiplication threshold
14733, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
102, // KS1 -> KS2 squaring threshold
3602, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
102, // KS1 -> KS2 middle product threshold
1378, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 3
112, // KS1 -> KS2 multiplication threshold
4308, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
61, // KS1 -> KS2 squaring threshold
4817, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
102, // KS1 -> KS2 middle product threshold
2356, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 4
80, // KS1 -> KS2 multiplication threshold
2576, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
57, // KS1 -> KS2 squaring threshold
1801, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
72, // KS1 -> KS2 middle product threshold
1053, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 5
67, // KS1 -> KS2 multiplication threshold
3294, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
56, // KS1 -> KS2 squaring threshold
2303, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
65, // KS1 -> KS2 middle product threshold
901, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 6
57, // KS1 -> KS2 multiplication threshold
1152, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
51, // KS1 -> KS2 squaring threshold
985, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
62, // KS1 -> KS2 middle product threshold
985, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 7
47, // KS1 -> KS2 multiplication threshold
1540, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
43, // KS1 -> KS2 squaring threshold
788, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
51, // KS1 -> KS2 middle product threshold
451, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 8
47, // KS1 -> KS2 multiplication threshold
901, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
35, // KS1 -> KS2 squaring threshold
753, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
43, // KS1 -> KS2 middle product threshold
576, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 9
43, // KS1 -> KS2 multiplication threshold
589, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
43, // KS1 -> KS2 squaring threshold
493, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
39, // KS1 -> KS2 middle product threshold
302, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 10
38, // KS1 -> KS2 multiplication threshold
824, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
35, // KS1 -> KS2 squaring threshold
576, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
38, // KS1 -> KS2 middle product threshold
337, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 11
43, // KS1 -> KS2 multiplication threshold
431, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
33, // KS1 -> KS2 squaring threshold
377, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
247, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 12
38, // KS1 -> KS2 multiplication threshold
482, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
33, // KS1 -> KS2 squaring threshold
403, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
216, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 13
33, // KS1 -> KS2 multiplication threshold
345, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
30, // KS1 -> KS2 squaring threshold
315, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
33, // KS1 -> KS2 middle product threshold
189, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 14
33, // KS1 -> KS2 multiplication threshold
345, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
29, // KS1 -> KS2 squaring threshold
286, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
31, // KS1 -> KS2 middle product threshold
116, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 15
31, // KS1 -> KS2 multiplication threshold
322, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
23, // KS1 -> KS2 squaring threshold
226, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
29, // KS1 -> KS2 middle product threshold
121, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
1000 // nussbaumer squaring threshold
},
{ // bits = 16
29, // KS1 -> KS2 multiplication threshold
337, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
25, // KS1 -> KS2 squaring threshold
173, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
29, // KS1 -> KS2 middle product threshold
101, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 17
29, // KS1 -> KS2 multiplication threshold
231, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
23, // KS1 -> KS2 squaring threshold
216, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
27, // KS1 -> KS2 middle product threshold
94, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 18
25, // KS1 -> KS2 multiplication threshold
189, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
23, // KS1 -> KS2 squaring threshold
134, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
23, // KS1 -> KS2 middle product threshold
94, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 19
27, // KS1 -> KS2 multiplication threshold
226, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
216, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
86, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
1000, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 20
22, // KS1 -> KS2 multiplication threshold
144, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
119, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
80, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 21
25, // KS1 -> KS2 multiplication threshold
189, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
19, // KS1 -> KS2 squaring threshold
121, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
80, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 22
21, // KS1 -> KS2 multiplication threshold
102, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
21, // KS1 -> KS2 squaring threshold
102, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
70, // KS2 -> KS4 middle product threshold
SIZE_MAX, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
13 // nussbaumer squaring threshold
},
{ // bits = 23
22, // KS1 -> KS2 multiplication threshold
147, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
17, // KS1 -> KS2 squaring threshold
102, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
19, // KS1 -> KS2 middle product threshold
72, // KS2 -> KS4 middle product threshold
23040, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 24
19, // KS1 -> KS2 multiplication threshold
86, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
19, // KS1 -> KS2 squaring threshold
72, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
19, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
20868, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 25
21, // KS1 -> KS2 multiplication threshold
149, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
19, // KS1 -> KS2 squaring threshold
102, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
21, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
20868, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 26
17, // KS1 -> KS2 multiplication threshold
86, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
16, // KS1 -> KS2 squaring threshold
72, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
16026, // KS4 -> FFT middle product threshold
13, // nussbaumer multiplication threshold
12 // nussbaumer squaring threshold
},
{ // bits = 27
17, // KS1 -> KS2 multiplication threshold
119, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
16, // KS1 -> KS2 squaring threshold
64, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
16, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
16026, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 28
23, // KS1 -> KS2 multiplication threshold
107, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
14, // KS1 -> KS2 squaring threshold
62, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
66, // KS2 -> KS4 middle product threshold
9451, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 29
17, // KS1 -> KS2 multiplication threshold
85, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
14, // KS1 -> KS2 squaring threshold
65, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
16, // KS1 -> KS2 middle product threshold
61, // KS2 -> KS4 middle product threshold
14044, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 30
17, // KS1 -> KS2 multiplication threshold
66, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
17, // KS1 -> KS2 squaring threshold
43, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
61, // KS2 -> KS4 middle product threshold
12307, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 31
17, // KS1 -> KS2 multiplication threshold
73, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
35, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
57, // KS2 -> KS4 middle product threshold
16026, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 32
17, // KS1 -> KS2 multiplication threshold
56, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
14, // KS1 -> KS2 squaring threshold
40, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
56, // KS2 -> KS4 middle product threshold
8013, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 33
16, // KS1 -> KS2 multiplication threshold
47, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
15, // KS1 -> KS2 squaring threshold
29, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
14, // KS1 -> KS2 middle product threshold
51, // KS2 -> KS4 middle product threshold
8560, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 34
16, // KS1 -> KS2 multiplication threshold
47, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
15, // KS1 -> KS2 squaring threshold
27, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
17, // KS1 -> KS2 middle product threshold
47, // KS2 -> KS4 middle product threshold
6154, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 35
16, // KS1 -> KS2 multiplication threshold
47, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
29, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
43, // KS2 -> KS4 middle product threshold
7022, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 36
16, // KS1 -> KS2 multiplication threshold
36, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
29, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
43, // KS2 -> KS4 middle product threshold
6154, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 37
14, // KS1 -> KS2 multiplication threshold
36, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
25, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
14, // KS1 -> KS2 middle product threshold
47, // KS2 -> KS4 middle product threshold
7022, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 38
16, // KS1 -> KS2 multiplication threshold
30, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
13, // KS1 -> KS2 squaring threshold
25, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
14, // KS1 -> KS2 middle product threshold
43, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 39
15, // KS1 -> KS2 multiplication threshold
32, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
23, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
40, // KS2 -> KS4 middle product threshold
5393, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
11 // nussbaumer squaring threshold
},
{ // bits = 40
13, // KS1 -> KS2 multiplication threshold
32, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
23, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
38, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
12, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 41
13, // KS1 -> KS2 multiplication threshold
25, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
21, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
33, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 42
13, // KS1 -> KS2 multiplication threshold
27, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
23, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
33, // KS2 -> KS4 middle product threshold
4280, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 43
13, // KS1 -> KS2 multiplication threshold
24, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
21, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
31, // KS2 -> KS4 middle product threshold
4726, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 44
13, // KS1 -> KS2 multiplication threshold
33, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
18, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
33, // KS2 -> KS4 middle product threshold
4280, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 45
12, // KS1 -> KS2 multiplication threshold
23, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
19, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
29, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 46
15, // KS1 -> KS2 multiplication threshold
25, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
13, // KS1 -> KS2 middle product threshold
31, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 47
12, // KS1 -> KS2 multiplication threshold
23, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
12, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
29, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 48
13, // KS1 -> KS2 multiplication threshold
23, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
3877, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 49
12, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
16, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
3511, // KS4 -> FFT middle product threshold
11, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 50
10, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
17, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
27, // KS2 -> KS4 middle product threshold
3511, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 51
10, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
16, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
2363, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 52
12, // KS1 -> KS2 multiplication threshold
21, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
10, // KS1 -> KS2 squaring threshold
16, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
24, // KS2 -> KS4 middle product threshold
2697, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 53
12, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
16, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
24, // KS2 -> KS4 middle product threshold
2140, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
10 // nussbaumer squaring threshold
},
{ // bits = 54
12, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
16, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
2363, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 55
9, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
12, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
10, // KS1 -> KS2 middle product threshold
19, // KS2 -> KS4 middle product threshold
1939, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 56
9, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
8, // KS1 -> KS2 squaring threshold
13, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
19, // KS2 -> KS4 middle product threshold
2140, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 57
10, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
15, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
21, // KS2 -> KS4 middle product threshold
2071, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 58
12, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
9, // KS1 -> KS2 squaring threshold
12, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
12, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
2071, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 59
8, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
13, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
8, // KS1 -> KS2 middle product threshold
19, // KS2 -> KS4 middle product threshold
1756, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 60
8, // KS1 -> KS2 multiplication threshold
16, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
13, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
8, // KS1 -> KS2 middle product threshold
17, // KS2 -> KS4 middle product threshold
1756, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 61
8, // KS1 -> KS2 multiplication threshold
12, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
12, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
8, // KS1 -> KS2 middle product threshold
19, // KS2 -> KS4 middle product threshold
1939, // KS4 -> FFT middle product threshold
9, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 62
10, // KS1 -> KS2 multiplication threshold
19, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
14, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
2697, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 63
9, // KS1 -> KS2 multiplication threshold
25, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
19, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
23, // KS2 -> KS4 middle product threshold
2363, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
{ // bits = 64
9, // KS1 -> KS2 multiplication threshold
31, // KS2 -> KS4 multiplication threshold
SIZE_MAX, // KS4 -> FFT multiplication threshold
7, // KS1 -> KS2 squaring threshold
25, // KS2 -> KS4 squaring threshold
SIZE_MAX, // KS4 -> FFT squaring threshold
9, // KS1 -> KS2 middle product threshold
25, // KS2 -> KS4 middle product threshold
2697, // KS4 -> FFT middle product threshold
10, // nussbaumer multiplication threshold
9 // nussbaumer squaring threshold
},
};
// end of file ****************************************************************

32
srcpkgs/zn_poly/template Normal file
View file

@ -0,0 +1,32 @@
# Template file for 'zn_poly'
pkgname=zn_poly
version=0.9.2
revision=1
build_style=configure
configure_args="--prefix=\$(DESTDIR)/usr"
hostmakedepends="python3"
makedepends="gmp-devel"
short_desc="Library for polynomial arithmetic in Z/nZ[x], for unsigned long n"
maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
license="GPL-2.0-only, GPL-3.0-only"
homepage="https://gitlab.com/sagemath/zn_poly"
distfiles="https://gitlab.com/sagemath/zn_poly/-/archive/${version}/zn_poly-${version}.tar.bz2"
checksum=29d88ce19939f53e920adf118d8cd6c8c9594bc8cb71a992a6137bd86f6fb7f5
CFLAGS=-fPIC
build_options="native_build"
if [ -z "$build_option_native_build" ]; then
configure_args+=" --disable-tuning"
fi
post_extract() {
cp -v ${FILESDIR}/tuning-${XBPS_WORDSIZE}.c tune/tuning.c
}
do_configure() {
./configure ${configure_args} \
--cflags="$CFLAGS" --ldflags="$LDFLAGS" \
--cppflags="$CPPFLAGS" --cxxflags="$CXXFLAGS"
}