summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2013-09-22 12:19:20 +0200
committerTorbjorn Granlund <tege@gmplib.org>2013-09-22 12:19:20 +0200
commit9643ceb93ff841b895e90710ff6370320125a63d (patch)
tree0a6e4f571ec3e4b5337413bda2f039e8c2b6fc31
parentf7bf378e274ba656f5c1ea342bd63c31621fbcf5 (diff)
downloadgmp-9643ceb93ff841b895e90710ff6370320125a63d.tar.gz
Retune.
-rw-r--r--mpn/x86_64/atom/gmp-mparam.h202
-rw-r--r--mpn/x86_64/bd1/gmp-mparam.h162
-rw-r--r--mpn/x86_64/bobcat/gmp-mparam.h73
-rw-r--r--mpn/x86_64/core2/gmp-mparam.h200
-rw-r--r--mpn/x86_64/coreihwl/gmp-mparam.h58
-rw-r--r--mpn/x86_64/coreinhm/gmp-mparam.h194
-rw-r--r--mpn/x86_64/coreisbr/gmp-mparam.h133
-rw-r--r--mpn/x86_64/k10/gmp-mparam.h28
-rw-r--r--mpn/x86_64/nano/gmp-mparam.h268
9 files changed, 604 insertions, 714 deletions
diff --git a/mpn/x86_64/atom/gmp-mparam.h b/mpn/x86_64/atom/gmp-mparam.h
index bc19a095c..7d4c54bf7 100644
--- a/mpn/x86_64/atom/gmp-mparam.h
+++ b/mpn/x86_64/atom/gmp-mparam.h
@@ -41,127 +41,127 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 15
-#define MUL_TOOM22_THRESHOLD 10
+#define MUL_TOOM22_THRESHOLD 12
#define MUL_TOOM33_THRESHOLD 66
#define MUL_TOOM44_THRESHOLD 118
#define MUL_TOOM6H_THRESHOLD 157
-#define MUL_TOOM8H_THRESHOLD 236
+#define MUL_TOOM8H_THRESHOLD 212
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 131
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 74
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 81
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 78
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 88
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 80
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 58
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 16
-#define SQR_TOOM3_THRESHOLD 65
-#define SQR_TOOM4_THRESHOLD 166
-#define SQR_TOOM6_THRESHOLD 222
-#define SQR_TOOM8_THRESHOLD 333
+#define SQR_BASECASE_THRESHOLD 5
+#define SQR_TOOM2_THRESHOLD 22
+#define SQR_TOOM3_THRESHOLD 57
+#define SQR_TOOM4_THRESHOLD 178
+#define SQR_TOOM6_THRESHOLD 189
+#define SQR_TOOM8_THRESHOLD 248
-#define MULMID_TOOM42_THRESHOLD 14
+#define MULMID_TOOM42_THRESHOLD 16
-#define MULMOD_BNM1_THRESHOLD 7
-#define SQRMOD_BNM1_THRESHOLD 10
+#define MULMOD_BNM1_THRESHOLD 10
+#define SQRMOD_BNM1_THRESHOLD 11
-#define MUL_FFT_MODF_THRESHOLD 212 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 252 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 220, 5}, { 7, 4}, { 15, 5}, { 13, 6}, \
+ { { 252, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
{ 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
- { 15, 7}, { 8, 6}, { 17, 7}, { 13, 8}, \
- { 7, 7}, { 17, 8}, { 9, 7}, { 19, 8}, \
- { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
- { 15, 7}, { 31, 8}, { 19, 9}, { 11, 8}, \
- { 25,10}, { 7, 9}, { 15, 8}, { 33, 9}, \
- { 19, 8}, { 39, 9}, { 23,10}, { 15, 9}, \
- { 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
- { 31, 9}, { 67,10}, { 39, 9}, { 79, 8}, \
- { 159,10}, { 47, 9}, { 95, 8}, { 191, 7}, \
- { 383,10}, { 55,11}, { 31,10}, { 63, 9}, \
- { 127, 8}, { 255,10}, { 71, 9}, { 143,10}, \
- { 79, 9}, { 159,11}, { 47,10}, { 95, 9}, \
- { 191, 8}, { 383,12}, { 31,11}, { 63, 9}, \
- { 255,10}, { 143, 9}, { 287,11}, { 79,10}, \
- { 159, 9}, { 319,10}, { 175, 9}, { 351, 8}, \
- { 703,11}, { 95,10}, { 191, 9}, { 383,10}, \
- { 207, 9}, { 415,11}, { 111,10}, { 223, 9}, \
- { 447,12}, { 63,11}, { 127,10}, { 255, 9}, \
- { 511,11}, { 143, 9}, { 575,10}, { 319,11}, \
- { 175,10}, { 351, 9}, { 703,11}, { 191,10}, \
- { 383,11}, { 223,13}, { 8192,14}, { 16384,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 101
-#define MUL_FFT_THRESHOLD 2112
-
-#define SQR_FFT_MODF_THRESHOLD 184 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 188, 5}, { 6, 4}, { 13, 5}, { 7, 4}, \
- { 15, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
- { 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
- { 15, 7}, { 13, 8}, { 7, 7}, { 17, 8}, \
+ { 15, 7}, { 8, 6}, { 17, 7}, { 9, 6}, \
+ { 19, 7}, { 13, 8}, { 7, 7}, { 17, 8}, \
{ 9, 7}, { 19, 8}, { 11, 7}, { 23, 8}, \
{ 13, 9}, { 7, 8}, { 19, 9}, { 11, 8}, \
- { 25,10}, { 7, 9}, { 15, 8}, { 33, 9}, \
+ { 23,10}, { 7, 9}, { 15, 8}, { 31, 9}, \
{ 19, 8}, { 39, 9}, { 23,10}, { 15, 9}, \
{ 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
{ 31, 9}, { 67,10}, { 39, 9}, { 79,10}, \
- { 47, 7}, { 383, 9}, { 103,11}, { 31,10}, \
- { 63, 9}, { 127, 8}, { 255, 7}, { 511, 8}, \
- { 287, 7}, { 575,10}, { 79, 9}, { 159, 8}, \
- { 319,11}, { 47, 9}, { 191,12}, { 31,11}, \
- { 63,10}, { 127, 9}, { 255,10}, { 143, 7}, \
- { 1151, 9}, { 351,11}, { 95,10}, { 191,11}, \
- { 111,10}, { 223,12}, { 63, 9}, { 511,11}, \
- { 143,10}, { 287, 9}, { 575,11}, { 159,10}, \
- { 319, 9}, { 639,11}, { 175,10}, { 351, 9}, \
- { 703,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 415,11}, { 223,10}, { 447,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 95
+ { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
+ { 127, 8}, { 255,10}, { 71, 9}, { 143, 8}, \
+ { 287,10}, { 79,11}, { 47,10}, { 95, 8}, \
+ { 383,12}, { 31,11}, { 63,10}, { 127, 9}, \
+ { 255, 8}, { 511,10}, { 143, 9}, { 287,11}, \
+ { 79,10}, { 159, 9}, { 319, 8}, { 639, 9}, \
+ { 351,11}, { 95,10}, { 191, 9}, { 383,10}, \
+ { 207, 9}, { 415,10}, { 223,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,11}, { 143,10}, \
+ { 287, 9}, { 575,11}, { 159,10}, { 319, 9}, \
+ { 639,11}, { 175,10}, { 351, 9}, { 703,12}, \
+ { 95,11}, { 191,10}, { 383,11}, { 207,10}, \
+ { 415,11}, { 223,10}, { 447,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 102
+#define MUL_FFT_THRESHOLD 2240
+
+#define SQR_FFT_MODF_THRESHOLD 212 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 212, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
+ { 13, 7}, { 7, 6}, { 15, 7}, { 13, 8}, \
+ { 7, 7}, { 17, 8}, { 9, 7}, { 19, 8}, \
+ { 11, 7}, { 23, 8}, { 13, 9}, { 7, 8}, \
+ { 19, 9}, { 11, 8}, { 25,10}, { 7, 9}, \
+ { 15, 8}, { 31, 9}, { 23,10}, { 15, 9}, \
+ { 39,10}, { 23, 9}, { 47,11}, { 15,10}, \
+ { 31, 9}, { 63, 8}, { 127,10}, { 39, 8}, \
+ { 159,10}, { 47, 8}, { 191,10}, { 55,11}, \
+ { 31,10}, { 63, 9}, { 127, 8}, { 255,10}, \
+ { 71, 9}, { 143, 8}, { 287, 7}, { 575, 9}, \
+ { 159, 8}, { 319,11}, { 47, 9}, { 191, 8}, \
+ { 383,12}, { 31,11}, { 63,10}, { 127, 9}, \
+ { 255, 8}, { 511,10}, { 143, 9}, { 287, 8}, \
+ { 575,10}, { 159, 9}, { 351, 8}, { 703,10}, \
+ { 191, 9}, { 383,10}, { 207, 9}, { 415,11}, \
+ { 111,10}, { 223, 9}, { 447,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,11}, { 143,10}, \
+ { 287, 9}, { 575,11}, { 159,10}, { 319,11}, \
+ { 175,10}, { 351, 9}, { 703,11}, { 191,10}, \
+ { 383,11}, { 207,10}, { 415,11}, { 223,10}, \
+ { 447,13}, { 8192,14}, { 16384,15}, { 32768,16}, \
+ { 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
+ {1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 96
#define SQR_FFT_THRESHOLD 1600
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 33
-#define MULLO_MUL_N_THRESHOLD 4141
-
-#define DC_DIV_QR_THRESHOLD 27
-#define DC_DIVAPPR_Q_THRESHOLD 94
-#define DC_BDIV_QR_THRESHOLD 27
-#define DC_BDIV_Q_THRESHOLD 54
-
-#define INV_MULMOD_BNM1_THRESHOLD 18
-#define INV_NEWTON_THRESHOLD 131
-#define INV_APPR_THRESHOLD 106
-
-#define BINV_NEWTON_THRESHOLD 165
-#define REDC_1_TO_REDC_2_THRESHOLD 14
-#define REDC_2_TO_REDC_N_THRESHOLD 36
-
-#define MU_DIV_QR_THRESHOLD 792
-#define MU_DIVAPPR_Q_THRESHOLD 807
-#define MUPI_DIV_QR_THRESHOLD 67
-#define MU_BDIV_QR_THRESHOLD 654
-#define MU_BDIV_Q_THRESHOLD 748
-
-#define POWM_SEC_TABLE 4,32,204,724,1926
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 84
-#define HGCD_APPR_THRESHOLD 87
-#define HGCD_REDUCE_THRESHOLD 1182
-#define GCD_DC_THRESHOLD 195
-#define GCDEXT_DC_THRESHOLD 180
-#define JACOBI_BASE_METHOD 2
-
-#define GET_STR_DC_THRESHOLD 18
+#define MULLO_MUL_N_THRESHOLD 4392
+
+#define DC_DIV_QR_THRESHOLD 34
+#define DC_DIVAPPR_Q_THRESHOLD 123
+#define DC_BDIV_QR_THRESHOLD 32
+#define DC_BDIV_Q_THRESHOLD 78
+
+#define INV_MULMOD_BNM1_THRESHOLD 22
+#define INV_NEWTON_THRESHOLD 163
+#define INV_APPR_THRESHOLD 150
+
+#define BINV_NEWTON_THRESHOLD 197
+#define REDC_1_TO_REDC_2_THRESHOLD 4
+#define REDC_2_TO_REDC_N_THRESHOLD 43
+
+#define MU_DIV_QR_THRESHOLD 855
+#define MU_DIVAPPR_Q_THRESHOLD 855
+#define MUPI_DIV_QR_THRESHOLD 83
+#define MU_BDIV_QR_THRESHOLD 762
+#define MU_BDIV_Q_THRESHOLD 807
+
+#define POWM_SEC_TABLE 4,14,79,453,1358
+
+#define MATRIX22_STRASSEN_THRESHOLD 13
+#define HGCD_THRESHOLD 104
+#define HGCD_APPR_THRESHOLD 106
+#define HGCD_REDUCE_THRESHOLD 1329
+#define GCD_DC_THRESHOLD 293
+#define GCDEXT_DC_THRESHOLD 217
+#define JACOBI_BASE_METHOD 4
+
+#define GET_STR_DC_THRESHOLD 15
#define GET_STR_PRECOMPUTE_THRESHOLD 32
-#define SET_STR_DC_THRESHOLD 256
-#define SET_STR_PRECOMPUTE_THRESHOLD 1151
+#define SET_STR_DC_THRESHOLD 418
+#define SET_STR_PRECOMPUTE_THRESHOLD 1659
-#define FAC_DSC_THRESHOLD 1065
+#define FAC_DSC_THRESHOLD 1095
#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/x86_64/bd1/gmp-mparam.h b/mpn/x86_64/bd1/gmp-mparam.h
index 6df769e07..c0b87d570 100644
--- a/mpn/x86_64/bd1/gmp-mparam.h
+++ b/mpn/x86_64/bd1/gmp-mparam.h
@@ -25,124 +25,116 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 21
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 34
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 17
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 31
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 20
-#define MUL_TOOM22_THRESHOLD 18
-#define MUL_TOOM33_THRESHOLD 57
-#define MUL_TOOM44_THRESHOLD 154
-#define MUL_TOOM6H_THRESHOLD 250
-#define MUL_TOOM8H_THRESHOLD 406
+#define MUL_TOOM22_THRESHOLD 24
+#define MUL_TOOM33_THRESHOLD 66
+#define MUL_TOOM44_THRESHOLD 184
+#define MUL_TOOM6H_THRESHOLD 274
+#define MUL_TOOM8H_THRESHOLD 357
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 115
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 81
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 125
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 154
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 129
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 145
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 20
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 202
-#define SQR_TOOM6_THRESHOLD 303
-#define SQR_TOOM8_THRESHOLD 430
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 97
+#define SQR_TOOM4_THRESHOLD 266
+#define SQR_TOOM6_THRESHOLD 366
+#define SQR_TOOM8_THRESHOLD 502
-#define MULMID_TOOM42_THRESHOLD 20
+#define MULMID_TOOM42_THRESHOLD 24
-#define MULMOD_BNM1_THRESHOLD 12
-#define SQRMOD_BNM1_THRESHOLD 14
+#define MULMOD_BNM1_THRESHOLD 14
+#define SQRMOD_BNM1_THRESHOLD 18
-#define MUL_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 660 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 340, 5}, { 11, 4}, { 23, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 21, 7}, { 11, 6}, { 24, 7}, { 15, 6}, \
- { 31, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 32, 8}, \
- { 17, 7}, { 35, 8}, { 21, 9}, { 11, 8}, \
+ { { 660, 5}, { 23, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 19, 7}, { 39, 8}, \
{ 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
{ 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
{ 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 71,10}, { 39, 9}, \
- { 83,10}, { 47, 9}, { 99,10}, { 55,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
{ 31,10}, { 79,11}, { 47,10}, { 95,12}, \
- { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
- { 167,11}, { 95, 9}, { 383,11}, { 111,12}, \
- { 63,11}, { 127,10}, { 255,11}, { 143,10}, \
- { 303,11}, { 159,12}, { 95,11}, { 191,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 75
-#define MUL_FFT_THRESHOLD 3712
-
-#define SQR_FFT_MODF_THRESHOLD 348 /* k = 5 */
+ { 31,11}, { 63,10}, { 135,11}, { 95,12}, \
+ { 63,11}, { 127, 9}, { 511,11}, { 159,12}, \
+ { 95,11}, { 207,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 57
+#define MUL_FFT_THRESHOLD 5760
+
+#define SQR_FFT_MODF_THRESHOLD 666 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 348, 5}, { 11, 4}, { 23, 5}, { 19, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 17, 7}, { 35, 8}, { 21, 9}, { 11, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
- { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 47,11}, { 31,10}, { 79,11}, \
+ { { 666, 5}, { 22, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
{ 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
- { 159,11}, { 95,10}, { 191,11}, { 111,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
- { 271,11}, { 143,10}, { 287, 9}, { 575,10}, \
- { 303,11}, { 159,12}, { 95,11}, { 191,10}, \
- { 383,11}, { 207,13}, { 8192,14}, { 16384,15}, \
+ { 135,11}, { 79,10}, { 159,11}, { 95,12}, \
+ { 63,11}, { 127, 9}, { 511,11}, { 143, 9}, \
+ { 575,12}, { 95,13}, { 8192,14}, { 16384,15}, \
{ 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 77
-#define SQR_FFT_THRESHOLD 3264
+#define SQR_FFT_TABLE3_SIZE 61
+#define SQR_FFT_THRESHOLD 4736
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 34
-#define MULLO_MUL_N_THRESHOLD 7246
+#define MULLO_DC_THRESHOLD 42
+#define MULLO_MUL_N_THRESHOLD 10950
-#define DC_DIV_QR_THRESHOLD 43
-#define DC_DIVAPPR_Q_THRESHOLD 20
-#define DC_BDIV_QR_THRESHOLD 42
-#define DC_BDIV_Q_THRESHOLD 88
+#define DC_DIV_QR_THRESHOLD 59
+#define DC_DIVAPPR_Q_THRESHOLD 220
+#define DC_BDIV_QR_THRESHOLD 52
+#define DC_BDIV_Q_THRESHOLD 118
-#define INV_MULMOD_BNM1_THRESHOLD 42
-#define INV_NEWTON_THRESHOLD 250
-#define INV_APPR_THRESHOLD 204
+#define INV_MULMOD_BNM1_THRESHOLD 46
+#define INV_NEWTON_THRESHOLD 278
+#define INV_APPR_THRESHOLD 236
-#define BINV_NEWTON_THRESHOLD 254
-#define REDC_1_TO_REDC_2_THRESHOLD 51
+#define BINV_NEWTON_THRESHOLD 327
+#define REDC_1_TO_REDC_2_THRESHOLD 56
#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
-#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1334
-#define MUPI_DIV_QR_THRESHOLD 20
-#define MU_BDIV_QR_THRESHOLD 1142
-#define MU_BDIV_Q_THRESHOLD 1334
+#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIVAPPR_Q_THRESHOLD 1718
+#define MUPI_DIV_QR_THRESHOLD 132
+#define MU_BDIV_QR_THRESHOLD 1470
+#define MU_BDIV_Q_THRESHOLD 1620
-#define POWM_SEC_TABLE 3,17,99,453,1222
+#define POWM_SEC_TABLE 2,23,195,453,1100,2080
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 111
-#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 396
-#define GCDEXT_DC_THRESHOLD 285
+#define MATRIX22_STRASSEN_THRESHOLD 20
+#define HGCD_THRESHOLD 139
+#define HGCD_APPR_THRESHOLD 148
+#define HGCD_REDUCE_THRESHOLD 3389
+#define GCD_DC_THRESHOLD 505
+#define GCDEXT_DC_THRESHOLD 361
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 20
-#define SET_STR_DC_THRESHOLD 286
-#define SET_STR_PRECOMPUTE_THRESHOLD 1107
+#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_PRECOMPUTE_THRESHOLD 32
+#define SET_STR_DC_THRESHOLD 434
+#define SET_STR_PRECOMPUTE_THRESHOLD 1940
-#define FAC_DSC_THRESHOLD 178
+#define FAC_DSC_THRESHOLD 1517
#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/x86_64/bobcat/gmp-mparam.h b/mpn/x86_64/bobcat/gmp-mparam.h
index dbcb13f6d..86da358e9 100644
--- a/mpn/x86_64/bobcat/gmp-mparam.h
+++ b/mpn/x86_64/bobcat/gmp-mparam.h
@@ -21,6 +21,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define GMP_LIMB_BITS 64
#define BYTES_PER_MP_LIMB 8
+#undef HAVE_NATIVE_mpn_mul_2
+#undef HAVE_NATIVE_mpn_addmul_2
+
/* 1600 MHz AMD Bobcat E-350 */
#define MOD_1_NORM_THRESHOLD 0 /* always */
@@ -35,24 +38,24 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 17
-#define MUL_TOOM22_THRESHOLD 27
-#define MUL_TOOM33_THRESHOLD 32
-#define MUL_TOOM44_THRESHOLD 171
-#define MUL_TOOM6H_THRESHOLD 262
-#define MUL_TOOM8H_THRESHOLD 357
+#define MUL_TOOM22_THRESHOLD 26
+#define MUL_TOOM33_THRESHOLD 33
+#define MUL_TOOM44_THRESHOLD 286
+#define MUL_TOOM6H_THRESHOLD 381
+#define MUL_TOOM8H_THRESHOLD 557
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 114
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 120
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 109
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 128
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 100
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 113
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 177
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 193
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 189
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 97
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM2_THRESHOLD 26
#define SQR_TOOM3_THRESHOLD 98
#define SQR_TOOM4_THRESHOLD 372
#define SQR_TOOM6_THRESHOLD 0 /* always */
-#define SQR_TOOM8_THRESHOLD 478
+#define SQR_TOOM8_THRESHOLD 434
#define MULMID_TOOM42_THRESHOLD 22
@@ -107,42 +110,42 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_THRESHOLD 3712
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 30
-#define MULLO_MUL_N_THRESHOLD 10950
+#define MULLO_DC_THRESHOLD 53
+#define MULLO_MUL_N_THRESHOLD 11278
-#define DC_DIV_QR_THRESHOLD 76
+#define DC_DIV_QR_THRESHOLD 74
#define DC_DIVAPPR_Q_THRESHOLD 202
-#define DC_BDIV_QR_THRESHOLD 71
+#define DC_BDIV_QR_THRESHOLD 60
#define DC_BDIV_Q_THRESHOLD 153
#define INV_MULMOD_BNM1_THRESHOLD 51
-#define INV_NEWTON_THRESHOLD 248
-#define INV_APPR_THRESHOLD 218
+#define INV_NEWTON_THRESHOLD 250
+#define INV_APPR_THRESHOLD 212
-#define BINV_NEWTON_THRESHOLD 254
-#define REDC_1_TO_REDC_2_THRESHOLD 54
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+#define BINV_NEWTON_THRESHOLD 252
+#define REDC_1_TO_REDC_2_THRESHOLD 18
+#define REDC_2_TO_REDC_N_THRESHOLD 44
-#define MU_DIV_QR_THRESHOLD 1528
+#define MU_DIV_QR_THRESHOLD 1499
#define MU_DIVAPPR_Q_THRESHOLD 1589
-#define MUPI_DIV_QR_THRESHOLD 122
-#define MU_BDIV_QR_THRESHOLD 1387
+#define MUPI_DIV_QR_THRESHOLD 116
+#define MU_BDIV_QR_THRESHOLD 1120
#define MU_BDIV_Q_THRESHOLD 1470
-#define POWM_SEC_TABLE 2,29,195,713,1036
+#define POWM_SEC_TABLE 2,23,195,713,1358,1679
-#define MATRIX22_STRASSEN_THRESHOLD 16
-#define HGCD_THRESHOLD 93
-#define HGCD_APPR_THRESHOLD 51
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 75
+#define HGCD_APPR_THRESHOLD 50
#define HGCD_REDUCE_THRESHOLD 3014
-#define GCD_DC_THRESHOLD 492
-#define GCDEXT_DC_THRESHOLD 309
+#define GCD_DC_THRESHOLD 501
+#define GCDEXT_DC_THRESHOLD 345
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_DC_THRESHOLD 17
#define GET_STR_PRECOMPUTE_THRESHOLD 31
-#define SET_STR_DC_THRESHOLD 324
-#define SET_STR_PRECOMPUTE_THRESHOLD 1449
+#define SET_STR_DC_THRESHOLD 345
+#define SET_STR_PRECOMPUTE_THRESHOLD 1414
-#define FAC_DSC_THRESHOLD 933
-#define FAC_ODD_THRESHOLD 46
+#define FAC_DSC_THRESHOLD 810
+#define FAC_ODD_THRESHOLD 28
diff --git a/mpn/x86_64/core2/gmp-mparam.h b/mpn/x86_64/core2/gmp-mparam.h
index f5593ea41..d426a4772 100644
--- a/mpn/x86_64/core2/gmp-mparam.h
+++ b/mpn/x86_64/core2/gmp-mparam.h
@@ -29,7 +29,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 15
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
@@ -37,164 +37,116 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM22_THRESHOLD 23
#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 106
-#define MUL_TOOM6H_THRESHOLD 224
+#define MUL_TOOM44_THRESHOLD 112
+#define MUL_TOOM6H_THRESHOLD 222
#define MUL_TOOM8H_THRESHOLD 0 /* always */
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 76
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 72
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 78
#define MUL_TOOM43_TO_TOOM54_THRESHOLD 100
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 28
-#define SQR_TOOM3_THRESHOLD 101
-#define SQR_TOOM4_THRESHOLD 148
-#define SQR_TOOM6_THRESHOLD 206
+#define SQR_TOOM3_THRESHOLD 97
+#define SQR_TOOM4_THRESHOLD 160
+#define SQR_TOOM6_THRESHOLD 222
#define SQR_TOOM8_THRESHOLD 296
-#define MULMID_TOOM42_THRESHOLD 24
+#define MULMID_TOOM42_THRESHOLD 30
-#define MULMOD_BNM1_THRESHOLD 18
-#define SQRMOD_BNM1_THRESHOLD 17
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
- { 9, 5}, { 19, 6}, { 19, 7}, { 10, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 13, 6}, \
- { 27, 7}, { 21, 8}, { 11, 7}, { 23, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { { 380, 5}, { 19, 6}, { 11, 5}, { 23, 6}, \
+ { 25, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 19, 7}, { 39, 8}, \
{ 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
{ 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 43,10}, \
- { 23, 9}, { 55,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 79,10}, { 55,11}, \
- { 31, 9}, { 127,10}, { 71, 8}, { 287,10}, \
- { 79,11}, { 47,12}, { 31,11}, { 63, 9}, \
- { 255,10}, { 135, 9}, { 271,11}, { 79, 9}, \
- { 319,10}, { 175,11}, { 95,10}, { 191, 9}, \
- { 383,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 271, 9}, { 543,11}, { 143,10}, { 287,11}, \
- { 159,10}, { 319, 9}, { 639,11}, { 175,10}, \
- { 351,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
- { 271,10}, { 543,11}, { 287,12}, { 159,11}, \
- { 319,10}, { 671,11}, { 351,12}, { 191,11}, \
- { 415,12}, { 223,11}, { 447,10}, { 895,11}, \
- { 479,13}, { 127,12}, { 287,11}, { 607,12}, \
- { 319,11}, { 671,12}, { 351,13}, { 191,12}, \
- { 415,11}, { 831,10}, { 1663,12}, { 479,14}, \
- { 127,13}, { 255,12}, { 543,11}, { 1087,12}, \
- { 607,13}, { 319,12}, { 703,13}, { 383,12}, \
- { 767,10}, { 3071,12}, { 831,13}, { 447,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1023,13}, \
- { 575,12}, { 1151,11}, { 2303,13}, { 639,12}, \
- { 1343,13}, { 703,14}, { 383,13}, { 831,12}, \
- { 1727,13}, { 959,15}, { 255,14}, { 511,13}, \
- { 1087,12}, { 2175,13}, { 1215,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1407,12}, { 2815,14}, \
- { 767,13}, { 1663,14}, { 895,13}, { 1919,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,13}, { 2495,14}, { 1279,13}, \
- { 2687,14}, { 1407,15}, { 767,14}, { 1663,13}, \
- { 3327,12}, { 6655,13}, { 3455,12}, { 6911,14}, \
- { 16384,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 170
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
+ { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 111,12}, { 31,11}, { 63,10}, \
+ { 135, 9}, { 271,10}, { 143, 9}, { 287,10}, \
+ { 151,11}, { 79, 9}, { 319,11}, { 95, 9}, \
+ { 383,11}, { 111,10}, { 223,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271, 9}, \
+ { 543,11}, { 143,10}, { 303,11}, { 159,10}, \
+ { 319, 9}, { 639,10}, { 351,12}, { 95,11}, \
+ { 191,10}, { 415,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 77
#define MUL_FFT_THRESHOLD 4736
-#define SQR_FFT_MODF_THRESHOLD 308 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 316 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 308, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 12, 6}, \
- { 25, 7}, { 21, 8}, { 11, 7}, { 24, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 59,11}, { 15,10}, { 31, 8}, \
- { 125, 9}, { 67,10}, { 39, 9}, { 79,10}, \
- { 47, 9}, { 103,10}, { 79, 9}, { 159,10}, \
- { 87, 9}, { 175, 8}, { 351,11}, { 47,10}, \
- { 95,11}, { 63,10}, { 127, 8}, { 511, 9}, \
- { 271, 8}, { 543,11}, { 79,10}, { 175,11}, \
- { 95,10}, { 191, 9}, { 415,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143,10}, { 287, 9}, \
- { 575,11}, { 159,10}, { 319,11}, { 175,10}, \
+ { { 316, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
+ { 23, 7}, { 12, 6}, { 25, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 63,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 79,11}, { 47,10}, { 95,12}, { 31,11}, \
+ { 63,10}, { 127, 9}, { 255, 8}, { 511,10}, \
+ { 135, 9}, { 271, 8}, { 543,11}, { 79,10}, \
+ { 159, 9}, { 319,10}, { 175,11}, { 95,10}, \
+ { 191, 9}, { 383,10}, { 207, 9}, { 415,10}, \
+ { 223,12}, { 63,11}, { 127, 9}, { 511,10}, \
+ { 271,11}, { 143,10}, { 303,11}, { 159,10}, \
{ 351,12}, { 95,11}, { 191,10}, { 383,11}, \
- { 207,10}, { 415,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511, 9}, { 1023,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
- { 319,10}, { 639,11}, { 351,12}, { 191,11}, \
- { 383,10}, { 767,11}, { 415,10}, { 831,12}, \
- { 223,11}, { 479,13}, { 127,12}, { 255,11}, \
- { 543,12}, { 287,11}, { 575,12}, { 319,11}, \
- { 639,12}, { 351,13}, { 191,12}, { 383,11}, \
- { 767,12}, { 415,11}, { 831,12}, { 447,11}, \
- { 895,12}, { 479,14}, { 127,13}, { 255,12}, \
- { 543,11}, { 1087,12}, { 607,13}, { 319,12}, \
- { 639,11}, { 1279,12}, { 703,13}, { 383,12}, \
- { 831,13}, { 447,12}, { 959,14}, { 255,13}, \
- { 511,12}, { 1087,13}, { 575,12}, { 1215,13}, \
- { 639,12}, { 1279,13}, { 703,14}, { 383,13}, \
- { 767,12}, { 1535,13}, { 831,12}, { 1663,13}, \
- { 959,15}, { 255,14}, { 511,13}, { 1087,12}, \
- { 2175,13}, { 1215,14}, { 639,13}, { 1343,12}, \
- { 2687,13}, { 1407,12}, { 2815,14}, { 767,13}, \
- { 1535,12}, { 3071,13}, { 1663,14}, { 895,13}, \
- { 1791,15}, { 511,14}, { 1023,13}, { 2175,14}, \
- { 1151,13}, { 2303,12}, { 4607,13}, { 2431,12}, \
- { 4863,14}, { 1279,13}, { 2687,14}, { 1407,13}, \
- { 2815,15}, { 767,14}, { 1535,13}, { 3071,14}, \
- { 1663,13}, { 3327,12}, { 6655,13}, { 3455,12}, \
- { 6911,14}, { 1791,16}, { 65536,17}, { 131072,18}, \
- { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
- {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 178
-#define SQR_FFT_THRESHOLD 3520
+ { 207,10}, { 415,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 81
+#define SQR_FFT_THRESHOLD 3008
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 55
+#define MULLO_DC_THRESHOLD 62
#define MULLO_MUL_N_THRESHOLD 9174
-#define DC_DIV_QR_THRESHOLD 54
-#define DC_DIVAPPR_Q_THRESHOLD 179
-#define DC_BDIV_QR_THRESHOLD 53
-#define DC_BDIV_Q_THRESHOLD 125
+#define DC_DIV_QR_THRESHOLD 46
+#define DC_DIVAPPR_Q_THRESHOLD 158
+#define DC_BDIV_QR_THRESHOLD 62
+#define DC_BDIV_Q_THRESHOLD 122
-#define INV_MULMOD_BNM1_THRESHOLD 62
-#define INV_NEWTON_THRESHOLD 173
-#define INV_APPR_THRESHOLD 172
+#define INV_MULMOD_BNM1_THRESHOLD 46
+#define INV_NEWTON_THRESHOLD 164
+#define INV_APPR_THRESHOLD 155
-#define BINV_NEWTON_THRESHOLD 230
-#define REDC_1_TO_REDC_2_THRESHOLD 10
-#define REDC_2_TO_REDC_N_THRESHOLD 63
+#define BINV_NEWTON_THRESHOLD 214
+#define REDC_1_TO_REDC_2_THRESHOLD 3
+#define REDC_2_TO_REDC_N_THRESHOLD 48
#define MU_DIV_QR_THRESHOLD 1334
#define MU_DIVAPPR_Q_THRESHOLD 1210
-#define MUPI_DIV_QR_THRESHOLD 79
+#define MUPI_DIV_QR_THRESHOLD 73
#define MU_BDIV_QR_THRESHOLD 1057
-#define MU_BDIV_Q_THRESHOLD 1187
-
-#define POWM_SEC_TABLE 2,65,322,780
+#define MU_BDIV_Q_THRESHOLD 1210
+#define POWM_SEC_TABLE 2,68,122,580,1036
-#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 135
-#define HGCD_APPR_THRESHOLD 178
+#define MATRIX22_STRASSEN_THRESHOLD 19
+#define HGCD_THRESHOLD 133
+#define HGCD_APPR_THRESHOLD 152
#define HGCD_REDUCE_THRESHOLD 2121
-#define GCD_DC_THRESHOLD 416
-#define GCDEXT_DC_THRESHOLD 361
+#define GCD_DC_THRESHOLD 419
+#define GCDEXT_DC_THRESHOLD 342
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_DC_THRESHOLD 11
#define GET_STR_PRECOMPUTE_THRESHOLD 21
#define SET_STR_DC_THRESHOLD 552
-#define SET_STR_PRECOMPUTE_THRESHOLD 1815
+#define SET_STR_PRECOMPUTE_THRESHOLD 1561
-#define FAC_DSC_THRESHOLD 608
-#define FAC_ODD_THRESHOLD 28
+#define FAC_DSC_THRESHOLD 969
+#define FAC_ODD_THRESHOLD 29
diff --git a/mpn/x86_64/coreihwl/gmp-mparam.h b/mpn/x86_64/coreihwl/gmp-mparam.h
index 7f350e899..fb3172751 100644
--- a/mpn/x86_64/coreihwl/gmp-mparam.h
+++ b/mpn/x86_64/coreihwl/gmp-mparam.h
@@ -36,25 +36,25 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define BMOD_1_TO_MOD_1_THRESHOLD 25
#define MUL_TOOM22_THRESHOLD 22
-#define MUL_TOOM33_THRESHOLD 66
-#define MUL_TOOM44_THRESHOLD 193
+#define MUL_TOOM33_THRESHOLD 67
+#define MUL_TOOM44_THRESHOLD 196
#define MUL_TOOM6H_THRESHOLD 274
-#define MUL_TOOM8H_THRESHOLD 381
+#define MUL_TOOM8H_THRESHOLD 393
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 121
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 131
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 129
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 138
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 127
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 131
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 178
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 183
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 34
#define SQR_TOOM3_THRESHOLD 117
#define SQR_TOOM4_THRESHOLD 336
-#define SQR_TOOM6_THRESHOLD 422
+#define SQR_TOOM6_THRESHOLD 430
#define SQR_TOOM8_THRESHOLD 0 /* always */
-#define MULMID_TOOM42_THRESHOLD 44
+#define MULMID_TOOM42_THRESHOLD 42
#define MULMOD_BNM1_THRESHOLD 14
#define SQRMOD_BNM1_THRESHOLD 17
@@ -152,42 +152,42 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_THRESHOLD 3264
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 61
-#define MULLO_MUL_N_THRESHOLD 8397
+#define MULLO_DC_THRESHOLD 67
+#define MULLO_MUL_N_THRESHOLD 8907
-#define DC_DIV_QR_THRESHOLD 60
-#define DC_DIVAPPR_Q_THRESHOLD 195
-#define DC_BDIV_QR_THRESHOLD 60
-#define DC_BDIV_Q_THRESHOLD 152
+#define DC_DIV_QR_THRESHOLD 63
+#define DC_DIVAPPR_Q_THRESHOLD 198
+#define DC_BDIV_QR_THRESHOLD 56
+#define DC_BDIV_Q_THRESHOLD 143
-#define INV_MULMOD_BNM1_THRESHOLD 42
-#define INV_NEWTON_THRESHOLD 202
-#define INV_APPR_THRESHOLD 197
+#define INV_MULMOD_BNM1_THRESHOLD 46
+#define INV_NEWTON_THRESHOLD 197
+#define INV_APPR_THRESHOLD 195
-#define BINV_NEWTON_THRESHOLD 236
-#define REDC_1_TO_REDC_2_THRESHOLD 48
-#define REDC_2_TO_REDC_N_THRESHOLD 72
+#define BINV_NEWTON_THRESHOLD 240
+#define REDC_1_TO_REDC_2_THRESHOLD 46
+#define REDC_2_TO_REDC_N_THRESHOLD 63
#define MU_DIV_QR_THRESHOLD 1470
#define MU_DIVAPPR_Q_THRESHOLD 1589
-#define MUPI_DIV_QR_THRESHOLD 82
+#define MUPI_DIV_QR_THRESHOLD 78
#define MU_BDIV_QR_THRESHOLD 1442
-#define MU_BDIV_Q_THRESHOLD 1470
+#define MU_BDIV_Q_THRESHOLD 1528
-#define POWM_SEC_TABLE 4,20,219,572,905
+#define POWM_SEC_TABLE 2,24,195,322,1168,1604
-#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 105
+#define MATRIX22_STRASSEN_THRESHOLD 16
+#define HGCD_THRESHOLD 119
#define HGCD_APPR_THRESHOLD 50
#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 812
-#define GCDEXT_DC_THRESHOLD 435
+#define GCD_DC_THRESHOLD 767
+#define GCDEXT_DC_THRESHOLD 411
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 12
#define GET_STR_PRECOMPUTE_THRESHOLD 19
-#define SET_STR_DC_THRESHOLD 1562
-#define SET_STR_PRECOMPUTE_THRESHOLD 2649
+#define SET_STR_DC_THRESHOLD 1502
+#define SET_STR_PRECOMPUTE_THRESHOLD 2923
#define FAC_DSC_THRESHOLD 692
#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/x86_64/coreinhm/gmp-mparam.h b/mpn/x86_64/coreinhm/gmp-mparam.h
index cd11064df..b4026eb91 100644
--- a/mpn/x86_64/coreinhm/gmp-mparam.h
+++ b/mpn/x86_64/coreinhm/gmp-mparam.h
@@ -25,126 +25,126 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 2
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 14
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 16
-#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 61
-#define MUL_TOOM44_THRESHOLD 154
-#define MUL_TOOM6H_THRESHOLD 222
-#define MUL_TOOM8H_THRESHOLD 0 /* always */
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 103
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 89
-
-#define SQR_BASECASE_THRESHOLD 8
-#define SQR_TOOM2_THRESHOLD 36
-#define SQR_TOOM3_THRESHOLD 68
-#define SQR_TOOM4_THRESHOLD 196
-#define SQR_TOOM6_THRESHOLD 254
-#define SQR_TOOM8_THRESHOLD 357
+#define MUL_TOOM22_THRESHOLD 18
+#define MUL_TOOM33_THRESHOLD 59
+#define MUL_TOOM44_THRESHOLD 152
+#define MUL_TOOM6H_THRESHOLD 226
+#define MUL_TOOM8H_THRESHOLD 296
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 108
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 103
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 148
+
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 97
+#define SQR_TOOM4_THRESHOLD 250
+#define SQR_TOOM6_THRESHOLD 351
+#define SQR_TOOM8_THRESHOLD 454
#define MULMID_TOOM42_THRESHOLD 28
#define MULMOD_BNM1_THRESHOLD 13
#define SQRMOD_BNM1_THRESHOLD 15
-#define MUL_FFT_MODF_THRESHOLD 595 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 595, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 159, 6}, { 2559, 7}, \
- { 1343, 8}, { 703, 9}, { 383,11}, { 111,12}, \
- { 63,11}, { 127, 9}, { 511,11}, { 143, 9}, \
- { 575,11}, { 159,10}, { 319,12}, { 95,11}, \
- { 191,10}, { 383,13}, { 8192,14}, { 16384,15}, \
+ { { 380, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 17, 7}, { 35, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 49, 9}, { 27,10}, \
+ { 15, 9}, { 39, 8}, { 79,10}, { 23, 9}, \
+ { 55,11}, { 15,10}, { 31, 9}, { 71,10}, \
+ { 39, 9}, { 87,10}, { 47, 9}, { 99,10}, \
+ { 55,11}, { 31,10}, { 87,11}, { 47,10}, \
+ { 103,12}, { 31,11}, { 63, 9}, { 255,10}, \
+ { 135,11}, { 79,10}, { 159, 9}, { 319,10}, \
+ { 167,11}, { 95,10}, { 191, 9}, { 383,11}, \
+ { 111,12}, { 63,11}, { 127,10}, { 255, 9}, \
+ { 511,10}, { 271,11}, { 143,10}, { 287, 9}, \
+ { 575,10}, { 303,11}, { 159,10}, { 319,12}, \
+ { 95,10}, { 383,13}, { 8192,14}, { 16384,15}, \
{ 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 73
-#define MUL_FFT_THRESHOLD 4736
+#define MUL_FFT_TABLE3_SIZE 77
+#define MUL_FFT_THRESHOLD 4224
-#define SQR_FFT_MODF_THRESHOLD 505 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 312 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 505, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 24, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 33, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 47,11}, { 15,10}, { 31, 9}, \
- { 63,10}, { 39, 9}, { 79,10}, { 47,11}, \
- { 31,10}, { 79,11}, { 47,12}, { 31,11}, \
- { 63,10}, { 127, 9}, { 255, 8}, { 511,10}, \
- { 135,11}, { 79, 9}, { 319, 8}, { 639,11}, \
- { 95, 9}, { 383, 5}, { 6911, 7}, { 1791, 6}, \
- { 3839,10}, { 247, 7}, { 1983, 6}, { 3967, 7}, \
- { 2047,10}, { 271, 9}, { 543,11}, { 143,10}, \
- { 287, 9}, { 575,10}, { 319, 9}, { 639,12}, \
- { 95,10}, { 415,13}, { 8192,14}, { 16384,15}, \
- { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
- { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
- {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 77
-#define SQR_FFT_THRESHOLD 4032
+ { { 312, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47,11}, { 31,10}, { 79,11}, \
+ { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
+ { 127, 9}, { 255,11}, { 79,10}, { 159, 9}, \
+ { 319,11}, { 95,10}, { 191, 9}, { 383,12}, \
+ { 63,11}, { 127, 9}, { 511,10}, { 271, 9}, \
+ { 543,11}, { 143,10}, { 287, 9}, { 575, 8}, \
+ { 1151,10}, { 303,11}, { 159,10}, { 319, 9}, \
+ { 639,12}, { 95,11}, { 191,10}, { 383,13}, \
+ { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
+ { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
+ {2097152,22}, {4194304,23}, {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 75
+#define SQR_FFT_THRESHOLD 3200
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 30
-#define MULLO_MUL_N_THRESHOLD 8648
-
-#define DC_DIV_QR_THRESHOLD 54
-#define DC_DIVAPPR_Q_THRESHOLD 183
-#define DC_BDIV_QR_THRESHOLD 52
-#define DC_BDIV_Q_THRESHOLD 86
-
-#define INV_MULMOD_BNM1_THRESHOLD 46
-#define INV_NEWTON_THRESHOLD 242
-#define INV_APPR_THRESHOLD 183
-
-#define BINV_NEWTON_THRESHOLD 278
-#define REDC_1_TO_REDC_2_THRESHOLD 4
-#define REDC_2_TO_REDC_N_THRESHOLD 67
-
-#define MU_DIV_QR_THRESHOLD 1499
-#define MU_DIVAPPR_Q_THRESHOLD 1499
-#define MUPI_DIV_QR_THRESHOLD 108
-#define MU_BDIV_QR_THRESHOLD 1258
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define POWM_SEC_TABLE 3,14,130,580,1100
-
-#define MATRIX22_STRASSEN_THRESHOLD 16
-#define HGCD_THRESHOLD 157
-#define HGCD_APPR_THRESHOLD 196
-#define HGCD_REDUCE_THRESHOLD 3014
+#define MULLO_DC_THRESHOLD 23
+#define MULLO_MUL_N_THRESHOLD 8397
+
+#define DC_DIV_QR_THRESHOLD 42
+#define DC_DIVAPPR_Q_THRESHOLD 135
+#define DC_BDIV_QR_THRESHOLD 38
+#define DC_BDIV_Q_THRESHOLD 30
+
+#define INV_MULMOD_BNM1_THRESHOLD 34
+#define INV_NEWTON_THRESHOLD 177
+#define INV_APPR_THRESHOLD 155
+
+#define BINV_NEWTON_THRESHOLD 254
+#define REDC_1_TO_REDC_2_THRESHOLD 8
+#define REDC_2_TO_REDC_N_THRESHOLD 54
+
+#define MU_DIV_QR_THRESHOLD 1334
+#define MU_DIVAPPR_Q_THRESHOLD 1334
+#define MUPI_DIV_QR_THRESHOLD 78
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1187
+
+#define POWM_SEC_TABLE 3,17,115,453,1358
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 135
+#define HGCD_APPR_THRESHOLD 176
+#define HGCD_REDUCE_THRESHOLD 2205
#define GCD_DC_THRESHOLD 403
-#define GCDEXT_DC_THRESHOLD 396
+#define GCDEXT_DC_THRESHOLD 361
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 17
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
-#define SET_STR_DC_THRESHOLD 402
-#define SET_STR_PRECOMPUTE_THRESHOLD 2098
+#define GET_STR_DC_THRESHOLD 11
+#define GET_STR_PRECOMPUTE_THRESHOLD 23
+#define SET_STR_DC_THRESHOLD 286
+#define SET_STR_PRECOMPUTE_THRESHOLD 1481
-#define FAC_DSC_THRESHOLD 1517
+#define FAC_DSC_THRESHOLD 278
#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/x86_64/coreisbr/gmp-mparam.h b/mpn/x86_64/coreisbr/gmp-mparam.h
index 9633de6e6..476a4cb49 100644
--- a/mpn/x86_64/coreisbr/gmp-mparam.h
+++ b/mpn/x86_64/coreisbr/gmp-mparam.h
@@ -29,7 +29,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
@@ -37,7 +37,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM22_THRESHOLD 20
#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 154
+#define MUL_TOOM44_THRESHOLD 166
#define MUL_TOOM6H_THRESHOLD 254
#define MUL_TOOM8H_THRESHOLD 333
@@ -45,102 +45,103 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 122
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 100
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 147
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 28
-#define SQR_TOOM3_THRESHOLD 93
-#define SQR_TOOM4_THRESHOLD 256
+#define SQR_TOOM3_THRESHOLD 97
+#define SQR_TOOM4_THRESHOLD 250
#define SQR_TOOM6_THRESHOLD 351
#define SQR_TOOM8_THRESHOLD 458
-#define MULMID_TOOM42_THRESHOLD 36
+#define MULMID_TOOM42_THRESHOLD 34
#define MULMOD_BNM1_THRESHOLD 13
-#define SQRMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 15
-#define MUL_FFT_MODF_THRESHOLD 630 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 570 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 630, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 25, 7}, { 13, 6}, \
- { 27, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
- { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
- { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
- { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
- { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 79,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 167,11}, { 95,10}, \
- { 191, 9}, { 383,11}, { 111,12}, { 63,11}, \
- { 127, 8}, { 1023,11}, { 143, 9}, { 575,11}, \
- { 159,12}, { 95,10}, { 383, 9}, { 767,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 71
-#define MUL_FFT_THRESHOLD 5760
-
-#define SQR_FFT_MODF_THRESHOLD 570 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 570, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 25, 8}, \
- { 13, 7}, { 28, 8}, { 15, 7}, { 31, 8}, \
+ { { 570, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 21, 7}, { 11, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
{ 17, 7}, { 35, 8}, { 21, 9}, { 11, 8}, \
{ 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
{ 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
{ 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
- { 79,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 159, 9}, { 319,11}, \
- { 95, 9}, { 383,12}, { 63,11}, { 127, 9}, \
- { 543,11}, { 143,10}, { 287, 9}, { 575,10}, \
- { 319, 9}, { 639,12}, { 95,10}, { 383, 9}, \
- { 767,13}, { 8192,14}, { 16384,15}, { 32768,16}, \
+ { 79,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 79,11}, { 47,10}, { 95,12}, { 31,11}, \
+ { 63,10}, { 135,11}, { 79,10}, { 167,11}, \
+ { 95,10}, { 191, 9}, { 383,11}, { 111,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 511,11}, \
+ { 143,10}, { 287, 9}, { 575,12}, { 95,10}, \
+ { 383, 9}, { 767,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 73
+#define MUL_FFT_THRESHOLD 5504
+
+#define SQR_FFT_MODF_THRESHOLD 555 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 555, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 25, 7}, { 13, 6}, { 27, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
+ { 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
+ { 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
+ { 67,10}, { 39, 9}, { 79,10}, { 47,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 127, 8}, { 511,10}, \
+ { 135,11}, { 79,10}, { 159, 9}, { 319, 8}, \
+ { 639,11}, { 95, 9}, { 383,12}, { 63,11}, \
+ { 127, 9}, { 543,11}, { 159,10}, { 319, 9}, \
+ { 639,12}, { 95,10}, { 383, 9}, { 767,10}, \
+ { 415,13}, { 8192,14}, { 16384,15}, { 32768,16}, \
{ 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
{1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 68
-#define SQR_FFT_THRESHOLD 4736
+#define SQR_FFT_THRESHOLD 4224
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 42
+#define MULLO_DC_THRESHOLD 63
#define MULLO_MUL_N_THRESHOLD 10950
-#define DC_DIV_QR_THRESHOLD 52
+#define DC_DIV_QR_THRESHOLD 46
#define DC_DIVAPPR_Q_THRESHOLD 171
-#define DC_BDIV_QR_THRESHOLD 44
-#define DC_BDIV_Q_THRESHOLD 121
+#define DC_BDIV_QR_THRESHOLD 46
+#define DC_BDIV_Q_THRESHOLD 102
#define INV_MULMOD_BNM1_THRESHOLD 46
-#define INV_NEWTON_THRESHOLD 157
+#define INV_NEWTON_THRESHOLD 171
#define INV_APPR_THRESHOLD 165
-#define BINV_NEWTON_THRESHOLD 212
-#define REDC_1_TO_REDC_2_THRESHOLD 4
-#define REDC_2_TO_REDC_N_THRESHOLD 62
+#define BINV_NEWTON_THRESHOLD 222
+#define REDC_1_TO_REDC_2_THRESHOLD 32
+#define REDC_2_TO_REDC_N_THRESHOLD 55
-#define MU_DIV_QR_THRESHOLD 1589
-#define MU_DIVAPPR_Q_THRESHOLD 1652
-#define MUPI_DIV_QR_THRESHOLD 69
-#define MU_BDIV_QR_THRESHOLD 1470
-#define MU_BDIV_Q_THRESHOLD 1528
+#define MU_DIV_QR_THRESHOLD 1620
+#define MU_DIVAPPR_Q_THRESHOLD 1620
+#define MUPI_DIV_QR_THRESHOLD 71
+#define MU_BDIV_QR_THRESHOLD 1442
+#define MU_BDIV_Q_THRESHOLD 1589
-#define POWM_SEC_TABLE 2,17,130,460,1100,2578
+#define POWM_SEC_TABLE 2,24,258,453,1100,1556
#define MATRIX22_STRASSEN_THRESHOLD 14
-#define HGCD_THRESHOLD 110
-#define HGCD_APPR_THRESHOLD 54
+#define HGCD_THRESHOLD 118
+#define HGCD_APPR_THRESHOLD 85
#define HGCD_REDUCE_THRESHOLD 3389
#define GCD_DC_THRESHOLD 501
-#define GCDEXT_DC_THRESHOLD 386
+#define GCDEXT_DC_THRESHOLD 358
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
-#define SET_STR_DC_THRESHOLD 1182
-#define SET_STR_PRECOMPUTE_THRESHOLD 2342
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 26
+#define SET_STR_DC_THRESHOLD 1116
+#define SET_STR_PRECOMPUTE_THRESHOLD 2209
-#define FAC_DSC_THRESHOLD 1562
-#define FAC_ODD_THRESHOLD 28
+#define FAC_DSC_THRESHOLD 1517
+#define FAC_ODD_THRESHOLD 24
diff --git a/mpn/x86_64/k10/gmp-mparam.h b/mpn/x86_64/k10/gmp-mparam.h
index d75cd2557..5ef98dfaa 100644
--- a/mpn/x86_64/k10/gmp-mparam.h
+++ b/mpn/x86_64/k10/gmp-mparam.h
@@ -186,8 +186,8 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define INV_APPR_THRESHOLD 214
#define BINV_NEWTON_THRESHOLD 324
-#define REDC_1_TO_REDC_2_THRESHOLD 19
-#define REDC_2_TO_REDC_N_THRESHOLD 71
+#define REDC_1_TO_REDC_2_THRESHOLD 31
+#define REDC_2_TO_REDC_N_THRESHOLD 66
#define MU_DIV_QR_THRESHOLD 1718
#define MU_DIVAPPR_Q_THRESHOLD 1652
@@ -195,20 +195,20 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MU_BDIV_QR_THRESHOLD 1528
#define MU_BDIV_Q_THRESHOLD 1589
-#define POWM_SEC_TABLE 2,23,322,2080
+#define POWM_SEC_TABLE 2,23,130,572,1358
#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 144
-#define HGCD_APPR_THRESHOLD 175
-#define HGCD_REDUCE_THRESHOLD 3389
-#define GCD_DC_THRESHOLD 501
-#define GCDEXT_DC_THRESHOLD 465
+#define HGCD_THRESHOLD 135
+#define HGCD_APPR_THRESHOLD 171
+#define HGCD_REDUCE_THRESHOLD 4455
+#define GCD_DC_THRESHOLD 555
+#define GCDEXT_DC_THRESHOLD 469
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 29
-#define SET_STR_DC_THRESHOLD 248
-#define SET_STR_PRECOMPUTE_THRESHOLD 1648
+#define GET_STR_DC_THRESHOLD 19
+#define GET_STR_PRECOMPUTE_THRESHOLD 32
+#define SET_STR_DC_THRESHOLD 357
+#define SET_STR_PRECOMPUTE_THRESHOLD 1781
-#define FAC_DSC_THRESHOLD 1105
-#define FAC_ODD_THRESHOLD 30
+#define FAC_DSC_THRESHOLD 760
+#define FAC_ODD_THRESHOLD 23
diff --git a/mpn/x86_64/nano/gmp-mparam.h b/mpn/x86_64/nano/gmp-mparam.h
index d93548fae..e7f7d1c61 100644
--- a/mpn/x86_64/nano/gmp-mparam.h
+++ b/mpn/x86_64/nano/gmp-mparam.h
@@ -38,164 +38,106 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 22
-#define MUL_TOOM22_THRESHOLD 27
-#define MUL_TOOM33_THRESHOLD 33
-#define MUL_TOOM44_THRESHOLD 290
-#define MUL_TOOM6H_THRESHOLD 718
-#define MUL_TOOM8H_THRESHOLD 915
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 67
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 184
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 193
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 193
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 287
-
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 34
-#define SQR_TOOM3_THRESHOLD 93
-#define SQR_TOOM4_THRESHOLD 587
-#define SQR_TOOM6_THRESHOLD 1095
-#define SQR_TOOM8_THRESHOLD 0 /* always */
-
-#define MULMID_TOOM42_THRESHOLD 28
+#define MUL_TOOM22_THRESHOLD 26
+#define MUL_TOOM33_THRESHOLD 39
+#define MUL_TOOM44_THRESHOLD 330
+#define MUL_TOOM6H_THRESHOLD 454
+#define MUL_TOOM8H_THRESHOLD 626
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 214
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 206
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 225
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 305
+
+#define SQR_BASECASE_THRESHOLD 10 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 55
+#define SQR_TOOM3_THRESHOLD 77
+#define SQR_TOOM4_THRESHOLD 396
+#define SQR_TOOM6_THRESHOLD 746
+#define SQR_TOOM8_THRESHOLD 788
+
+#define MULMID_TOOM42_THRESHOLD 32
#define MULMOD_BNM1_THRESHOLD 13
-#define SQRMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 15
-#define MUL_FFT_MODF_THRESHOLD 376 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 372 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 376, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
- { 15, 5}, { 31, 6}, { 21, 7}, { 11, 6}, \
- { 24, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
- { 31, 7}, { 19, 6}, { 39, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 27, 8}, \
- { 15, 7}, { 32, 8}, { 17, 7}, { 35, 8}, \
- { 19, 7}, { 40, 8}, { 23, 7}, { 47, 8}, \
- { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
- { 39, 4}, { 767, 5}, { 399, 6}, { 201, 5}, \
- { 415, 6}, { 208, 7}, { 105, 6}, { 214, 7}, \
- { 127, 8}, { 71, 9}, { 39, 8}, { 87, 9}, \
- { 47, 8}, { 97, 9}, { 55,11}, { 15,10}, \
- { 31, 9}, { 67, 8}, { 135, 9}, { 75,10}, \
- { 39, 9}, { 87,10}, { 47, 9}, { 99,10}, \
- { 55,11}, { 31,10}, { 63, 9}, { 127,10}, \
- { 87,11}, { 47,10}, { 103,12}, { 31,11}, \
- { 63,10}, { 143,11}, { 79,10}, { 167,11}, \
- { 95,10}, { 199,11}, { 111,12}, { 63,11}, \
- { 127, 9}, { 511,11}, { 143,10}, { 287,11}, \
- { 159, 9}, { 639,11}, { 175,12}, { 95,11}, \
- { 191,10}, { 383, 9}, { 767,11}, { 207,10}, \
- { 415, 9}, { 831,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511, 9}, { 1023,11}, { 271,10}, \
- { 543, 9}, { 1087,11}, { 287,10}, { 575,12}, \
- { 159,11}, { 319,10}, { 639, 9}, { 1279,11}, \
- { 335,10}, { 671, 9}, { 1343,10}, { 703, 9}, \
- { 1407,12}, { 191,11}, { 383,10}, { 767, 9}, \
- { 1535,11}, { 415,10}, { 831, 9}, { 1663,12}, \
- { 223,11}, { 447,13}, { 127,12}, { 255,11}, \
- { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \
- { 287,11}, { 575,10}, { 1151,11}, { 607,10}, \
- { 1215,12}, { 319,11}, { 671,10}, { 1343,12}, \
- { 351,11}, { 703,10}, { 1407,13}, { 191,12}, \
- { 383,11}, { 767,10}, { 1599,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,11}, { 895,14}, \
- { 127,13}, { 255,12}, { 511,11}, { 1023,12}, \
- { 543,11}, { 1087,10}, { 2175,12}, { 575,11}, \
- { 1151,12}, { 607,11}, { 1215,13}, { 319,12}, \
- { 639,11}, { 1343,12}, { 703,11}, { 1407,12}, \
- { 735,11}, { 1471,13}, { 383,12}, { 767,11}, \
- { 1535,12}, { 831,11}, { 1663,13}, { 447,12}, \
- { 895,11}, { 1791,12}, { 959,11}, { 1919,13}, \
- { 511,12}, { 1023,11}, { 2047,12}, { 1087,11}, \
- { 2175,13}, { 575,12}, { 1215,13}, { 639,12}, \
- { 1343,13}, { 703,12}, { 1471,13}, { 767,12}, \
- { 1535,13}, { 831,12}, { 1663,13}, { 895,12}, \
- { 1791,13}, { 959,12}, { 1919,14}, { 511,13}, \
- { 1023,12}, { 2047,13}, { 1087,12}, { 2175,13}, \
- { 1215,14}, { 639,13}, { 1471,14}, { 767,13}, \
- { 1727,14}, { 895,13}, { 1791,12}, { 3583,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define MUL_FFT_TABLE3_SIZE 215
-#define MUL_FFT_THRESHOLD 3200
-
-#define SQR_FFT_MODF_THRESHOLD 400 /* k = 5 */
-#define SQR_FFT_TABLE3 \
- { { 400, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
- { 12, 5}, { 25, 6}, { 21, 7}, { 11, 6}, \
- { 25, 7}, { 13, 6}, { 27, 7}, { 25, 8}, \
- { 13, 7}, { 28, 8}, { 15, 7}, { 32, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+ { { 372, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
+ { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
+ { 19, 7}, { 39, 8}, { 21, 9}, { 11, 8}, \
{ 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
{ 41, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
- { 15, 6}, { 255, 4}, { 1151, 5}, { 607, 7}, \
- { 167, 8}, { 99, 9}, { 55,10}, { 31, 9}, \
- { 75,10}, { 39, 9}, { 87,10}, { 47, 9}, \
- { 103,10}, { 55, 9}, { 111,11}, { 31,10}, \
- { 63, 9}, { 131,10}, { 71, 9}, { 143,10}, \
- { 79,11}, { 47,10}, { 103,12}, { 31,11}, \
- { 63,10}, { 135, 9}, { 271,10}, { 143,11}, \
- { 79,10}, { 159, 9}, { 319,10}, { 167,11}, \
- { 95,10}, { 191, 9}, { 383, 8}, { 767,10}, \
- { 199,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 511, 8}, { 1023,11}, { 143, 9}, \
- { 575, 8}, { 1151,11}, { 159,10}, { 319, 9}, \
- { 639, 8}, { 1279,12}, { 95,11}, { 191,10}, \
- { 383, 9}, { 767, 8}, { 1535, 9}, { 799,11}, \
- { 207,10}, { 415, 9}, { 831,13}, { 63,12}, \
- { 127,11}, { 255,10}, { 511, 9}, { 1023,11}, \
- { 271,10}, { 543, 9}, { 1087,10}, { 575, 9}, \
- { 1151,11}, { 303,12}, { 159,10}, { 639, 9}, \
- { 1279,11}, { 335,10}, { 671, 9}, { 1343,11}, \
- { 351,10}, { 703, 9}, { 1471,12}, { 191,11}, \
- { 383,10}, { 767, 9}, { 1535,11}, { 399,10}, \
- { 799,11}, { 415,10}, { 831, 9}, { 1663,12}, \
- { 223,11}, { 447,10}, { 895,13}, { 127,12}, \
- { 255,11}, { 511,10}, { 1023,11}, { 543,10}, \
- { 1087,12}, { 287,11}, { 575,10}, { 1215,11}, \
- { 639,10}, { 1279,11}, { 671,10}, { 1343,11}, \
- { 703,10}, { 1407,11}, { 735,10}, { 1471,13}, \
- { 191,12}, { 383,11}, { 767,10}, { 1535,11}, \
- { 799,10}, { 1599,12}, { 415,11}, { 831,10}, \
- { 1663,11}, { 863,12}, { 447,11}, { 895,10}, \
- { 1791,11}, { 959,14}, { 127,12}, { 511,11}, \
- { 1023,12}, { 543,11}, { 1087,12}, { 575,11}, \
- { 1215,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,12}, { 703,11}, { 1471,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 799,11}, { 1599,12}, \
- { 831,11}, { 1663,12}, { 863,13}, { 447,12}, \
- { 895,11}, { 1791,12}, { 959,13}, { 511,12}, \
- { 1023,11}, { 2047,12}, { 1087,13}, { 575,12}, \
- { 1215,13}, { 639,12}, { 1343,13}, { 703,12}, \
- { 1471,13}, { 767,12}, { 1599,13}, { 831,12}, \
- { 1727,13}, { 895,12}, { 1791,13}, { 959,12}, \
- { 1919,14}, { 511,13}, { 1023,12}, { 2047,13}, \
- { 1215,14}, { 639,13}, { 1471,14}, { 767,13}, \
- { 1727,14}, { 895,13}, { 1791,12}, { 3583,13}, \
- { 8192,14}, { 16384,15}, { 32768,16}, { 65536,17}, \
- { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
- {2097152,22}, {4194304,23}, {8388608,24} }
-#define SQR_FFT_TABLE3_SIZE 215
-#define SQR_FFT_THRESHOLD 2880
-
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 79
-#define MULLO_MUL_N_THRESHOLD 6253
-
-#define DC_DIV_QR_THRESHOLD 54
-#define DC_DIVAPPR_Q_THRESHOLD 153
-#define DC_BDIV_QR_THRESHOLD 51
-#define DC_BDIV_Q_THRESHOLD 52
-
-#define INV_MULMOD_BNM1_THRESHOLD 52
-#define INV_NEWTON_THRESHOLD 150
-#define INV_APPR_THRESHOLD 151
-
-#define BINV_NEWTON_THRESHOLD 232
-#define REDC_1_TO_REDC_2_THRESHOLD 13
-#define REDC_2_TO_REDC_N_THRESHOLD 55
+ { 15, 9}, { 39,10}, { 23, 9}, { 55,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 83,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 63, 9}, { 131,10}, { 71, 9}, \
+ { 143,10}, { 79,11}, { 47,10}, { 95, 9}, \
+ { 191,10}, { 103,12}, { 31,11}, { 63,10}, \
+ { 135, 8}, { 543, 7}, { 1087,11}, { 79, 9}, \
+ { 319,10}, { 167,11}, { 95, 9}, { 383,10}, \
+ { 207, 9}, { 415,11}, { 111,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 543, 8}, { 1087,11}, \
+ { 143,10}, { 287, 9}, { 575, 8}, { 1151,10}, \
+ { 303, 9}, { 607,11}, { 159,10}, { 319, 9}, \
+ { 639, 8}, { 1279, 9}, { 671,11}, { 175,10}, \
+ { 351, 9}, { 703,12}, { 95,11}, { 191,10}, \
+ { 383, 9}, { 767,11}, { 207,10}, { 415, 9}, \
+ { 831,11}, { 223,10}, { 447,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16}, { 65536,17}, { 131072,18}, \
+ { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
+ {4194304,23}, {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 102
+#define MUL_FFT_THRESHOLD 3520
+
+#define SQR_FFT_MODF_THRESHOLD 336 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 336, 5}, { 19, 6}, { 19, 7}, { 21, 8}, \
+ { 11, 7}, { 24, 8}, { 13, 7}, { 27, 8}, \
+ { 15, 7}, { 31, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 33, 9}, { 19, 8}, \
+ { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 47,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 63, 9}, { 127,10}, { 79,11}, \
+ { 47,10}, { 95, 8}, { 383, 9}, { 207,12}, \
+ { 31,11}, { 63,10}, { 127, 8}, { 511, 9}, \
+ { 271, 7}, { 1087,11}, { 79, 9}, { 319, 8}, \
+ { 639, 7}, { 1279,10}, { 175, 9}, { 351, 8}, \
+ { 703,11}, { 95, 9}, { 383, 8}, { 767,10}, \
+ { 207, 8}, { 831,11}, { 111,12}, { 63,11}, \
+ { 127,10}, { 255, 8}, { 1023, 9}, { 543, 8}, \
+ { 1087,11}, { 143, 9}, { 575, 8}, { 1151,10}, \
+ { 303, 8}, { 1215,10}, { 319, 9}, { 639, 8}, \
+ { 1279,10}, { 351, 9}, { 703,12}, { 95,10}, \
+ { 383, 9}, { 767,10}, { 415, 9}, { 831, 8}, \
+ { 1663, 9}, { 895,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define SQR_FFT_TABLE3_SIZE 93
+#define SQR_FFT_THRESHOLD 2368
+
+#define MULLO_BASECASE_THRESHOLD 15
+#define MULLO_DC_THRESHOLD 37
+#define MULLO_MUL_N_THRESHOLD 6633
+
+#define DC_DIV_QR_THRESHOLD 55
+#define DC_DIVAPPR_Q_THRESHOLD 165
+#define DC_BDIV_QR_THRESHOLD 52
+#define DC_BDIV_Q_THRESHOLD 96
+
+#define INV_MULMOD_BNM1_THRESHOLD 50
+#define INV_NEWTON_THRESHOLD 155
+#define INV_APPR_THRESHOLD 155
+
+#define BINV_NEWTON_THRESHOLD 246
+#define REDC_1_TO_REDC_2_THRESHOLD 7
+#define REDC_2_TO_REDC_N_THRESHOLD 85
#define MU_DIV_QR_THRESHOLD 1499
#define MU_DIVAPPR_Q_THRESHOLD 1620
@@ -203,20 +145,20 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MU_BDIV_QR_THRESHOLD 1142
#define MU_BDIV_Q_THRESHOLD 1499
-#define POWM_SEC_TABLE 4,29,387,1421
+#define POWM_SEC_TABLE 2,23,130,713,2316
#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 112
-#define HGCD_APPR_THRESHOLD 185
-#define HGCD_REDUCE_THRESHOLD 3134
-#define GCD_DC_THRESHOLD 492
-#define GCDEXT_DC_THRESHOLD 465
+#define HGCD_THRESHOLD 148
+#define HGCD_APPR_THRESHOLD 200
+#define HGCD_REDUCE_THRESHOLD 2479
+#define GCD_DC_THRESHOLD 501
+#define GCDEXT_DC_THRESHOLD 492
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 11
+#define GET_STR_DC_THRESHOLD 13
#define GET_STR_PRECOMPUTE_THRESHOLD 25
-#define SET_STR_DC_THRESHOLD 414
-#define SET_STR_PRECOMPUTE_THRESHOLD 1945
+#define SET_STR_DC_THRESHOLD 537
+#define SET_STR_PRECOMPUTE_THRESHOLD 2032
-#define FAC_DSC_THRESHOLD 1517
-#define FAC_ODD_THRESHOLD 44
+#define FAC_DSC_THRESHOLD 1737
+#define FAC_ODD_THRESHOLD 0 /* always */