summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2012-12-15 13:28:10 +0100
committerTorbjorn Granlund <tege@gmplib.org>2012-12-15 13:28:10 +0100
commitaaf2931a1a75e6031aa6b4702c7878c8b9627272 (patch)
tree1bc35b299bd646c3547dc64af685aaee50b891ff
parent3ea799cf9a5b4db9a275ff7952a581853c998847 (diff)
downloadgmp-aaf2931a1a75e6031aa6b4702c7878c8b9627272.tar.gz
Retune.
-rw-r--r--mpn/alpha/ev5/gmp-mparam.h88
-rw-r--r--mpn/alpha/ev6/gmp-mparam.h92
-rw-r--r--mpn/arm/v7a/cora15/gmp-mparam.h28
-rw-r--r--mpn/ia64/gmp-mparam.h70
-rw-r--r--mpn/powerpc32/gmp-mparam.h68
-rw-r--r--mpn/powerpc64/mode32/p4/gmp-mparam.h65
-rw-r--r--mpn/powerpc64/mode64/p3/gmp-mparam.h36
-rw-r--r--mpn/powerpc64/mode64/p4/gmp-mparam.h78
-rw-r--r--mpn/powerpc64/mode64/p6/gmp-mparam.h58
-rw-r--r--mpn/powerpc64/mode64/p7/gmp-mparam.h100
-rw-r--r--mpn/sparc32/ultrasparct1/gmp-mparam.h143
-rw-r--r--mpn/sparc32/v9/gmp-mparam.h188
-rw-r--r--mpn/sparc64/ultrasparc34/gmp-mparam.h78
-rw-r--r--mpn/sparc64/ultrasparct1/gmp-mparam.h46
-rw-r--r--mpn/x86/atom/gmp-mparam.h80
-rw-r--r--mpn/x86/k10/gmp-mparam.h96
-rw-r--r--mpn/x86/k7/gmp-mparam.h88
-rw-r--r--mpn/x86/k8/gmp-mparam.h50
-rw-r--r--mpn/x86/p6/sse2/gmp-mparam.h58
-rw-r--r--mpn/x86/pentium4/sse2/gmp-mparam.h88
-rw-r--r--mpn/x86_64/atom/gmp-mparam.h70
-rw-r--r--mpn/x86_64/bd1/gmp-mparam.h222
-rw-r--r--mpn/x86_64/bobcat/gmp-mparam.h86
-rw-r--r--mpn/x86_64/coreinhm/gmp-mparam.h80
-rw-r--r--mpn/x86_64/k10/gmp-mparam.h70
-rw-r--r--mpn/x86_64/pentium4/gmp-mparam.h80
26 files changed, 1221 insertions, 985 deletions
diff --git a/mpn/alpha/ev5/gmp-mparam.h b/mpn/alpha/ev5/gmp-mparam.h
index 395353a46..e4396e5db 100644
--- a/mpn/alpha/ev5/gmp-mparam.h
+++ b/mpn/alpha/ev5/gmp-mparam.h
@@ -31,29 +31,30 @@ 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 6
#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 4
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 14
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 78
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 15
#define USE_PREINV_DIVREM_1 1 /* preinv always */
-#define DIV_QR_2_PI2_THRESHOLD 21
+#define DIV_QR_2_PI2_THRESHOLD 25
#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 78
+#define BMOD_1_TO_MOD_1_THRESHOLD 80
#define MUL_TOOM22_THRESHOLD 14
-#define MUL_TOOM33_THRESHOLD 57
+#define MUL_TOOM33_THRESHOLD 66
#define MUL_TOOM44_THRESHOLD 118
-#define MUL_TOOM6H_THRESHOLD 173
-#define MUL_TOOM8H_THRESHOLD 240
+#define MUL_TOOM6H_THRESHOLD 157
+#define MUL_TOOM8H_THRESHOLD 236
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 57
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 84
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 81
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 56
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 66
-#define SQR_BASECASE_THRESHOLD 4
-#define SQR_TOOM2_THRESHOLD 28
+#define SQR_BASECASE_THRESHOLD 5
+#define SQR_TOOM2_THRESHOLD 26
#define SQR_TOOM3_THRESHOLD 77
-#define SQR_TOOM4_THRESHOLD 136
+#define SQR_TOOM4_THRESHOLD 130
#define SQR_TOOM6_THRESHOLD 173
#define SQR_TOOM8_THRESHOLD 260
@@ -62,8 +63,6 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMOD_BNM1_THRESHOLD 11
#define SQRMOD_BNM1_THRESHOLD 13
-#define POWM_SEC_TABLE 2,17,322,387
-
#define MUL_FFT_MODF_THRESHOLD 244 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 244, 5}, { 11, 6}, { 6, 5}, { 13, 6}, \
@@ -105,7 +104,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_FFT_TABLE3_SIZE 141
#define MUL_FFT_THRESHOLD 3008
-#define SQR_FFT_MODF_THRESHOLD 220 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 212 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 220, 5}, { 13, 6}, { 15, 7}, { 8, 6}, \
{ 17, 7}, { 9, 6}, { 19, 7}, { 13, 8}, \
@@ -142,39 +141,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
{2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 135
-#define SQR_FFT_THRESHOLD 2240
+#define SQR_FFT_THRESHOLD 1984
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 55
-#define MULLO_MUL_N_THRESHOLD 5558
+#define MULLO_BASECASE_THRESHOLD 2
+#define MULLO_DC_THRESHOLD 50
+#define MULLO_MUL_N_THRESHOLD 5397
-#define DC_DIV_QR_THRESHOLD 55
-#define DC_DIVAPPR_Q_THRESHOLD 192
+#define DC_DIV_QR_THRESHOLD 52
+#define DC_DIVAPPR_Q_THRESHOLD 172
#define DC_BDIV_QR_THRESHOLD 51
-#define DC_BDIV_Q_THRESHOLD 120
+#define DC_BDIV_Q_THRESHOLD 112
-#define INV_MULMOD_BNM1_THRESHOLD 34
-#define INV_NEWTON_THRESHOLD 188
-#define INV_APPR_THRESHOLD 189
+#define INV_MULMOD_BNM1_THRESHOLD 38
+#define INV_NEWTON_THRESHOLD 179
+#define INV_APPR_THRESHOLD 180
-#define BINV_NEWTON_THRESHOLD 228
-#define REDC_1_TO_REDC_N_THRESHOLD 55
+#define BINV_NEWTON_THRESHOLD 197
+#define REDC_1_TO_REDC_N_THRESHOLD 51
-#define MU_DIV_QR_THRESHOLD 979
+#define MU_DIV_QR_THRESHOLD 998
#define MU_DIVAPPR_Q_THRESHOLD 998
-#define MUPI_DIV_QR_THRESHOLD 106
-#define MU_BDIV_QR_THRESHOLD 792
-#define MU_BDIV_Q_THRESHOLD 942
+#define MUPI_DIV_QR_THRESHOLD 90
+#define MU_BDIV_QR_THRESHOLD 807
+#define MU_BDIV_Q_THRESHOLD 1078
+
+#define POWM_SEC_TABLE 2,17,188,393
-#define MATRIX22_STRASSEN_THRESHOLD 13
+#define MATRIX22_STRASSEN_THRESHOLD 11
#define HGCD_THRESHOLD 105
-#define HGCD_APPR_THRESHOLD 111
-#define HGCD_REDUCE_THRESHOLD 1437
-#define GCD_DC_THRESHOLD 318
-#define GCDEXT_DC_THRESHOLD 214
-#define JACOBI_BASE_METHOD 2
-
-#define GET_STR_DC_THRESHOLD 16
-#define GET_STR_PRECOMPUTE_THRESHOLD 31
-#define SET_STR_DC_THRESHOLD 422
-#define SET_STR_PRECOMPUTE_THRESHOLD 1524
+#define HGCD_APPR_THRESHOLD 105
+#define HGCD_REDUCE_THRESHOLD 1494
+#define GCD_DC_THRESHOLD 285
+#define GCDEXT_DC_THRESHOLD 206
+#define JACOBI_BASE_METHOD 3
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 29
+#define SET_STR_DC_THRESHOLD 426
+#define SET_STR_PRECOMPUTE_THRESHOLD 1535
+
+#define FAC_DSC_THRESHOLD 1502
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/alpha/ev6/gmp-mparam.h b/mpn/alpha/ev6/gmp-mparam.h
index ce865f4cc..9932ec1fb 100644
--- a/mpn/alpha/ev6/gmp-mparam.h
+++ b/mpn/alpha/ev6/gmp-mparam.h
@@ -34,40 +34,39 @@ 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 3
#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 4
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 8
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 17
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 7
#define USE_PREINV_DIVREM_1 1 /* preinv always */
#define DIV_QR_2_PI2_THRESHOLD 8
#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 20
+#define BMOD_1_TO_MOD_1_THRESHOLD 19
-#define MUL_TOOM22_THRESHOLD 35
-#define MUL_TOOM33_THRESHOLD 77
-#define MUL_TOOM44_THRESHOLD 184
-#define MUL_TOOM6H_THRESHOLD 228
-#define MUL_TOOM8H_THRESHOLD 288
+#define MUL_TOOM22_THRESHOLD 32
+#define MUL_TOOM33_THRESHOLD 105
+#define MUL_TOOM44_THRESHOLD 166
+#define MUL_TOOM6H_THRESHOLD 232
+#define MUL_TOOM8H_THRESHOLD 357
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 89
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 96
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 110
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 73
-
-#define SQR_BASECASE_THRESHOLD 0 /* always */
-#define SQR_TOOM2_THRESHOLD 58
-#define SQR_TOOM3_THRESHOLD 103
-#define SQR_TOOM4_THRESHOLD 172
-#define SQR_TOOM6_THRESHOLD 264
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 93
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 133
+
+#define SQR_BASECASE_THRESHOLD 4
+#define SQR_TOOM2_THRESHOLD 60
+#define SQR_TOOM3_THRESHOLD 102
+#define SQR_TOOM4_THRESHOLD 155
+#define SQR_TOOM6_THRESHOLD 306
#define SQR_TOOM8_THRESHOLD 333
#define MULMID_TOOM42_THRESHOLD 52
-#define MULMOD_BNM1_THRESHOLD 20
+#define MULMOD_BNM1_THRESHOLD 15
#define SQRMOD_BNM1_THRESHOLD 23
-#define POWM_SEC_TABLE 4,17,246,2388
-
-#define MUL_FFT_MODF_THRESHOLD 480 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 412 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 480, 5}, { 18, 6}, { 10, 5}, { 21, 6}, \
{ 11, 5}, { 23, 6}, { 12, 5}, { 25, 6}, \
@@ -110,7 +109,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_FFT_TABLE3_SIZE 151
#define MUL_FFT_THRESHOLD 5760
-#define SQR_FFT_MODF_THRESHOLD 476 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 412 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 476, 5}, { 19, 6}, { 10, 5}, { 23, 6}, \
{ 12, 5}, { 25, 6}, { 27, 7}, { 14, 6}, \
@@ -151,39 +150,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
{1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 152
-#define SQR_FFT_THRESHOLD 3136
+#define SQR_FFT_THRESHOLD 4224
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 173
-#define MULLO_MUL_N_THRESHOLD 11355
+#define MULLO_DC_THRESHOLD 113
+#define MULLO_MUL_N_THRESHOLD 11278
#define DC_DIV_QR_THRESHOLD 112
-#define DC_DIVAPPR_Q_THRESHOLD 422
+#define DC_DIVAPPR_Q_THRESHOLD 390
#define DC_BDIV_QR_THRESHOLD 110
-#define DC_BDIV_Q_THRESHOLD 348
+#define DC_BDIV_Q_THRESHOLD 286
-#define INV_MULMOD_BNM1_THRESHOLD 68
-#define INV_NEWTON_THRESHOLD 402
-#define INV_APPR_THRESHOLD 396
+#define INV_MULMOD_BNM1_THRESHOLD 62
+#define INV_NEWTON_THRESHOLD 393
+#define INV_APPR_THRESHOLD 375
-#define BINV_NEWTON_THRESHOLD 399
-#define REDC_1_TO_REDC_N_THRESHOLD 110
+#define BINV_NEWTON_THRESHOLD 390
+#define REDC_1_TO_REDC_N_THRESHOLD 124
-#define MU_DIV_QR_THRESHOLD 1718
-#define MU_DIVAPPR_Q_THRESHOLD 1895
-#define MUPI_DIV_QR_THRESHOLD 180
-#define MU_BDIV_QR_THRESHOLD 1387
+#define MU_DIV_QR_THRESHOLD 1652
+#define MU_DIVAPPR_Q_THRESHOLD 1685
+#define MUPI_DIV_QR_THRESHOLD 171
+#define MU_BDIV_QR_THRESHOLD 1470
#define MU_BDIV_Q_THRESHOLD 1652
-#define MATRIX22_STRASSEN_THRESHOLD 17
+#define POWM_SEC_TABLE 2,23,88,387,961,2578
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
#define HGCD_THRESHOLD 278
-#define HGCD_APPR_THRESHOLD 366
-#define HGCD_REDUCE_THRESHOLD 2681
+#define HGCD_APPR_THRESHOLD 357
+#define HGCD_REDUCE_THRESHOLD 2899
#define GCD_DC_THRESHOLD 1258
#define GCDEXT_DC_THRESHOLD 777
#define JACOBI_BASE_METHOD 3
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 25
-#define SET_STR_DC_THRESHOLD 3539
-#define SET_STR_PRECOMPUTE_THRESHOLD 7784
+#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_PRECOMPUTE_THRESHOLD 24
+#define SET_STR_DC_THRESHOLD 3866
+#define SET_STR_PRECOMPUTE_THRESHOLD 7708
+
+#define FAC_DSC_THRESHOLD 1025
+#define FAC_ODD_THRESHOLD 24
diff --git a/mpn/arm/v7a/cora15/gmp-mparam.h b/mpn/arm/v7a/cora15/gmp-mparam.h
index 863efeed0..bfb591084 100644
--- a/mpn/arm/v7a/cora15/gmp-mparam.h
+++ b/mpn/arm/v7a/cora15/gmp-mparam.h
@@ -56,10 +56,10 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMID_TOOM42_THRESHOLD 44
-#define MULMOD_BNM1_THRESHOLD 20
+#define MULMOD_BNM1_THRESHOLD 17
#define SQRMOD_BNM1_THRESHOLD 30
-#define MUL_FFT_MODF_THRESHOLD 505 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 525 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 505, 5}, { 27, 6}, { 28, 7}, { 15, 6}, \
{ 33, 7}, { 17, 6}, { 35, 7}, { 19, 6}, \
@@ -127,7 +127,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 27
-#define MULLO_MUL_N_THRESHOLD 11278
+#define MULLO_MUL_N_THRESHOLD 8907
#define DC_DIV_QR_THRESHOLD 31
#define DC_DIVAPPR_Q_THRESHOLD 45
@@ -135,33 +135,33 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DC_BDIV_Q_THRESHOLD 50
#define INV_MULMOD_BNM1_THRESHOLD 66
-#define INV_NEWTON_THRESHOLD 250
-#define INV_APPR_THRESHOLD 102
+#define INV_NEWTON_THRESHOLD 171
+#define INV_APPR_THRESHOLD 65
-#define BINV_NEWTON_THRESHOLD 324
+#define BINV_NEWTON_THRESHOLD 300
#define REDC_1_TO_REDC_2_THRESHOLD 12
-#define REDC_2_TO_REDC_N_THRESHOLD 114
+#define REDC_2_TO_REDC_N_THRESHOLD 99
#define MU_DIV_QR_THRESHOLD 1895
#define MU_DIVAPPR_Q_THRESHOLD 1895
-#define MUPI_DIV_QR_THRESHOLD 74
+#define MUPI_DIV_QR_THRESHOLD 54
#define MU_BDIV_QR_THRESHOLD 1470
#define MU_BDIV_Q_THRESHOLD 1895
-#define POWM_SEC_TABLE 4,38,367,1510
+#define POWM_SEC_TABLE 6,44,548,1604
-#define MATRIX22_STRASSEN_THRESHOLD 27
+#define MATRIX22_STRASSEN_THRESHOLD 22
#define HGCD_THRESHOLD 40
#define HGCD_APPR_THRESHOLD 50
#define HGCD_REDUCE_THRESHOLD 3389
-#define GCD_DC_THRESHOLD 249
-#define GCDEXT_DC_THRESHOLD 192
+#define GCD_DC_THRESHOLD 278
+#define GCDEXT_DC_THRESHOLD 180
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 18
#define GET_STR_PRECOMPUTE_THRESHOLD 34
-#define SET_STR_DC_THRESHOLD 100
+#define SET_STR_DC_THRESHOLD 198
#define SET_STR_PRECOMPUTE_THRESHOLD 541
-#define FAC_DSC_THRESHOLD 228
+#define FAC_DSC_THRESHOLD 303
#define FAC_ODD_THRESHOLD 28
diff --git a/mpn/ia64/gmp-mparam.h b/mpn/ia64/gmp-mparam.h
index 77e02f518..1e0ccb97c 100644
--- a/mpn/ia64/gmp-mparam.h
+++ b/mpn/ia64/gmp-mparam.h
@@ -26,7 +26,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1_1P_METHOD 2
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 26
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
@@ -36,32 +36,31 @@ 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 MP_SIZE_T_MAX /* never */
-#define MUL_TOOM22_THRESHOLD 40
+#define MUL_TOOM22_THRESHOLD 36
#define MUL_TOOM33_THRESHOLD 129
#define MUL_TOOM44_THRESHOLD 214
#define MUL_TOOM6H_THRESHOLD 318
#define MUL_TOOM8H_THRESHOLD 430
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 145
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 126
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 151
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 121
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 138
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 121
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 145
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 203
#define SQR_BASECASE_THRESHOLD 11
#define SQR_TOOM2_THRESHOLD 84
-#define SQR_TOOM3_THRESHOLD 135
+#define SQR_TOOM3_THRESHOLD 131
#define SQR_TOOM4_THRESHOLD 494
#define SQR_TOOM6_THRESHOLD 0 /* always */
#define SQR_TOOM8_THRESHOLD 0 /* always */
#define MULMID_TOOM42_THRESHOLD 98
-#define MULMOD_BNM1_THRESHOLD 23
-#define SQRMOD_BNM1_THRESHOLD 28
+#define MULMOD_BNM1_THRESHOLD 21
+#define SQRMOD_BNM1_THRESHOLD 25
-#define POWM_SEC_TABLE 2,29,130,905
-
-#define MUL_FFT_MODF_THRESHOLD 476 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 468 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 476, 5}, { 27, 6}, { 14, 5}, { 29, 6}, \
{ 33, 7}, { 17, 6}, { 37, 7}, { 19, 6}, \
@@ -103,9 +102,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
{2097152,22}, {4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 155
-#define MUL_FFT_THRESHOLD 5760
+#define MUL_FFT_THRESHOLD 6272
-#define SQR_FFT_MODF_THRESHOLD 436 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 440 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 436, 5}, { 14, 4}, { 29, 5}, { 31, 6}, \
{ 35, 7}, { 18, 6}, { 37, 7}, { 37, 8}, \
@@ -148,38 +147,43 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_TABLE3_SIZE 151
#define SQR_FFT_THRESHOLD 4032
-#define MULLO_BASECASE_THRESHOLD 29
-#define MULLO_DC_THRESHOLD 57
-#define MULLO_MUL_N_THRESHOLD 11278
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 62
+#define MULLO_MUL_N_THRESHOLD 12322
-#define DC_DIV_QR_THRESHOLD 64
-#define DC_DIVAPPR_Q_THRESHOLD 222
-#define DC_BDIV_QR_THRESHOLD 95
-#define DC_BDIV_Q_THRESHOLD 264
+#define DC_DIV_QR_THRESHOLD 55
+#define DC_DIVAPPR_Q_THRESHOLD 220
+#define DC_BDIV_QR_THRESHOLD 92
+#define DC_BDIV_Q_THRESHOLD 252
-#define INV_MULMOD_BNM1_THRESHOLD 86
-#define INV_NEWTON_THRESHOLD 139
-#define INV_APPR_THRESHOLD 147
+#define INV_MULMOD_BNM1_THRESHOLD 70
+#define INV_NEWTON_THRESHOLD 156
+#define INV_APPR_THRESHOLD 154
-#define BINV_NEWTON_THRESHOLD 252
+#define BINV_NEWTON_THRESHOLD 248
#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
-#define REDC_2_TO_REDC_N_THRESHOLD 147
+#define REDC_2_TO_REDC_N_THRESHOLD 149
#define MU_DIV_QR_THRESHOLD 1142
#define MU_DIVAPPR_Q_THRESHOLD 1142
#define MUPI_DIV_QR_THRESHOLD 0 /* always */
-#define MU_BDIV_QR_THRESHOLD 1210
+#define MU_BDIV_QR_THRESHOLD 1142
#define MU_BDIV_Q_THRESHOLD 1470
-#define MATRIX22_STRASSEN_THRESHOLD 23
-#define HGCD_THRESHOLD 117
-#define HGCD_APPR_THRESHOLD 111
+#define POWM_SEC_TABLE 2,29,298,1897
+
+#define MATRIX22_STRASSEN_THRESHOLD 19
+#define HGCD_THRESHOLD 115
+#define HGCD_APPR_THRESHOLD 181
#define HGCD_REDUCE_THRESHOLD 3014
#define GCD_DC_THRESHOLD 555
#define GCDEXT_DC_THRESHOLD 368
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 22
-#define SET_STR_DC_THRESHOLD 1474
-#define SET_STR_PRECOMPUTE_THRESHOLD 3168
+#define GET_STR_PRECOMPUTE_THRESHOLD 21
+#define SET_STR_DC_THRESHOLD 1216
+#define SET_STR_PRECOMPUTE_THRESHOLD 3170
+
+#define FAC_DSC_THRESHOLD 746
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/powerpc32/gmp-mparam.h b/mpn/powerpc32/gmp-mparam.h
index 1c8caa6a2..b478a4712 100644
--- a/mpn/powerpc32/gmp-mparam.h
+++ b/mpn/powerpc32/gmp-mparam.h
@@ -34,16 +34,18 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DIVREM_1_NORM_THRESHOLD 0 /* always */
#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1_1P_METHOD 1
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 8
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 12
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 61
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 15
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 8
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 8
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 49
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 18
#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 98
+#define BMOD_1_TO_MOD_1_THRESHOLD 66
#define MUL_TOOM22_THRESHOLD 14
#define MUL_TOOM33_THRESHOLD 73
@@ -52,17 +54,20 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM8H_THRESHOLD 236
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 71
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 72
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 72
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 82
-#define SQR_BASECASE_THRESHOLD 0 /* always */
-#define SQR_TOOM2_THRESHOLD 24
+#define SQR_BASECASE_THRESHOLD 4
+#define SQR_TOOM2_THRESHOLD 26
#define SQR_TOOM3_THRESHOLD 77
-#define SQR_TOOM4_THRESHOLD 130
+#define SQR_TOOM4_THRESHOLD 136
#define SQR_TOOM6_THRESHOLD 189
#define SQR_TOOM8_THRESHOLD 284
+#define MULMID_TOOM42_THRESHOLD 32
+
#define MULMOD_BNM1_THRESHOLD 9
#define SQRMOD_BNM1_THRESHOLD 14
@@ -111,9 +116,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 1535,12}, { 3071,13}, { 1919,12}, { 3839,15}, \
{ 32768,16} }
#define MUL_FFT_TABLE3_SIZE 165
-#define MUL_FFT_THRESHOLD 3712
+#define MUL_FFT_THRESHOLD 3392
-#define SQR_FFT_MODF_THRESHOLD 248 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 236 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 248, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
{ 17, 7}, { 9, 6}, { 20, 7}, { 11, 6}, \
@@ -155,37 +160,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 767,13}, { 1535,12}, { 3199,13}, { 1919,15}, \
{ 32768,16} }
#define SQR_FFT_TABLE3_SIZE 153
-#define SQR_FFT_THRESHOLD 2688
+#define SQR_FFT_THRESHOLD 2368
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 45
#define MULLO_MUL_N_THRESHOLD 6633
#define DC_DIV_QR_THRESHOLD 43
-#define DC_DIVAPPR_Q_THRESHOLD 154
-#define DC_BDIV_QR_THRESHOLD 55
+#define DC_DIVAPPR_Q_THRESHOLD 153
+#define DC_BDIV_QR_THRESHOLD 54
#define DC_BDIV_Q_THRESHOLD 124
#define INV_MULMOD_BNM1_THRESHOLD 42
#define INV_NEWTON_THRESHOLD 179
-#define INV_APPR_THRESHOLD 166
+#define INV_APPR_THRESHOLD 157
-#define BINV_NEWTON_THRESHOLD 232
+#define BINV_NEWTON_THRESHOLD 204
#define REDC_1_TO_REDC_N_THRESHOLD 54
-#define MU_DIV_QR_THRESHOLD 1057
-#define MU_DIVAPPR_Q_THRESHOLD 1142
-#define MUPI_DIV_QR_THRESHOLD 83
-#define MU_BDIV_QR_THRESHOLD 872
-#define MU_BDIV_Q_THRESHOLD 1142
+#define MU_DIV_QR_THRESHOLD 998
+#define MU_DIVAPPR_Q_THRESHOLD 1037
+#define MUPI_DIV_QR_THRESHOLD 84
+#define MU_BDIV_QR_THRESHOLD 748
+#define MU_BDIV_Q_THRESHOLD 942
+
+#define POWM_SEC_TABLE 4,23,164,616,1812
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 122
+#define MATRIX22_STRASSEN_THRESHOLD 11
+#define HGCD_THRESHOLD 118
+#define HGCD_APPR_THRESHOLD 167
+#define HGCD_REDUCE_THRESHOLD 1679
#define GCD_DC_THRESHOLD 339
-#define GCDEXT_DC_THRESHOLD 278
-#define JACOBI_BASE_METHOD 1
+#define GCDEXT_DC_THRESHOLD 273
+#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 17
-#define GET_STR_PRECOMPUTE_THRESHOLD 38
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 27
#define SET_STR_DC_THRESHOLD 781
#define SET_STR_PRECOMPUTE_THRESHOLD 1505
+
+#define FAC_DSC_THRESHOLD 141
+#define FAC_ODD_THRESHOLD 34
diff --git a/mpn/powerpc64/mode32/p4/gmp-mparam.h b/mpn/powerpc64/mode32/p4/gmp-mparam.h
index 82401c86a..db296f0f2 100644
--- a/mpn/powerpc64/mode32/p4/gmp-mparam.h
+++ b/mpn/powerpc64/mode32/p4/gmp-mparam.h
@@ -21,38 +21,42 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DIVREM_1_NORM_THRESHOLD 0 /* always */
#define DIVREM_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1_1P_METHOD 2
+#define MOD_1_1P_METHOD 1
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 6
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 56
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 46
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 14
#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_2_PI2_THRESHOLD 12
#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 92
+#define BMOD_1_TO_MOD_1_THRESHOLD 90
#define MUL_TOOM22_THRESHOLD 16
#define MUL_TOOM33_THRESHOLD 57
-#define MUL_TOOM44_THRESHOLD 88
-#define MUL_TOOM6H_THRESHOLD 124
-#define MUL_TOOM8H_THRESHOLD 175
+#define MUL_TOOM44_THRESHOLD 94
+#define MUL_TOOM6H_THRESHOLD 125
+#define MUL_TOOM8H_THRESHOLD 187
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 61
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 56
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 70
#define SQR_BASECASE_THRESHOLD 4
#define SQR_TOOM2_THRESHOLD 30
-#define SQR_TOOM3_THRESHOLD 90
-#define SQR_TOOM4_THRESHOLD 142
-#define SQR_TOOM6_THRESHOLD 181
+#define SQR_TOOM3_THRESHOLD 98
+#define SQR_TOOM4_THRESHOLD 136
+#define SQR_TOOM6_THRESHOLD 180
#define SQR_TOOM8_THRESHOLD 272
-#define MULMOD_BNM1_THRESHOLD 10
-#define SQRMOD_BNM1_THRESHOLD 14
+#define MULMID_TOOM42_THRESHOLD 34
+
+#define MULMOD_BNM1_THRESHOLD 12
+#define SQRMOD_BNM1_THRESHOLD 13
#define MUL_FFT_MODF_THRESHOLD 244 /* k = 5 */
#define MUL_FFT_TABLE3 \
@@ -84,7 +88,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 831,11}, { 223,10}, { 447,13}, { 8192,14}, \
{ 16384,15}, { 32768,16} }
#define MUL_FFT_TABLE3_SIZE 106
-#define MUL_FFT_THRESHOLD 2240
+#define MUL_FFT_THRESHOLD 2688
#define SQR_FFT_MODF_THRESHOLD 212 /* k = 5 */
#define SQR_FFT_TABLE3 \
@@ -119,19 +123,19 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 55
-#define MULLO_MUL_N_THRESHOLD 4392
+#define MULLO_MUL_N_THRESHOLD 5240
-#define DC_DIV_QR_THRESHOLD 29
-#define DC_DIVAPPR_Q_THRESHOLD 109
-#define DC_BDIV_QR_THRESHOLD 55
+#define DC_DIV_QR_THRESHOLD 27
+#define DC_DIVAPPR_Q_THRESHOLD 108
+#define DC_BDIV_QR_THRESHOLD 51
#define DC_BDIV_Q_THRESHOLD 126
-#define INV_MULMOD_BNM1_THRESHOLD 30
-#define INV_NEWTON_THRESHOLD 123
+#define INV_MULMOD_BNM1_THRESHOLD 38
+#define INV_NEWTON_THRESHOLD 129
#define INV_APPR_THRESHOLD 116
-#define BINV_NEWTON_THRESHOLD 214
-#define REDC_1_TO_REDC_N_THRESHOLD 52
+#define BINV_NEWTON_THRESHOLD 198
+#define REDC_1_TO_REDC_N_THRESHOLD 51
#define MU_DIV_QR_THRESHOLD 807
#define MU_DIVAPPR_Q_THRESHOLD 807
@@ -139,13 +143,20 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MU_BDIV_QR_THRESHOLD 748
#define MU_BDIV_Q_THRESHOLD 872
-#define MATRIX22_STRASSEN_THRESHOLD 9
-#define HGCD_THRESHOLD 112
+#define POWM_SEC_TABLE 4,35,152,780,2145
+
+#define MATRIX22_STRASSEN_THRESHOLD 11
+#define HGCD_THRESHOLD 104
+#define HGCD_APPR_THRESHOLD 118
+#define HGCD_REDUCE_THRESHOLD 1329
#define GCD_DC_THRESHOLD 268
-#define GCDEXT_DC_THRESHOLD 237
+#define GCDEXT_DC_THRESHOLD 241
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 9
#define GET_STR_PRECOMPUTE_THRESHOLD 18
-#define SET_STR_DC_THRESHOLD 1035
+#define SET_STR_DC_THRESHOLD 996
#define SET_STR_PRECOMPUTE_THRESHOLD 2170
+
+#define FAC_DSC_THRESHOLD 442
+#define FAC_ODD_THRESHOLD 26
diff --git a/mpn/powerpc64/mode64/p3/gmp-mparam.h b/mpn/powerpc64/mode64/p3/gmp-mparam.h
index cf1d8ca47..03c07e43d 100644
--- a/mpn/powerpc64/mode64/p3/gmp-mparam.h
+++ b/mpn/powerpc64/mode64/p3/gmp-mparam.h
@@ -25,7 +25,7 @@ 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 7
#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 14
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 18
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 17
#define USE_PREINV_DIVREM_1 0
@@ -40,9 +40,10 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM8H_THRESHOLD 139
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 49
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 48
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 47
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 49
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 49
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 34
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 14
@@ -56,8 +57,6 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMOD_BNM1_THRESHOLD 8
#define SQRMOD_BNM1_THRESHOLD 10
-#define POWM_SEC_TABLE 2,23,127,502,1421
-
#define MUL_FFT_MODF_THRESHOLD 220 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 220, 5}, { 9, 6}, { 5, 5}, { 11, 6}, \
@@ -130,14 +129,14 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 2
#define MULLO_DC_THRESHOLD 27
-#define MULLO_MUL_N_THRESHOLD 2367
+#define MULLO_MUL_N_THRESHOLD 2511
-#define DC_DIV_QR_THRESHOLD 26
+#define DC_DIV_QR_THRESHOLD 23
#define DC_DIVAPPR_Q_THRESHOLD 87
#define DC_BDIV_QR_THRESHOLD 27
-#define DC_BDIV_Q_THRESHOLD 62
+#define DC_BDIV_Q_THRESHOLD 60
-#define INV_MULMOD_BNM1_THRESHOLD 34
+#define INV_MULMOD_BNM1_THRESHOLD 27
#define INV_NEWTON_THRESHOLD 91
#define INV_APPR_THRESHOLD 91
@@ -146,19 +145,24 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MU_DIV_QR_THRESHOLD 551
#define MU_DIVAPPR_Q_THRESHOLD 551
-#define MUPI_DIV_QR_THRESHOLD 50
-#define MU_BDIV_QR_THRESHOLD 474
+#define MUPI_DIV_QR_THRESHOLD 42
+#define MU_BDIV_QR_THRESHOLD 483
#define MU_BDIV_Q_THRESHOLD 492
+#define POWM_SEC_TABLE 2,23,140,556,713,746
+
#define MATRIX22_STRASSEN_THRESHOLD 8
-#define HGCD_THRESHOLD 53
-#define HGCD_APPR_THRESHOLD 55
+#define HGCD_THRESHOLD 56
+#define HGCD_APPR_THRESHOLD 51
#define HGCD_REDUCE_THRESHOLD 688
-#define GCD_DC_THRESHOLD 148
-#define GCDEXT_DC_THRESHOLD 118
+#define GCD_DC_THRESHOLD 333
+#define GCDEXT_DC_THRESHOLD 126
#define JACOBI_BASE_METHOD 1
-#define GET_STR_DC_THRESHOLD 16
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
+#define GET_STR_DC_THRESHOLD 17
+#define GET_STR_PRECOMPUTE_THRESHOLD 28
#define SET_STR_DC_THRESHOLD 375
#define SET_STR_PRECOMPUTE_THRESHOLD 812
+
+#define FAC_DSC_THRESHOLD 351
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/powerpc64/mode64/p4/gmp-mparam.h b/mpn/powerpc64/mode64/p4/gmp-mparam.h
index 317bc94d6..3b4911922 100644
--- a/mpn/powerpc64/mode64/p4/gmp-mparam.h
+++ b/mpn/powerpc64/mode64/p4/gmp-mparam.h
@@ -23,7 +23,7 @@ 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 7
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 20
@@ -33,31 +33,30 @@ 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 37
-#define MUL_TOOM22_THRESHOLD 17
-#define MUL_TOOM33_THRESHOLD 56
-#define MUL_TOOM44_THRESHOLD 88
-#define MUL_TOOM6H_THRESHOLD 202
+#define MUL_TOOM22_THRESHOLD 18
+#define MUL_TOOM33_THRESHOLD 53
+#define MUL_TOOM44_THRESHOLD 106
+#define MUL_TOOM6H_THRESHOLD 180
#define MUL_TOOM8H_THRESHOLD 309
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 62
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 61
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 92
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 51
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 79
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 24
+#define SQR_TOOM2_THRESHOLD 28
#define SQR_TOOM3_THRESHOLD 73
-#define SQR_TOOM4_THRESHOLD 214
-#define SQR_TOOM6_THRESHOLD 254
-#define SQR_TOOM8_THRESHOLD 430
+#define SQR_TOOM4_THRESHOLD 136
+#define SQR_TOOM6_THRESHOLD 194
+#define SQR_TOOM8_THRESHOLD 272
#define MULMID_TOOM42_THRESHOLD 32
-#define MULMOD_BNM1_THRESHOLD 12
+#define MULMOD_BNM1_THRESHOLD 11
#define SQRMOD_BNM1_THRESHOLD 16
-#define POWM_SEC_TABLE 6,47,347,1036,2826
-
#define MUL_FFT_MODF_THRESHOLD 372 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 372, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
@@ -88,9 +87,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
{4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 106
-#define MUL_FFT_THRESHOLD 7424
+#define MUL_FFT_THRESHOLD 3264
-#define SQR_FFT_MODF_THRESHOLD 280 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 284 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 280, 5}, { 13, 6}, { 7, 5}, { 15, 6}, \
{ 8, 5}, { 17, 6}, { 19, 7}, { 10, 6}, \
@@ -122,36 +121,41 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_THRESHOLD 2752
#define MULLO_BASECASE_THRESHOLD 3
-#define MULLO_DC_THRESHOLD 36
-#define MULLO_MUL_N_THRESHOLD 13463
+#define MULLO_DC_THRESHOLD 40
+#define MULLO_MUL_N_THRESHOLD 6440
#define DC_DIV_QR_THRESHOLD 43
-#define DC_DIVAPPR_Q_THRESHOLD 158
-#define DC_BDIV_QR_THRESHOLD 46
-#define DC_BDIV_Q_THRESHOLD 108
+#define DC_DIVAPPR_Q_THRESHOLD 166
+#define DC_BDIV_QR_THRESHOLD 47
+#define DC_BDIV_Q_THRESHOLD 112
-#define INV_MULMOD_BNM1_THRESHOLD 67
-#define INV_NEWTON_THRESHOLD 177
-#define INV_APPR_THRESHOLD 164
+#define INV_MULMOD_BNM1_THRESHOLD 50
+#define INV_NEWTON_THRESHOLD 181
+#define INV_APPR_THRESHOLD 165
#define BINV_NEWTON_THRESHOLD 214
#define REDC_1_TO_REDC_N_THRESHOLD 55
#define MU_DIV_QR_THRESHOLD 998
#define MU_DIVAPPR_Q_THRESHOLD 1017
-#define MUPI_DIV_QR_THRESHOLD 74
+#define MUPI_DIV_QR_THRESHOLD 84
#define MU_BDIV_QR_THRESHOLD 855
-#define MU_BDIV_Q_THRESHOLD 998
-
-#define MATRIX22_STRASSEN_THRESHOLD 11
-#define HGCD_THRESHOLD 103
-#define HGCD_APPR_THRESHOLD 110
-#define HGCD_REDUCE_THRESHOLD 1962
-#define GCD_DC_THRESHOLD 318
-#define GCDEXT_DC_THRESHOLD 242
+#define MU_BDIV_Q_THRESHOLD 1017
+
+#define POWM_SEC_TABLE 4,32,327,1100,2826
+
+#define MATRIX22_STRASSEN_THRESHOLD 12
+#define HGCD_THRESHOLD 109
+#define HGCD_APPR_THRESHOLD 107
+#define HGCD_REDUCE_THRESHOLD 2121
+#define GCD_DC_THRESHOLD 348
+#define GCDEXT_DC_THRESHOLD 246
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_DC_THRESHOLD 11
#define GET_STR_PRECOMPUTE_THRESHOLD 23
#define SET_STR_DC_THRESHOLD 650
-#define SET_STR_PRECOMPUTE_THRESHOLD 1781
+#define SET_STR_PRECOMPUTE_THRESHOLD 1713
+
+#define FAC_DSC_THRESHOLD 562
+#define FAC_ODD_THRESHOLD 23
diff --git a/mpn/powerpc64/mode64/p6/gmp-mparam.h b/mpn/powerpc64/mode64/p6/gmp-mparam.h
index 5392138f1..b6e10df2f 100644
--- a/mpn/powerpc64/mode64/p6/gmp-mparam.h
+++ b/mpn/powerpc64/mode64/p6/gmp-mparam.h
@@ -21,7 +21,7 @@ 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
-/* POWER6 (kolga.bibsys.no) */
+/* 3500 MHz POWER6 (kolga.bibsys.no) */
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
@@ -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 3
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 12
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 5
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
#define USE_PREINV_DIVREM_1 0
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
@@ -37,30 +37,29 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM22_THRESHOLD 20
#define MUL_TOOM33_THRESHOLD 50
-#define MUL_TOOM44_THRESHOLD 112
+#define MUL_TOOM44_THRESHOLD 106
#define MUL_TOOM6H_THRESHOLD 274
#define MUL_TOOM8H_THRESHOLD 339
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 62
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 76
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 78
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 66
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 88
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 24
#define SQR_TOOM3_THRESHOLD 49
-#define SQR_TOOM4_THRESHOLD 136
+#define SQR_TOOM4_THRESHOLD 130
#define SQR_TOOM6_THRESHOLD 226
-#define SQR_TOOM8_THRESHOLD 393
+#define SQR_TOOM8_THRESHOLD 272
#define MULMID_TOOM42_THRESHOLD 36
#define MULMOD_BNM1_THRESHOLD 14
#define SQRMOD_BNM1_THRESHOLD 14
-#define POWM_SEC_TABLE 4,23,213,840,2618
-
-#define MUL_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 340, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
{ 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
@@ -85,7 +84,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_FFT_TABLE3_SIZE 79
#define MUL_FFT_THRESHOLD 3520
-#define SQR_FFT_MODF_THRESHOLD 280 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 308 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 280, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
{ 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
@@ -108,39 +107,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 65536,17}, { 131072,18}, { 262144,19}, { 524288,20}, \
{1048576,21}, {2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 80
-#define SQR_FFT_THRESHOLD 2368
+#define SQR_FFT_THRESHOLD 2752
#define MULLO_BASECASE_THRESHOLD 5
-#define MULLO_DC_THRESHOLD 61
-#define MULLO_MUL_N_THRESHOLD 3271
+#define MULLO_DC_THRESHOLD 62
+#define MULLO_MUL_N_THRESHOLD 2995
#define DC_DIV_QR_THRESHOLD 59
#define DC_DIVAPPR_Q_THRESHOLD 200
#define DC_BDIV_QR_THRESHOLD 70
#define DC_BDIV_Q_THRESHOLD 168
-#define INV_MULMOD_BNM1_THRESHOLD 61
-#define INV_NEWTON_THRESHOLD 166
+#define INV_MULMOD_BNM1_THRESHOLD 53
+#define INV_NEWTON_THRESHOLD 170
#define INV_APPR_THRESHOLD 166
-#define BINV_NEWTON_THRESHOLD 222
-#define REDC_1_TO_REDC_N_THRESHOLD 63
+#define BINV_NEWTON_THRESHOLD 220
+#define REDC_1_TO_REDC_N_THRESHOLD 67
#define MU_DIV_QR_THRESHOLD 998
-#define MU_DIVAPPR_Q_THRESHOLD 979
-#define MUPI_DIV_QR_THRESHOLD 59
+#define MU_DIVAPPR_Q_THRESHOLD 942
+#define MUPI_DIV_QR_THRESHOLD 57
#define MU_BDIV_QR_THRESHOLD 889
#define MU_BDIV_Q_THRESHOLD 1078
+#define POWM_SEC_TABLE 4,26,216,804,1731
+
#define MATRIX22_STRASSEN_THRESHOLD 13
-#define HGCD_THRESHOLD 109
-#define HGCD_APPR_THRESHOLD 108
-#define HGCD_REDUCE_THRESHOLD 1052
-#define GCD_DC_THRESHOLD 501
-#define GCDEXT_DC_THRESHOLD 249
+#define HGCD_THRESHOLD 106
+#define HGCD_APPR_THRESHOLD 109
+#define HGCD_REDUCE_THRESHOLD 2205
+#define GCD_DC_THRESHOLD 492
+#define GCDEXT_DC_THRESHOLD 327
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 16
-#define GET_STR_PRECOMPUTE_THRESHOLD 29
-#define SET_STR_DC_THRESHOLD 532
-#define SET_STR_PRECOMPUTE_THRESHOLD 1639
+#define GET_STR_PRECOMPUTE_THRESHOLD 28
+#define SET_STR_DC_THRESHOLD 537
+#define SET_STR_PRECOMPUTE_THRESHOLD 1576
+
+#define FAC_DSC_THRESHOLD 426
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/powerpc64/mode64/p7/gmp-mparam.h b/mpn/powerpc64/mode64/p7/gmp-mparam.h
index 02603c525..a2a8f7317 100644
--- a/mpn/powerpc64/mode64/p7/gmp-mparam.h
+++ b/mpn/powerpc64/mode64/p7/gmp-mparam.h
@@ -25,42 +25,41 @@ 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 6
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 8
#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 7
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 18
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 12
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 33
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 17
#define USE_PREINV_DIVREM_1 0
#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 28
+#define BMOD_1_TO_MOD_1_THRESHOLD 38
#define MUL_TOOM22_THRESHOLD 22
#define MUL_TOOM33_THRESHOLD 73
-#define MUL_TOOM44_THRESHOLD 202
-#define MUL_TOOM6H_THRESHOLD 298
-#define MUL_TOOM8H_THRESHOLD 406
+#define MUL_TOOM44_THRESHOLD 154
+#define MUL_TOOM6H_THRESHOLD 270
+#define MUL_TOOM8H_THRESHOLD 369
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 81
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 143
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 135
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 141
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 122
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 112
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 36
+#define SQR_TOOM2_THRESHOLD 30
#define SQR_TOOM3_THRESHOLD 109
-#define SQR_TOOM4_THRESHOLD 202
+#define SQR_TOOM4_THRESHOLD 178
#define SQR_TOOM6_THRESHOLD 303
-#define SQR_TOOM8_THRESHOLD 399
+#define SQR_TOOM8_THRESHOLD 357
#define MULMID_TOOM42_THRESHOLD 62
-#define MULMOD_BNM1_THRESHOLD 15
-#define SQRMOD_BNM1_THRESHOLD 16
+#define MULMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 18
-#define POWM_SEC_TABLE 6,65,342,1465
-
-#define MUL_FFT_MODF_THRESHOLD 436 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 444 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 436, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
{ 21, 7}, { 11, 6}, { 23, 7}, { 12, 6}, \
@@ -90,9 +89,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
{4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 106
-#define MUL_FFT_THRESHOLD 4736
+#define MUL_FFT_THRESHOLD 5248
-#define SQR_FFT_MODF_THRESHOLD 308 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 308, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
{ 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
@@ -121,39 +120,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
{2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 103
-#define SQR_FFT_THRESHOLD 3264
+#define SQR_FFT_THRESHOLD 3712
-#define MULLO_BASECASE_THRESHOLD 3
-#define MULLO_DC_THRESHOLD 23
-#define MULLO_MUL_N_THRESHOLD 9174
+#define MULLO_BASECASE_THRESHOLD 5
+#define MULLO_DC_THRESHOLD 33
+#define MULLO_MUL_N_THRESHOLD 10323
-#define DC_DIV_QR_THRESHOLD 30
-#define DC_DIVAPPR_Q_THRESHOLD 124
-#define DC_BDIV_QR_THRESHOLD 66
-#define DC_BDIV_Q_THRESHOLD 160
+#define DC_DIV_QR_THRESHOLD 57
+#define DC_DIVAPPR_Q_THRESHOLD 185
+#define DC_BDIV_QR_THRESHOLD 63
+#define DC_BDIV_Q_THRESHOLD 158
-#define INV_MULMOD_BNM1_THRESHOLD 81
-#define INV_NEWTON_THRESHOLD 165
-#define INV_APPR_THRESHOLD 133
+#define INV_MULMOD_BNM1_THRESHOLD 58
+#define INV_NEWTON_THRESHOLD 212
+#define INV_APPR_THRESHOLD 187
-#define BINV_NEWTON_THRESHOLD 300
-#define REDC_1_TO_REDC_N_THRESHOLD 76
+#define BINV_NEWTON_THRESHOLD 276
+#define REDC_1_TO_REDC_N_THRESHOLD 63
-#define MU_DIV_QR_THRESHOLD 1470
+#define MU_DIV_QR_THRESHOLD 1442
#define MU_DIVAPPR_Q_THRESHOLD 1442
-#define MUPI_DIV_QR_THRESHOLD 58
-#define MU_BDIV_QR_THRESHOLD 1470
-#define MU_BDIV_Q_THRESHOLD 1499
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 124
-#define HGCD_APPR_THRESHOLD 155
-#define HGCD_REDUCE_THRESHOLD 3134
-#define GCD_DC_THRESHOLD 492
-#define GCDEXT_DC_THRESHOLD 333
+#define MUPI_DIV_QR_THRESHOLD 91
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1442
+
+#define POWM_SEC_TABLE 3,38,270,1487
+
+#define MATRIX22_STRASSEN_THRESHOLD 14
+#define HGCD_THRESHOLD 138
+#define HGCD_APPR_THRESHOLD 157
+#define HGCD_REDUCE_THRESHOLD 2578
+#define GCD_DC_THRESHOLD 573
+#define GCDEXT_DC_THRESHOLD 440
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 11
-#define GET_STR_PRECOMPUTE_THRESHOLD 17
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 32
#define SET_STR_DC_THRESHOLD 1517
-#define SET_STR_PRECOMPUTE_THRESHOLD 3421
+#define SET_STR_PRECOMPUTE_THRESHOLD 3007
+
+#define FAC_DSC_THRESHOLD 680
+#define FAC_ODD_THRESHOLD 24
diff --git a/mpn/sparc32/ultrasparct1/gmp-mparam.h b/mpn/sparc32/ultrasparct1/gmp-mparam.h
new file mode 100644
index 000000000..2342e1498
--- /dev/null
+++ b/mpn/sparc32/ultrasparct1/gmp-mparam.h
@@ -0,0 +1,143 @@
+/* UltraSPARC T 32-bit gmp-mparam.h -- Compiler/machine parameter header file.
+
+Copyright 1991, 1993, 1994, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+
+This file is part of the GNU MP Library.
+
+The GNU MP Library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+The GNU MP Library 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 Lesser General Public
+License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
+
+#define DIVREM_1_NORM_THRESHOLD 0 /* always */
+#define DIVREM_1_UNNORM_THRESHOLD 3
+#define MOD_1_1P_METHOD 2
+#define MOD_1_NORM_THRESHOLD 0 /* always */
+#define MOD_1_UNNORM_THRESHOLD 0 /* always */
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 9
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 10
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 21
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 22
+#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DIVEXACT_1_THRESHOLD 0 /* always */
+#define BMOD_1_TO_MOD_1_THRESHOLD 35
+
+#define MUL_TOOM22_THRESHOLD 14
+#define MUL_TOOM33_THRESHOLD 98
+#define MUL_TOOM44_THRESHOLD 166
+#define MUL_TOOM6H_THRESHOLD 226
+#define MUL_TOOM8H_THRESHOLD 333
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 139
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 97
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 98
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 120
+
+#define SQR_BASECASE_THRESHOLD 6
+#define SQR_TOOM2_THRESHOLD 34
+#define SQR_TOOM3_THRESHOLD 110
+#define SQR_TOOM4_THRESHOLD 178
+#define SQR_TOOM6_THRESHOLD 240
+#define SQR_TOOM8_THRESHOLD 333
+
+#define MULMID_TOOM42_THRESHOLD 22
+
+#define MULMOD_BNM1_THRESHOLD 9
+#define SQRMOD_BNM1_THRESHOLD 13
+
+#define MUL_FFT_MODF_THRESHOLD 280 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 280, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
+ { 9, 5}, { 19, 6}, { 13, 7}, { 7, 6}, \
+ { 17, 7}, { 9, 6}, { 20, 7}, { 11, 6}, \
+ { 23, 7}, { 13, 8}, { 7, 7}, { 21, 8}, \
+ { 11, 7}, { 25, 9}, { 7, 8}, { 15, 7}, \
+ { 33, 8}, { 19, 7}, { 41, 8}, { 23, 7}, \
+ { 49, 8}, { 27, 9}, { 15, 8}, { 31, 7}, \
+ { 63, 8}, { 39, 9}, { 23, 8}, { 47,10}, \
+ { 15, 9}, { 31, 8}, { 67, 9}, { 39, 8}, \
+ { 79, 9}, { 47,10}, { 31, 9}, { 79,10}, \
+ { 47,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255,10}, { 79, 9}, { 159, 8}, { 319,10}, \
+ { 95, 9}, { 191, 8}, { 383,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 143, 9}, { 287,10}, \
+ { 159, 9}, { 319,10}, { 175,11}, { 95,10}, \
+ { 191, 9}, { 383,12}, { 4096,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16} }
+#define MUL_FFT_TABLE3_SIZE 66
+#define MUL_FFT_THRESHOLD 3712
+
+#define SQR_FFT_MODF_THRESHOLD 240 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 240, 5}, { 15, 6}, { 8, 5}, { 17, 6}, \
+ { 13, 7}, { 7, 6}, { 17, 7}, { 9, 6}, \
+ { 20, 7}, { 11, 6}, { 23, 7}, { 13, 8}, \
+ { 7, 7}, { 19, 8}, { 11, 7}, { 25, 9}, \
+ { 7, 8}, { 15, 7}, { 33, 8}, { 19, 7}, \
+ { 39, 8}, { 23, 7}, { 47, 8}, { 27, 9}, \
+ { 15, 8}, { 39, 9}, { 23, 8}, { 47,10}, \
+ { 15, 9}, { 31, 8}, { 63, 9}, { 39, 8}, \
+ { 79, 9}, { 47,10}, { 31, 9}, { 63, 8}, \
+ { 127, 9}, { 71, 8}, { 143, 9}, { 79,10}, \
+ { 47,11}, { 31,10}, { 63, 9}, { 127, 8}, \
+ { 255, 9}, { 143,10}, { 79, 9}, { 159, 8}, \
+ { 319, 9}, { 175,10}, { 95, 9}, { 191, 8}, \
+ { 383, 9}, { 207,11}, { 63,10}, { 127, 9}, \
+ { 255,10}, { 143, 9}, { 287,10}, { 159, 9}, \
+ { 319,10}, { 175,11}, { 95,10}, { 191, 9}, \
+ { 383,10}, { 207,12}, { 4096,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 70
+#define SQR_FFT_THRESHOLD 2624
+
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 51
+#define MULLO_MUL_N_THRESHOLD 6633
+
+#define DC_DIV_QR_THRESHOLD 51
+#define DC_DIVAPPR_Q_THRESHOLD 202
+#define DC_BDIV_QR_THRESHOLD 47
+#define DC_BDIV_Q_THRESHOLD 124
+
+#define INV_MULMOD_BNM1_THRESHOLD 26
+#define INV_NEWTON_THRESHOLD 266
+#define INV_APPR_THRESHOLD 222
+
+#define BINV_NEWTON_THRESHOLD 296
+#define REDC_1_TO_REDC_N_THRESHOLD 59
+
+#define MU_DIV_QR_THRESHOLD 1334
+#define MU_DIVAPPR_Q_THRESHOLD 1499
+#define MUPI_DIV_QR_THRESHOLD 116
+#define MU_BDIV_QR_THRESHOLD 1057
+#define MU_BDIV_Q_THRESHOLD 1334
+
+#define POWM_SEC_TABLE 6,35,213,724,2618
+
+#define MATRIX22_STRASSEN_THRESHOLD 15
+#define HGCD_THRESHOLD 84
+#define HGCD_APPR_THRESHOLD 101
+#define HGCD_REDUCE_THRESHOLD 1437
+#define GCD_DC_THRESHOLD 372
+#define GCDEXT_DC_THRESHOLD 253
+#define JACOBI_BASE_METHOD 2
+
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 27
+#define SET_STR_DC_THRESHOLD 399
+#define SET_STR_PRECOMPUTE_THRESHOLD 885
+
+#define FAC_DSC_THRESHOLD 179
+#define FAC_ODD_THRESHOLD 29
diff --git a/mpn/sparc32/v9/gmp-mparam.h b/mpn/sparc32/v9/gmp-mparam.h
index fa3891064..40da333cf 100644
--- a/mpn/sparc32/v9/gmp-mparam.h
+++ b/mpn/sparc32/v9/gmp-mparam.h
@@ -22,94 +22,136 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define BYTES_PER_MP_LIMB 4
#define DIVREM_1_NORM_THRESHOLD 3
-#define DIVREM_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
-#define MOD_1_NORM_THRESHOLD 4
-#define MOD_1_UNNORM_THRESHOLD 13
-#define MOD_1N_TO_MOD_1_1_THRESHOLD MP_SIZE_T_MAX /* never */
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 10
+#define DIVREM_1_UNNORM_THRESHOLD 4
+#define MOD_1_1P_METHOD 2
+#define MOD_1_NORM_THRESHOLD 3
+#define MOD_1_UNNORM_THRESHOLD 4
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 11
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 11
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 61
#define USE_PREINV_DIVREM_1 1
+#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always */
-#define BMOD_1_TO_MOD_1_THRESHOLD 16
-
-#define MUL_TOOM22_THRESHOLD 28
-#define MUL_TOOM33_THRESHOLD 93
-#define MUL_TOOM44_THRESHOLD 166
-#define MUL_TOOM6H_THRESHOLD 204
-#define MUL_TOOM8H_THRESHOLD 434
-
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 102
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 160
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 114
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 101
-
-#define SQR_BASECASE_THRESHOLD 8
-#define SQR_TOOM2_THRESHOLD 62
-#define SQR_TOOM3_THRESHOLD 110
-#define SQR_TOOM4_THRESHOLD 274
-#define SQR_TOOM6_THRESHOLD 0
-#define SQR_TOOM8_THRESHOLD 567
-
-#define MULMOD_BNM1_THRESHOLD 14
-#define SQRMOD_BNM1_THRESHOLD 20
-
-#define MUL_FFT_MODF_THRESHOLD 240 /* k = 5 */
+#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
+
+#define MUL_TOOM22_THRESHOLD 27
+#define MUL_TOOM33_THRESHOLD 112
+#define MUL_TOOM44_THRESHOLD 124
+#define MUL_TOOM6H_THRESHOLD 160
+#define MUL_TOOM8H_THRESHOLD 242
+
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 69
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 93
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 71
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 53
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 70
+
+#define SQR_BASECASE_THRESHOLD 5
+#define SQR_TOOM2_THRESHOLD 64
+#define SQR_TOOM3_THRESHOLD 85
+#define SQR_TOOM4_THRESHOLD 158
+#define SQR_TOOM6_THRESHOLD 185
+#define SQR_TOOM8_THRESHOLD 224
+
+#define MULMID_TOOM42_THRESHOLD 64
+
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 16
+
+#define MUL_FFT_MODF_THRESHOLD 212 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 240, 5}, { 19, 6}, { 17, 7}, { 9, 6}, \
- { 20, 7}, { 11, 6}, { 23, 7}, { 15, 6}, \
- { 31, 7}, { 25, 8}, { 15, 7}, { 33, 8}, \
- { 19, 7}, { 39, 8}, { 23, 7}, { 53, 8}, \
- { 27, 9}, { 15, 8}, { 31, 7}, { 65, 8}, \
- { 35, 7}, { 71, 8}, { 39, 9}, { 512,10}, \
- { 1024,11}, { 2048,12}, { 4096,13}, { 8192,14}, \
+ { { 212, 5}, { 11, 6}, { 7, 5}, { 17, 6}, \
+ { 9, 5}, { 20, 6}, { 13, 7}, { 7, 6}, \
+ { 16, 7}, { 9, 6}, { 20, 7}, { 13, 8}, \
+ { 7, 7}, { 19, 8}, { 11, 7}, { 25, 9}, \
+ { 7, 8}, { 15, 7}, { 31, 8}, { 19, 7}, \
+ { 39, 8}, { 27, 9}, { 15, 8}, { 39, 9}, \
+ { 23,10}, { 15, 9}, { 31, 8}, { 67, 9}, \
+ { 39, 8}, { 79, 7}, { 159, 8}, { 83, 7}, \
+ { 175, 8}, { 91, 9}, { 47, 8}, { 95,10}, \
+ { 31, 9}, { 63, 8}, { 127, 9}, { 71, 8}, \
+ { 143, 9}, { 79, 8}, { 159, 9}, { 87,10}, \
+ { 47, 9}, { 95,11}, { 31,10}, { 63, 9}, \
+ { 127, 8}, { 255, 9}, { 143,10}, { 79, 9}, \
+ { 175,10}, { 95, 9}, { 191, 8}, { 415,10}, \
+ { 111,11}, { 63,10}, { 127, 9}, { 271,10}, \
+ { 143, 9}, { 287, 8}, { 575,10}, { 175,11}, \
+ { 95,10}, { 191, 9}, { 415, 8}, { 831,10}, \
+ { 223,12}, { 63,11}, { 127,10}, { 287, 9}, \
+ { 575,11}, { 159,10}, { 319, 9}, { 639, 8}, \
+ { 1407,11}, { 191,10}, { 415, 9}, { 831,11}, \
+ { 223,10}, { 447,12}, { 4096,13}, { 8192,14}, \
{ 16384,15}, { 32768,16} }
-#define MUL_FFT_TABLE3_SIZE 30
-#define MUL_FFT_THRESHOLD 2112
+#define MUL_FFT_TABLE3_SIZE 86
+#define MUL_FFT_THRESHOLD 2688
-#define SQR_FFT_MODF_THRESHOLD 248 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 180 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 248, 5}, { 8, 4}, { 17, 5}, { 19, 6}, \
- { 10, 5}, { 21, 6}, { 20, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \
- { 15, 7}, { 33, 8}, { 19, 7}, { 39, 8}, \
- { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \
- { 31, 7}, { 63, 8}, { 35, 7}, { 73, 8}, \
- { 256, 9}, { 512,10}, { 1024,11}, { 2048,12}, \
- { 4096,13}, { 8192,14}, { 16384,15}, { 32768,16} }
-#define SQR_FFT_TABLE3_SIZE 32
+ { { 180, 5}, { 6, 4}, { 13, 5}, { 13, 6}, \
+ { 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
+ { 17, 7}, { 9, 6}, { 20, 7}, { 11, 6}, \
+ { 23, 7}, { 13, 8}, { 7, 7}, { 19, 8}, \
+ { 11, 7}, { 25, 9}, { 7, 8}, { 15, 7}, \
+ { 31, 8}, { 23, 9}, { 15, 8}, { 39, 9}, \
+ { 23,10}, { 15, 9}, { 31, 8}, { 63, 7}, \
+ { 127, 9}, { 47,10}, { 31, 9}, { 63, 8}, \
+ { 127, 9}, { 71, 8}, { 143, 7}, { 287, 6}, \
+ { 575,10}, { 47, 9}, { 95,11}, { 31,10}, \
+ { 63, 9}, { 127, 8}, { 255, 9}, { 143,10}, \
+ { 79, 9}, { 159, 8}, { 319, 9}, { 175, 8}, \
+ { 351, 7}, { 703,10}, { 95, 9}, { 191, 8}, \
+ { 383, 9}, { 207,10}, { 111,11}, { 63,10}, \
+ { 127, 9}, { 255,10}, { 143, 9}, { 287, 8}, \
+ { 575,10}, { 159, 9}, { 319,10}, { 175, 9}, \
+ { 351, 8}, { 703,11}, { 95,10}, { 191, 9}, \
+ { 383,10}, { 207, 9}, { 415, 8}, { 831,12}, \
+ { 63,11}, { 127,10}, { 255, 9}, { 543,10}, \
+ { 287, 9}, { 575,11}, { 159,10}, { 319, 9}, \
+ { 639,10}, { 351, 9}, { 703, 8}, { 1407,11}, \
+ { 191,10}, { 415, 9}, { 831,11}, { 223,10}, \
+ { 447, 9}, { 895,12}, { 4096,13}, { 8192,14}, \
+ { 16384,15}, { 32768,16} }
+#define SQR_FFT_TABLE3_SIZE 94
#define SQR_FFT_THRESHOLD 1856
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 106
-#define MULLO_MUL_N_THRESHOLD 827
+#define MULLO_DC_THRESHOLD 145
+#define MULLO_MUL_N_THRESHOLD 5333
-#define DC_DIV_QR_THRESHOLD 123
-#define DC_DIVAPPR_Q_THRESHOLD 396
-#define DC_BDIV_QR_THRESHOLD 111
-#define DC_BDIV_Q_THRESHOLD 280
+#define DC_DIV_QR_THRESHOLD 78
+#define DC_DIVAPPR_Q_THRESHOLD 414
+#define DC_BDIV_QR_THRESHOLD 75
+#define DC_BDIV_Q_THRESHOLD 360
-#define INV_MULMOD_BNM1_THRESHOLD 54
+#define INV_MULMOD_BNM1_THRESHOLD 52
#define INV_NEWTON_THRESHOLD 351
-#define INV_APPR_THRESHOLD 351
+#define INV_APPR_THRESHOLD 354
-#define BINV_NEWTON_THRESHOLD 324
-#define REDC_1_TO_REDC_N_THRESHOLD 94
+#define BINV_NEWTON_THRESHOLD 234
+#define REDC_1_TO_REDC_N_THRESHOLD 60
-#define MU_DIV_QR_THRESHOLD 541
-#define MU_DIVAPPR_Q_THRESHOLD 792
-#define MUPI_DIV_QR_THRESHOLD 132
-#define MU_BDIV_QR_THRESHOLD 606
-#define MU_BDIV_Q_THRESHOLD 734
+#define MU_DIV_QR_THRESHOLD 855
+#define MU_DIVAPPR_Q_THRESHOLD 1099
+#define MUPI_DIV_QR_THRESHOLD 112
+#define MU_BDIV_QR_THRESHOLD 839
+#define MU_BDIV_Q_THRESHOLD 979
-#define MATRIX22_STRASSEN_THRESHOLD 13
-#define HGCD_THRESHOLD 148
-#define GCD_DC_THRESHOLD 386
-#define GCDEXT_DC_THRESHOLD 416
+#define POWM_SEC_TABLE 4,23,127,453,1679,2870
+
+#define MATRIX22_STRASSEN_THRESHOLD 9
+#define HGCD_THRESHOLD 87
+#define HGCD_APPR_THRESHOLD 126
+#define HGCD_REDUCE_THRESHOLD 1679
+#define GCD_DC_THRESHOLD 283
+#define GCDEXT_DC_THRESHOLD 189
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 18
-#define SET_STR_DC_THRESHOLD 537
-#define SET_STR_PRECOMPUTE_THRESHOLD 1576
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 28
+#define SET_STR_DC_THRESHOLD 262
+#define SET_STR_PRECOMPUTE_THRESHOLD 548
+
+#define FAC_DSC_THRESHOLD 156
+#define FAC_ODD_THRESHOLD 28
diff --git a/mpn/sparc64/ultrasparc34/gmp-mparam.h b/mpn/sparc64/ultrasparc34/gmp-mparam.h
index 8fe8ddc54..afd75aff7 100644
--- a/mpn/sparc64/ultrasparc34/gmp-mparam.h
+++ b/mpn/sparc64/ultrasparc34/gmp-mparam.h
@@ -28,11 +28,11 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1_1P_METHOD 2
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 9
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 10
#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 24
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 20
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 22
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 29
#define USE_PREINV_DIVREM_1 1
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always */
@@ -40,29 +40,28 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM22_THRESHOLD 30
#define MUL_TOOM33_THRESHOLD 93
-#define MUL_TOOM44_THRESHOLD 127
+#define MUL_TOOM44_THRESHOLD 139
#define MUL_TOOM6H_THRESHOLD 165
-#define MUL_TOOM8H_THRESHOLD 303
+#define MUL_TOOM8H_THRESHOLD 278
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 93
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 95
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 86
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 105
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 85
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 50
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 68
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 67
-#define SQR_BASECASE_THRESHOLD 10
+#define SQR_BASECASE_THRESHOLD 9
#define SQR_TOOM2_THRESHOLD 72
-#define SQR_TOOM3_THRESHOLD 97
-#define SQR_TOOM4_THRESHOLD 179
-#define SQR_TOOM6_THRESHOLD 191
+#define SQR_TOOM3_THRESHOLD 94
+#define SQR_TOOM4_THRESHOLD 184
+#define SQR_TOOM6_THRESHOLD 0 /* always */
#define SQR_TOOM8_THRESHOLD 339
-#define MULMID_TOOM42_THRESHOLD 42
+#define MULMID_TOOM42_THRESHOLD 40
-#define MULMOD_BNM1_THRESHOLD 16
+#define MULMOD_BNM1_THRESHOLD 13
#define SQRMOD_BNM1_THRESHOLD 9
-#define POWM_SEC_TABLE 4,23,130,780,1812,1926
-
#define MUL_FFT_MODF_THRESHOLD 212 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 212, 5}, { 13, 6}, { 17, 7}, { 9, 6}, \
@@ -109,9 +108,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
{4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 170
-#define MUL_FFT_THRESHOLD 2240
+#define MUL_FFT_THRESHOLD 1984
-#define SQR_FFT_MODF_THRESHOLD 244 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 236 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 244, 5}, { 8, 4}, { 17, 5}, { 17, 6}, \
{ 17, 7}, { 9, 6}, { 19, 7}, { 17, 8}, \
@@ -160,40 +159,45 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
{4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 182
-#define SQR_FFT_THRESHOLD 1984
+#define SQR_FFT_THRESHOLD 1728
-#define MULLO_BASECASE_THRESHOLD 14
+#define MULLO_BASECASE_THRESHOLD 12
#define MULLO_DC_THRESHOLD 0 /* never mpn_mullo_basecase */
#define MULLO_MUL_N_THRESHOLD 3791
#define DC_DIV_QR_THRESHOLD 16
#define DC_DIVAPPR_Q_THRESHOLD 66
-#define DC_BDIV_QR_THRESHOLD 26
-#define DC_BDIV_Q_THRESHOLD 92
+#define DC_BDIV_QR_THRESHOLD 27
+#define DC_BDIV_Q_THRESHOLD 86
#define INV_MULMOD_BNM1_THRESHOLD 58
-#define INV_NEWTON_THRESHOLD 17
+#define INV_NEWTON_THRESHOLD 16
#define INV_APPR_THRESHOLD 17
-#define BINV_NEWTON_THRESHOLD 92
-#define REDC_1_TO_REDC_2_THRESHOLD 2
-#define REDC_2_TO_REDC_N_THRESHOLD 117
+#define BINV_NEWTON_THRESHOLD 110
+#define REDC_1_TO_REDC_2_THRESHOLD 0 /* always */
+#define REDC_2_TO_REDC_N_THRESHOLD 115
#define MU_DIV_QR_THRESHOLD 618
-#define MU_DIVAPPR_Q_THRESHOLD 618
+#define MU_DIVAPPR_Q_THRESHOLD 551
#define MUPI_DIV_QR_THRESHOLD 0 /* always */
#define MU_BDIV_QR_THRESHOLD 562
#define MU_BDIV_Q_THRESHOLD 748
+#define POWM_SEC_TABLE 4,23,130,961,1926
+
#define MATRIX22_STRASSEN_THRESHOLD 12
-#define HGCD_THRESHOLD 45
+#define HGCD_THRESHOLD 39
#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 1094
-#define GCD_DC_THRESHOLD 126
-#define GCDEXT_DC_THRESHOLD 134
-#define JACOBI_BASE_METHOD 2
-
-#define GET_STR_DC_THRESHOLD 18
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
-#define SET_STR_DC_THRESHOLD 286
-#define SET_STR_PRECOMPUTE_THRESHOLD 1037
+#define HGCD_REDUCE_THRESHOLD 1012
+#define GCD_DC_THRESHOLD 134
+#define GCDEXT_DC_THRESHOLD 132
+#define JACOBI_BASE_METHOD 4
+
+#define GET_STR_DC_THRESHOLD 19
+#define GET_STR_PRECOMPUTE_THRESHOLD 28
+#define SET_STR_DC_THRESHOLD 300
+#define SET_STR_PRECOMPUTE_THRESHOLD 1043
+
+#define FAC_DSC_THRESHOLD 462
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/sparc64/ultrasparct1/gmp-mparam.h b/mpn/sparc64/ultrasparct1/gmp-mparam.h
index 34c8027f5..b071b5afb 100644
--- a/mpn/sparc64/ultrasparct1/gmp-mparam.h
+++ b/mpn/sparc64/ultrasparct1/gmp-mparam.h
@@ -28,19 +28,19 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MOD_1_1P_METHOD 2
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 10
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 13
#define MOD_1U_TO_MOD_1_1_THRESHOLD MP_SIZE_T_MAX
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 35
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 34
#define USE_PREINV_DIVREM_1 1
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always */
#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */
#define MUL_TOOM22_THRESHOLD 8
-#define MUL_TOOM33_THRESHOLD 51
-#define MUL_TOOM44_THRESHOLD 97
+#define MUL_TOOM33_THRESHOLD 50
+#define MUL_TOOM44_THRESHOLD 99
#define MUL_TOOM6H_THRESHOLD 125
#define MUL_TOOM8H_THRESHOLD 187
@@ -48,12 +48,13 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 77
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 65
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 50
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 34
#define SQR_BASECASE_THRESHOLD 0 /* always */
-#define SQR_TOOM2_THRESHOLD 16
+#define SQR_TOOM2_THRESHOLD 14
#define SQR_TOOM3_THRESHOLD 57
-#define SQR_TOOM4_THRESHOLD 135
-#define SQR_TOOM6_THRESHOLD 160
+#define SQR_TOOM4_THRESHOLD 133
+#define SQR_TOOM6_THRESHOLD 156
#define SQR_TOOM8_THRESHOLD 260
#define MULMID_TOOM42_THRESHOLD 12
@@ -61,8 +62,6 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMOD_BNM1_THRESHOLD 7
#define SQRMOD_BNM1_THRESHOLD 7
-#define POWM_SEC_TABLE 2,23,176,625,2783
-
#define MUL_FFT_MODF_THRESHOLD 176 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 176, 5}, { 7, 6}, { 4, 5}, { 9, 6}, \
@@ -108,7 +107,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULLO_MUL_N_THRESHOLD 3176
#define DC_DIV_QR_THRESHOLD 27
-#define DC_DIVAPPR_Q_THRESHOLD 108
+#define DC_DIVAPPR_Q_THRESHOLD 106
#define DC_BDIV_QR_THRESHOLD 27
#define DC_BDIV_Q_THRESHOLD 62
@@ -117,23 +116,28 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define INV_APPR_THRESHOLD 117
#define BINV_NEWTON_THRESHOLD 166
-#define REDC_1_TO_REDC_N_THRESHOLD 32
+#define REDC_1_TO_REDC_N_THRESHOLD 31
#define MU_DIV_QR_THRESHOLD 734
#define MU_DIVAPPR_Q_THRESHOLD 748
-#define MUPI_DIV_QR_THRESHOLD 68
+#define MUPI_DIV_QR_THRESHOLD 67
#define MU_BDIV_QR_THRESHOLD 562
#define MU_BDIV_Q_THRESHOLD 734
-#define MATRIX22_STRASSEN_THRESHOLD 9
-#define HGCD_THRESHOLD 66
-#define HGCD_APPR_THRESHOLD 47
-#define HGCD_REDUCE_THRESHOLD 834
-#define GCD_DC_THRESHOLD 183
-#define GCDEXT_DC_THRESHOLD 142
+#define POWM_SEC_TABLE 4,29,188,643,2741
+
+#define MATRIX22_STRASSEN_THRESHOLD 11
+#define HGCD_THRESHOLD 58
+#define HGCD_APPR_THRESHOLD 55
+#define HGCD_REDUCE_THRESHOLD 637
+#define GCD_DC_THRESHOLD 186
+#define GCDEXT_DC_THRESHOLD 140
#define JACOBI_BASE_METHOD 3
#define GET_STR_DC_THRESHOLD 20
-#define GET_STR_PRECOMPUTE_THRESHOLD 36
-#define SET_STR_DC_THRESHOLD 458
-#define SET_STR_PRECOMPUTE_THRESHOLD 963
+#define GET_STR_PRECOMPUTE_THRESHOLD 33
+#define SET_STR_DC_THRESHOLD 268
+#define SET_STR_PRECOMPUTE_THRESHOLD 960
+
+#define FAC_DSC_THRESHOLD 268
+#define FAC_ODD_THRESHOLD 0 /* always */
diff --git a/mpn/x86/atom/gmp-mparam.h b/mpn/x86/atom/gmp-mparam.h
index 391a0ac4a..61ce540dc 100644
--- a/mpn/x86/atom/gmp-mparam.h
+++ b/mpn/x86/atom/gmp-mparam.h
@@ -23,44 +23,43 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
/* Generated by tuneup.c */
-#define MOD_1_NORM_THRESHOLD 3
-#define MOD_1_UNNORM_THRESHOLD 5
-#define MOD_1N_TO_MOD_1_1_THRESHOLD 10
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_NORM_THRESHOLD 4
+#define MOD_1_UNNORM_THRESHOLD 8
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 10
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 13
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
#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 33
-#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 78
-#define MUL_TOOM44_THRESHOLD 168
+#define MUL_TOOM22_THRESHOLD 22
+#define MUL_TOOM33_THRESHOLD 81
+#define MUL_TOOM44_THRESHOLD 178
#define MUL_TOOM6H_THRESHOLD 270
#define MUL_TOOM8H_THRESHOLD 406
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 81
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 107
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 73
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 96
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 85
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 126
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 121
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 129
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 113
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 34
-#define SQR_TOOM3_THRESHOLD 110
-#define SQR_TOOM4_THRESHOLD 184
-#define SQR_TOOM6_THRESHOLD 303
+#define SQR_TOOM2_THRESHOLD 32
+#define SQR_TOOM3_THRESHOLD 109
+#define SQR_TOOM4_THRESHOLD 262
+#define SQR_TOOM6_THRESHOLD 396
#define SQR_TOOM8_THRESHOLD 547
#define MULMID_TOOM42_THRESHOLD 54
#define MULMOD_BNM1_THRESHOLD 16
-#define SQRMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 18
-#define POWM_SEC_TABLE 2,35,262,1168
-
-#define MUL_FFT_MODF_THRESHOLD 376 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 404 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 376, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
{ 21, 7}, { 11, 6}, { 25, 7}, { 13, 6}, \
@@ -87,7 +86,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_FFT_TABLE3_SIZE 86
#define MUL_FFT_THRESHOLD 4544
-#define SQR_FFT_MODF_THRESHOLD 280 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 280, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
{ 17, 7}, { 9, 6}, { 21, 7}, { 11, 6}, \
@@ -111,39 +110,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 223,10}, { 479,12}, { 4096,13}, { 8192,14}, \
{ 16384,15}, { 32768,16} }
#define SQR_FFT_TABLE3_SIZE 82
-#define SQR_FFT_THRESHOLD 2752
+#define SQR_FFT_THRESHOLD 3712
-#define MULLO_BASECASE_THRESHOLD 5
-#define MULLO_DC_THRESHOLD 51
-#define MULLO_MUL_N_THRESHOLD 6633
+#define MULLO_BASECASE_THRESHOLD 6
+#define MULLO_DC_THRESHOLD 53
+#define MULLO_MUL_N_THRESHOLD 8907
#define DC_DIV_QR_THRESHOLD 63
-#define DC_DIVAPPR_Q_THRESHOLD 252
+#define DC_DIVAPPR_Q_THRESHOLD 266
#define DC_BDIV_QR_THRESHOLD 63
-#define DC_BDIV_Q_THRESHOLD 172
+#define DC_BDIV_Q_THRESHOLD 175
#define INV_MULMOD_BNM1_THRESHOLD 42
#define INV_NEWTON_THRESHOLD 250
#define INV_APPR_THRESHOLD 250
-#define BINV_NEWTON_THRESHOLD 276
+#define BINV_NEWTON_THRESHOLD 274
#define REDC_1_TO_REDC_N_THRESHOLD 68
#define MU_DIV_QR_THRESHOLD 1334
-#define MU_DIVAPPR_Q_THRESHOLD 1334
+#define MU_DIVAPPR_Q_THRESHOLD 1442
#define MUPI_DIV_QR_THRESHOLD 114
#define MU_BDIV_QR_THRESHOLD 1078
#define MU_BDIV_Q_THRESHOLD 1334
+#define POWM_SEC_TABLE 4,35,258,1084
+
#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 129
-#define HGCD_APPR_THRESHOLD 163
-#define HGCD_REDUCE_THRESHOLD 2121
-#define GCD_DC_THRESHOLD 469
-#define GCDEXT_DC_THRESHOLD 348
+#define HGCD_THRESHOLD 135
+#define HGCD_APPR_THRESHOLD 164
+#define HGCD_REDUCE_THRESHOLD 2384
+#define GCD_DC_THRESHOLD 487
+#define GCDEXT_DC_THRESHOLD 342
#define JACOBI_BASE_METHOD 3
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 24
-#define SET_STR_DC_THRESHOLD 262
-#define SET_STR_PRECOMPUTE_THRESHOLD 902
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 27
+#define SET_STR_DC_THRESHOLD 324
+#define SET_STR_PRECOMPUTE_THRESHOLD 1290
+
+#define FAC_DSC_THRESHOLD 250
+#define FAC_ODD_THRESHOLD 34
diff --git a/mpn/x86/k10/gmp-mparam.h b/mpn/x86/k10/gmp-mparam.h
index 5c036223c..0ab12b8af 100644
--- a/mpn/x86/k10/gmp-mparam.h
+++ b/mpn/x86/k10/gmp-mparam.h
@@ -26,41 +26,40 @@ 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 12
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 6
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 16
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 6
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 13
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 15
#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 32
+#define BMOD_1_TO_MOD_1_THRESHOLD 31
-#define MUL_TOOM22_THRESHOLD 24
-#define MUL_TOOM33_THRESHOLD 77
-#define MUL_TOOM44_THRESHOLD 127
-#define MUL_TOOM6H_THRESHOLD 270
-#define MUL_TOOM8H_THRESHOLD 357
+#define MUL_TOOM22_THRESHOLD 26
+#define MUL_TOOM33_THRESHOLD 85
+#define MUL_TOOM44_THRESHOLD 130
+#define MUL_TOOM6H_THRESHOLD 206
+#define MUL_TOOM8H_THRESHOLD 309
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 77
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 85
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 80
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 89
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 90
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 112
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 32
-#define SQR_TOOM3_THRESHOLD 97
-#define SQR_TOOM4_THRESHOLD 154
-#define SQR_TOOM6_THRESHOLD 336
-#define SQR_TOOM8_THRESHOLD 527
+#define SQR_TOOM2_THRESHOLD 40
+#define SQR_TOOM3_THRESHOLD 81
+#define SQR_TOOM4_THRESHOLD 178
+#define SQR_TOOM6_THRESHOLD 266
+#define SQR_TOOM8_THRESHOLD 357
#define MULMID_TOOM42_THRESHOLD 54
-#define MULMOD_BNM1_THRESHOLD 15
-#define SQRMOD_BNM1_THRESHOLD 19
+#define MULMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 17
-#define POWM_SEC_TABLE 4,32,164,879,2178
-
-#define MUL_FFT_MODF_THRESHOLD 786 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 606 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 786, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
{ 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
@@ -82,9 +81,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 671,11}, { 191,10}, { 399, 9}, { 799,12}, \
{ 4096,13}, { 8192,14}, { 16384,15}, { 32768,16} }
#define MUL_FFT_TABLE3_SIZE 76
-#define MUL_FFT_THRESHOLD 7424
+#define MUL_FFT_THRESHOLD 6784
-#define SQR_FFT_MODF_THRESHOLD 660 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 505 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 660, 5}, { 25, 6}, { 13, 5}, { 28, 6}, \
{ 25, 7}, { 13, 6}, { 28, 7}, { 15, 6}, \
@@ -104,39 +103,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 799,10}, { 415,11}, { 223,12}, { 4096,13}, \
{ 8192,14}, { 16384,15}, { 32768,16} }
#define SQR_FFT_TABLE3_SIZE 67
-#define SQR_FFT_THRESHOLD 5760
+#define SQR_FFT_THRESHOLD 4736
-#define MULLO_BASECASE_THRESHOLD 6
+#define MULLO_BASECASE_THRESHOLD 7
#define MULLO_DC_THRESHOLD 42
#define MULLO_MUL_N_THRESHOLD 13463
#define DC_DIV_QR_THRESHOLD 56
-#define DC_DIVAPPR_Q_THRESHOLD 248
+#define DC_DIVAPPR_Q_THRESHOLD 270
#define DC_BDIV_QR_THRESHOLD 55
-#define DC_BDIV_Q_THRESHOLD 160
+#define DC_BDIV_Q_THRESHOLD 182
-#define INV_MULMOD_BNM1_THRESHOLD 54
-#define INV_NEWTON_THRESHOLD 250
-#define INV_APPR_THRESHOLD 250
+#define INV_MULMOD_BNM1_THRESHOLD 62
+#define INV_NEWTON_THRESHOLD 260
+#define INV_APPR_THRESHOLD 270
#define BINV_NEWTON_THRESHOLD 276
-#define REDC_1_TO_REDC_N_THRESHOLD 67
+#define REDC_1_TO_REDC_N_THRESHOLD 71
-#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIV_QR_THRESHOLD 1652
#define MU_DIVAPPR_Q_THRESHOLD 1652
-#define MUPI_DIV_QR_THRESHOLD 114
-#define MU_BDIV_QR_THRESHOLD 1470
-#define MU_BDIV_Q_THRESHOLD 1589
+#define MUPI_DIV_QR_THRESHOLD 130
+#define MU_BDIV_QR_THRESHOLD 1499
+#define MU_BDIV_Q_THRESHOLD 1528
+
+#define POWM_SEC_TABLE 4,23,228,947
#define MATRIX22_STRASSEN_THRESHOLD 16
-#define HGCD_THRESHOLD 131
-#define HGCD_APPR_THRESHOLD 163
-#define HGCD_REDUCE_THRESHOLD 3810
-#define GCD_DC_THRESHOLD 555
-#define GCDEXT_DC_THRESHOLD 389
+#define HGCD_THRESHOLD 132
+#define HGCD_APPR_THRESHOLD 180
+#define HGCD_REDUCE_THRESHOLD 3134
+#define GCD_DC_THRESHOLD 630
+#define GCDEXT_DC_THRESHOLD 432
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 28
-#define SET_STR_DC_THRESHOLD 140
-#define SET_STR_PRECOMPUTE_THRESHOLD 1334
+#define GET_STR_DC_THRESHOLD 12
+#define GET_STR_PRECOMPUTE_THRESHOLD 23
+#define SET_STR_DC_THRESHOLD 208
+#define SET_STR_PRECOMPUTE_THRESHOLD 1254
+
+#define FAC_DSC_THRESHOLD 208
+#define FAC_ODD_THRESHOLD 29
diff --git a/mpn/x86/k7/gmp-mparam.h b/mpn/x86/k7/gmp-mparam.h
index 9cc6798af..c6bfa87e3 100644
--- a/mpn/x86/k7/gmp-mparam.h
+++ b/mpn/x86/k7/gmp-mparam.h
@@ -25,39 +25,38 @@ 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 3
#define MOD_1N_TO_MOD_1_1_THRESHOLD 7
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 4
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 20
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 24
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
+#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 26
+#define BMOD_1_TO_MOD_1_THRESHOLD 24
#define MUL_TOOM22_THRESHOLD 28
#define MUL_TOOM33_THRESHOLD 85
-#define MUL_TOOM44_THRESHOLD 148
+#define MUL_TOOM44_THRESHOLD 142
#define MUL_TOOM6H_THRESHOLD 258
-#define MUL_TOOM8H_THRESHOLD 454
+#define MUL_TOOM8H_THRESHOLD 309
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 85
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 95
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 99
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 97
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 101
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 102
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 144
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 50
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 148
-#define SQR_TOOM6_THRESHOLD 274
+#define SQR_TOOM3_THRESHOLD 83
+#define SQR_TOOM4_THRESHOLD 216
+#define SQR_TOOM6_THRESHOLD 318
#define SQR_TOOM8_THRESHOLD 430
-#define MULMID_TOOM42_THRESHOLD 88
+#define MULMID_TOOM42_THRESHOLD 56
-#define MULMOD_BNM1_THRESHOLD 18
-#define SQRMOD_BNM1_THRESHOLD 18
-
-#define POWM_SEC_TABLE 2,17,225,961,1604
+#define MULMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 19
#define MUL_FFT_MODF_THRESHOLD 888 /* k = 6 */
#define MUL_FFT_TABLE3 \
@@ -104,9 +103,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 1151,11}, { 2303,12}, { 1215,11}, { 2431,13}, \
{ 8192,14}, { 16384,15}, { 32768,16} }
#define MUL_FFT_TABLE3_SIZE 167
-#define MUL_FFT_THRESHOLD 7808
+#define MUL_FFT_THRESHOLD 7552
-#define SQR_FFT_MODF_THRESHOLD 786 /* k = 6 */
+#define SQR_FFT_MODF_THRESHOLD 666 /* k = 6 */
#define SQR_FFT_TABLE3 \
{ { 786, 6}, { 25, 7}, { 13, 6}, { 27, 7}, \
{ 15, 6}, { 31, 7}, { 17, 6}, { 35, 7}, \
@@ -154,39 +153,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 1215,11}, { 2431,13}, { 8192,14}, { 16384,15}, \
{ 32768,16} }
#define SQR_FFT_TABLE3_SIZE 177
-#define SQR_FFT_THRESHOLD 7552
+#define SQR_FFT_THRESHOLD 7040
-#define MULLO_BASECASE_THRESHOLD 10
-#define MULLO_DC_THRESHOLD 42
+#define MULLO_BASECASE_THRESHOLD 11
+#define MULLO_DC_THRESHOLD 35
#define MULLO_MUL_N_THRESHOLD 13463
-#define DC_DIV_QR_THRESHOLD 60
-#define DC_DIVAPPR_Q_THRESHOLD 336
-#define DC_BDIV_QR_THRESHOLD 91
-#define DC_BDIV_Q_THRESHOLD 268
+#define DC_DIV_QR_THRESHOLD 41
+#define DC_DIVAPPR_Q_THRESHOLD 214
+#define DC_BDIV_QR_THRESHOLD 41
+#define DC_BDIV_Q_THRESHOLD 148
-#define INV_MULMOD_BNM1_THRESHOLD 66
-#define INV_NEWTON_THRESHOLD 284
-#define INV_APPR_THRESHOLD 284
+#define INV_MULMOD_BNM1_THRESHOLD 77
+#define INV_NEWTON_THRESHOLD 204
+#define INV_APPR_THRESHOLD 204
-#define BINV_NEWTON_THRESHOLD 270
-#define REDC_1_TO_REDC_N_THRESHOLD 87
+#define BINV_NEWTON_THRESHOLD 230
+#define REDC_1_TO_REDC_N_THRESHOLD 59
#define MU_DIV_QR_THRESHOLD 1752
-#define MU_DIVAPPR_Q_THRESHOLD 1652
-#define MUPI_DIV_QR_THRESHOLD 97
-#define MU_BDIV_QR_THRESHOLD 1470
+#define MU_DIVAPPR_Q_THRESHOLD 1528
+#define MUPI_DIV_QR_THRESHOLD 82
+#define MU_BDIV_QR_THRESHOLD 1360
#define MU_BDIV_Q_THRESHOLD 1470
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 173
-#define HGCD_APPR_THRESHOLD 226
+#define POWM_SEC_TABLE 2,17,176,905,2246
+
+#define MATRIX22_STRASSEN_THRESHOLD 16
+#define HGCD_THRESHOLD 125
+#define HGCD_APPR_THRESHOLD 143
#define HGCD_REDUCE_THRESHOLD 4633
-#define GCD_DC_THRESHOLD 580
-#define GCDEXT_DC_THRESHOLD 414
+#define GCD_DC_THRESHOLD 460
+#define GCDEXT_DC_THRESHOLD 330
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 17
-#define GET_STR_PRECOMPUTE_THRESHOLD 34
-#define SET_STR_DC_THRESHOLD 542
-#define SET_STR_PRECOMPUTE_THRESHOLD 1615
+#define GET_STR_DC_THRESHOLD 15
+#define GET_STR_PRECOMPUTE_THRESHOLD 35
+#define SET_STR_DC_THRESHOLD 272
+#define SET_STR_PRECOMPUTE_THRESHOLD 1183
+
+#define FAC_DSC_THRESHOLD 336
+#define FAC_ODD_THRESHOLD 29
diff --git a/mpn/x86/k8/gmp-mparam.h b/mpn/x86/k8/gmp-mparam.h
index 727a381f1..ab19342cb 100644
--- a/mpn/x86/k8/gmp-mparam.h
+++ b/mpn/x86/k8/gmp-mparam.h
@@ -33,33 +33,32 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#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 42
+#define BMOD_1_TO_MOD_1_THRESHOLD 40
#define MUL_TOOM22_THRESHOLD 26
#define MUL_TOOM33_THRESHOLD 81
#define MUL_TOOM44_THRESHOLD 136
-#define MUL_TOOM6H_THRESHOLD 286
+#define MUL_TOOM6H_THRESHOLD 270
#define MUL_TOOM8H_THRESHOLD 430
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 81
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 91
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 93
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 96
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 121
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 46
-#define SQR_TOOM3_THRESHOLD 77
+#define SQR_TOOM3_THRESHOLD 81
#define SQR_TOOM4_THRESHOLD 202
-#define SQR_TOOM6_THRESHOLD 294
+#define SQR_TOOM6_THRESHOLD 286
#define SQR_TOOM8_THRESHOLD 430
-#define MULMID_TOOM42_THRESHOLD 74
+#define MULMID_TOOM42_THRESHOLD 56
#define MULMOD_BNM1_THRESHOLD 17
#define SQRMOD_BNM1_THRESHOLD 17
-#define POWM_SEC_TABLE 2,14,216,991,2658
-
#define MUL_FFT_MODF_THRESHOLD 888 /* k = 6 */
#define MUL_FFT_TABLE3 \
{ { 888, 6}, { 15, 5}, { 31, 6}, { 25, 7}, \
@@ -108,37 +107,42 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_TABLE3_SIZE 74
#define SQR_FFT_THRESHOLD 7296
-#define MULLO_BASECASE_THRESHOLD 8
-#define MULLO_DC_THRESHOLD 35
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 28
#define MULLO_MUL_N_THRESHOLD 13463
#define DC_DIV_QR_THRESHOLD 91
-#define DC_DIVAPPR_Q_THRESHOLD 278
+#define DC_DIVAPPR_Q_THRESHOLD 280
#define DC_BDIV_QR_THRESHOLD 87
-#define DC_BDIV_Q_THRESHOLD 216
+#define DC_BDIV_Q_THRESHOLD 222
#define INV_MULMOD_BNM1_THRESHOLD 62
-#define INV_NEWTON_THRESHOLD 262
-#define INV_APPR_THRESHOLD 262
+#define INV_NEWTON_THRESHOLD 266
+#define INV_APPR_THRESHOLD 268
-#define BINV_NEWTON_THRESHOLD 278
+#define BINV_NEWTON_THRESHOLD 272
#define REDC_1_TO_REDC_N_THRESHOLD 79
-#define MU_DIV_QR_THRESHOLD 1787
-#define MU_DIVAPPR_Q_THRESHOLD 1718
-#define MUPI_DIV_QR_THRESHOLD 106
+#define MU_DIV_QR_THRESHOLD 1822
+#define MU_DIVAPPR_Q_THRESHOLD 1652
+#define MUPI_DIV_QR_THRESHOLD 108
#define MU_BDIV_QR_THRESHOLD 1470
-#define MU_BDIV_Q_THRESHOLD 1589
+#define MU_BDIV_Q_THRESHOLD 1470
+
+#define POWM_SEC_TABLE 3,21,195,961,2783
#define MATRIX22_STRASSEN_THRESHOLD 19
-#define HGCD_THRESHOLD 139
-#define HGCD_APPR_THRESHOLD 176
+#define HGCD_THRESHOLD 149
+#define HGCD_APPR_THRESHOLD 181
#define HGCD_REDUCE_THRESHOLD 4633
#define GCD_DC_THRESHOLD 610
#define GCDEXT_DC_THRESHOLD 419
#define JACOBI_BASE_METHOD 4
#define GET_STR_DC_THRESHOLD 14
-#define GET_STR_PRECOMPUTE_THRESHOLD 29
-#define SET_STR_DC_THRESHOLD 450
-#define SET_STR_PRECOMPUTE_THRESHOLD 1366
+#define GET_STR_PRECOMPUTE_THRESHOLD 31
+#define SET_STR_DC_THRESHOLD 272
+#define SET_STR_PRECOMPUTE_THRESHOLD 1330
+
+#define FAC_DSC_THRESHOLD 438
+#define FAC_ODD_THRESHOLD 24
diff --git a/mpn/x86/p6/sse2/gmp-mparam.h b/mpn/x86/p6/sse2/gmp-mparam.h
index b163c58cc..35de26748 100644
--- a/mpn/x86/p6/sse2/gmp-mparam.h
+++ b/mpn/x86/p6/sse2/gmp-mparam.h
@@ -43,15 +43,16 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define BMOD_1_TO_MOD_1_THRESHOLD 21
#define MUL_TOOM22_THRESHOLD 20
-#define MUL_TOOM33_THRESHOLD 74
-#define MUL_TOOM44_THRESHOLD 181
-#define MUL_TOOM6H_THRESHOLD 252
-#define MUL_TOOM8H_THRESHOLD 363
+#define MUL_TOOM33_THRESHOLD 77
+#define MUL_TOOM44_THRESHOLD 169
+#define MUL_TOOM6H_THRESHOLD 246
+#define MUL_TOOM8H_THRESHOLD 381
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 114
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 115
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 97
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 80
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 30
@@ -65,9 +66,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMOD_BNM1_THRESHOLD 13
#define SQRMOD_BNM1_THRESHOLD 17
-#define POWM_SEC_TABLE 4,23,258,768,2388
-
-#define MUL_FFT_MODF_THRESHOLD 565 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 690 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 565, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
{ 25, 7}, { 13, 6}, { 28, 7}, { 15, 6}, \
@@ -103,9 +102,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 1407,12}, { 2815,14}, { 767,13}, { 1663,12}, \
{ 3455,13}, { 8192,14}, { 16384,15}, { 32768,16} }
#define MUL_FFT_TABLE3_SIZE 132
-#define MUL_FFT_THRESHOLD 6784
+#define MUL_FFT_THRESHOLD 7424
-#define SQR_FFT_MODF_THRESHOLD 472 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 565 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 472, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \
{ 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
@@ -148,36 +147,41 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_THRESHOLD 5760
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 33
+#define MULLO_DC_THRESHOLD 31
#define MULLO_MUL_N_THRESHOLD 13463
-#define DC_DIV_QR_THRESHOLD 20
-#define DC_DIVAPPR_Q_THRESHOLD 56
+#define DC_DIV_QR_THRESHOLD 25
+#define DC_DIVAPPR_Q_THRESHOLD 55
#define DC_BDIV_QR_THRESHOLD 60
-#define DC_BDIV_Q_THRESHOLD 134
+#define DC_BDIV_Q_THRESHOLD 132
#define INV_MULMOD_BNM1_THRESHOLD 38
-#define INV_NEWTON_THRESHOLD 66
-#define INV_APPR_THRESHOLD 63
+#define INV_NEWTON_THRESHOLD 65
+#define INV_APPR_THRESHOLD 65
-#define BINV_NEWTON_THRESHOLD 250
-#define REDC_1_TO_REDC_N_THRESHOLD 63
+#define BINV_NEWTON_THRESHOLD 252
+#define REDC_1_TO_REDC_N_THRESHOLD 62
#define MU_DIV_QR_THRESHOLD 1164
-#define MU_DIVAPPR_Q_THRESHOLD 979
+#define MU_DIVAPPR_Q_THRESHOLD 748
#define MUPI_DIV_QR_THRESHOLD 38
-#define MU_BDIV_QR_THRESHOLD 1442
+#define MU_BDIV_QR_THRESHOLD 1360
#define MU_BDIV_Q_THRESHOLD 1470
+#define POWM_SEC_TABLE 2,23,258,879,2246
+
#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 64
-#define HGCD_APPR_THRESHOLD 105
-#define HGCD_REDUCE_THRESHOLD 3524
+#define HGCD_THRESHOLD 69
+#define HGCD_APPR_THRESHOLD 112
+#define HGCD_REDUCE_THRESHOLD 3389
#define GCD_DC_THRESHOLD 386
-#define GCDEXT_DC_THRESHOLD 309
+#define GCDEXT_DC_THRESHOLD 303
#define JACOBI_BASE_METHOD 1
#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 587
-#define SET_STR_PRECOMPUTE_THRESHOLD 1104
+#define GET_STR_PRECOMPUTE_THRESHOLD 25
+#define SET_STR_DC_THRESHOLD 582
+#define SET_STR_PRECOMPUTE_THRESHOLD 1118
+
+#define FAC_DSC_THRESHOLD 178
+#define FAC_ODD_THRESHOLD 34
diff --git a/mpn/x86/pentium4/sse2/gmp-mparam.h b/mpn/x86/pentium4/sse2/gmp-mparam.h
index 8a198ad96..7a324ba19 100644
--- a/mpn/x86/pentium4/sse2/gmp-mparam.h
+++ b/mpn/x86/pentium4/sse2/gmp-mparam.h
@@ -22,44 +22,43 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define BYTES_PER_MP_LIMB 4
-#define MOD_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
+#define MOD_1_NORM_THRESHOLD 24
#define MOD_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
#define MOD_1N_TO_MOD_1_1_THRESHOLD 6
#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 13
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 2
#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 31
-#define MUL_TOOM33_THRESHOLD 114
-#define MUL_TOOM44_THRESHOLD 300
-#define MUL_TOOM6H_THRESHOLD 426
-#define MUL_TOOM8H_THRESHOLD 620
+#define MUL_TOOM22_THRESHOLD 29
+#define MUL_TOOM33_THRESHOLD 107
+#define MUL_TOOM44_THRESHOLD 276
+#define MUL_TOOM6H_THRESHOLD 422
+#define MUL_TOOM8H_THRESHOLD 587
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 184
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 117
#define MUL_TOOM32_TO_TOOM53_THRESHOLD 207
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 181
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 209
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 193
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 184
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 164
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 49
+#define SQR_TOOM2_THRESHOLD 48
#define SQR_TOOM3_THRESHOLD 173
#define SQR_TOOM4_THRESHOLD 264
#define SQR_TOOM6_THRESHOLD 354
-#define SQR_TOOM8_THRESHOLD 810
+#define SQR_TOOM8_THRESHOLD 915
-#define MULMID_TOOM42_THRESHOLD 68
+#define MULMID_TOOM42_THRESHOLD 66
#define MULMOD_BNM1_THRESHOLD 19
-#define SQRMOD_BNM1_THRESHOLD 23
+#define SQRMOD_BNM1_THRESHOLD 19
-#define POWM_SEC_TABLE 2,33,246,1052,2178
-
-#define MUL_FFT_MODF_THRESHOLD 904 /* k = 6 */
+#define MUL_FFT_MODF_THRESHOLD 1103 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 904, 6}, { 15, 5}, { 32, 6}, { 17, 5}, \
{ 35, 6}, { 19, 5}, { 39, 6}, { 29, 7}, \
@@ -82,9 +81,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 223,12}, { 4096,13}, { 8192,14}, { 16384,15}, \
{ 32768,16} }
#define MUL_FFT_TABLE3_SIZE 77
-#define MUL_FFT_THRESHOLD 7552
+#define MUL_FFT_THRESHOLD 7808
-#define SQR_FFT_MODF_THRESHOLD 793 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 824 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 793, 5}, { 28, 6}, { 15, 5}, { 33, 6}, \
{ 17, 5}, { 35, 6}, { 28, 7}, { 15, 6}, \
@@ -105,39 +104,44 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 639,11}, { 191,10}, { 399, 9}, { 799,12}, \
{ 4096,13}, { 8192,14}, { 16384,15}, { 32768,16} }
#define SQR_FFT_TABLE3_SIZE 72
-#define SQR_FFT_THRESHOLD 6784
+#define SQR_FFT_THRESHOLD 7296
#define MULLO_BASECASE_THRESHOLD 13
-#define MULLO_DC_THRESHOLD 52
-#define MULLO_MUL_N_THRESHOLD 13463
+#define MULLO_DC_THRESHOLD 48
+#define MULLO_MUL_N_THRESHOLD 14709
-#define DC_DIV_QR_THRESHOLD 39
+#define DC_DIV_QR_THRESHOLD 38
#define DC_DIVAPPR_Q_THRESHOLD 77
#define DC_BDIV_QR_THRESHOLD 54
-#define DC_BDIV_Q_THRESHOLD 94
+#define DC_BDIV_Q_THRESHOLD 97
-#define INV_MULMOD_BNM1_THRESHOLD 60
-#define INV_NEWTON_THRESHOLD 182
-#define INV_APPR_THRESHOLD 93
+#define INV_MULMOD_BNM1_THRESHOLD 57
+#define INV_NEWTON_THRESHOLD 202
+#define INV_APPR_THRESHOLD 116
-#define BINV_NEWTON_THRESHOLD 296
-#define REDC_1_TO_REDC_N_THRESHOLD 66
+#define BINV_NEWTON_THRESHOLD 327
+#define REDC_1_TO_REDC_N_THRESHOLD 34
#define MU_DIV_QR_THRESHOLD 2350
-#define MU_DIVAPPR_Q_THRESHOLD 2130
-#define MUPI_DIV_QR_THRESHOLD 71
-#define MU_BDIV_QR_THRESHOLD 2130
-#define MU_BDIV_Q_THRESHOLD 2130
-
-#define MATRIX22_STRASSEN_THRESHOLD 24
-#define HGCD_THRESHOLD 77
-#define HGCD_APPR_THRESHOLD 91
+#define MU_DIVAPPR_Q_THRESHOLD 2172
+#define MUPI_DIV_QR_THRESHOLD 66
+#define MU_BDIV_QR_THRESHOLD 1787
+#define MU_BDIV_Q_THRESHOLD 2350
+
+#define POWM_SEC_TABLE 2,35,164,1068,2500
+
+#define MATRIX22_STRASSEN_THRESHOLD 30
+#define HGCD_THRESHOLD 85
+#define HGCD_APPR_THRESHOLD 95
#define HGCD_REDUCE_THRESHOLD 5010
-#define GCD_DC_THRESHOLD 327
+#define GCD_DC_THRESHOLD 393
#define GCDEXT_DC_THRESHOLD 253
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 144
-#define SET_STR_PRECOMPUTE_THRESHOLD 979
+#define GET_STR_DC_THRESHOLD 11
+#define GET_STR_PRECOMPUTE_THRESHOLD 24
+#define SET_STR_DC_THRESHOLD 119
+#define SET_STR_PRECOMPUTE_THRESHOLD 1084
+
+#define FAC_DSC_THRESHOLD 342
+#define FAC_ODD_THRESHOLD 27
diff --git a/mpn/x86_64/atom/gmp-mparam.h b/mpn/x86_64/atom/gmp-mparam.h
index 63233721b..bc19a095c 100644
--- a/mpn/x86_64/atom/gmp-mparam.h
+++ b/mpn/x86_64/atom/gmp-mparam.h
@@ -31,27 +31,27 @@ 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 5
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 4
#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
#define MOD_1_1_TO_MOD_1_2_THRESHOLD MP_SIZE_T_MAX
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
+#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 16
+#define BMOD_1_TO_MOD_1_THRESHOLD 15
#define MUL_TOOM22_THRESHOLD 10
-#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 105
+#define MUL_TOOM33_THRESHOLD 66
+#define MUL_TOOM44_THRESHOLD 118
#define MUL_TOOM6H_THRESHOLD 157
-#define MUL_TOOM8H_THRESHOLD 212
+#define MUL_TOOM8H_THRESHOLD 236
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 76
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 71
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 66
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 84
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 131
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 81
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 78
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 88
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 16
@@ -63,11 +63,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULMID_TOOM42_THRESHOLD 14
#define MULMOD_BNM1_THRESHOLD 7
-#define SQRMOD_BNM1_THRESHOLD 12
+#define SQRMOD_BNM1_THRESHOLD 10
-#define POWM_SEC_TABLE 2,31,213,724,2112
-
-#define MUL_FFT_MODF_THRESHOLD 220 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 212 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 220, 5}, { 7, 4}, { 15, 5}, { 13, 6}, \
{ 7, 5}, { 15, 6}, { 13, 7}, { 7, 6}, \
@@ -96,9 +94,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
#define MUL_FFT_TABLE3_SIZE 101
-#define MUL_FFT_THRESHOLD 1728
+#define MUL_FFT_THRESHOLD 2112
-#define SQR_FFT_MODF_THRESHOLD 188 /* k = 5 */
+#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}, \
@@ -129,39 +127,41 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MULLO_BASECASE_THRESHOLD 0 /* always */
#define MULLO_DC_THRESHOLD 33
-#define MULLO_MUL_N_THRESHOLD 3176
+#define MULLO_MUL_N_THRESHOLD 4141
#define DC_DIV_QR_THRESHOLD 27
-#define DC_DIVAPPR_Q_THRESHOLD 93
+#define DC_DIVAPPR_Q_THRESHOLD 94
#define DC_BDIV_QR_THRESHOLD 27
-#define DC_BDIV_Q_THRESHOLD 47
+#define DC_BDIV_Q_THRESHOLD 54
#define INV_MULMOD_BNM1_THRESHOLD 18
-#define INV_NEWTON_THRESHOLD 117
+#define INV_NEWTON_THRESHOLD 131
#define INV_APPR_THRESHOLD 106
-#define BINV_NEWTON_THRESHOLD 163
-#define REDC_1_TO_REDC_2_THRESHOLD 13
-#define REDC_2_TO_REDC_N_THRESHOLD 34
+#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 57
+#define MUPI_DIV_QR_THRESHOLD 67
#define MU_BDIV_QR_THRESHOLD 654
#define MU_BDIV_Q_THRESHOLD 748
-#define MATRIX22_STRASSEN_THRESHOLD 13
-#define HGCD_THRESHOLD 81
-#define HGCD_APPR_THRESHOLD 85
+#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 189
-#define GCDEXT_DC_THRESHOLD 186
-#define JACOBI_BASE_METHOD 4
+#define GCD_DC_THRESHOLD 195
+#define GCDEXT_DC_THRESHOLD 180
+#define JACOBI_BASE_METHOD 2
-#define GET_STR_DC_THRESHOLD 15
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
-#define SET_STR_DC_THRESHOLD 248
-#define SET_STR_PRECOMPUTE_THRESHOLD 1116
+#define GET_STR_DC_THRESHOLD 18
+#define GET_STR_PRECOMPUTE_THRESHOLD 32
+#define SET_STR_DC_THRESHOLD 256
+#define SET_STR_PRECOMPUTE_THRESHOLD 1151
-#define FAC_DSC_THRESHOLD 866
+#define FAC_DSC_THRESHOLD 1065
#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 73890febd..f64c49181 100644
--- a/mpn/x86_64/bd1/gmp-mparam.h
+++ b/mpn/x86_64/bd1/gmp-mparam.h
@@ -23,160 +23,124 @@ 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 7
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 5
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 0 /* never mpn_mod_1_1p */
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 12
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 14
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 5
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 24
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 34
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 11
#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 24
+#define BMOD_1_TO_MOD_1_THRESHOLD 20
-#define MUL_TOOM22_THRESHOLD 18
-#define MUL_TOOM33_THRESHOLD 53
+#define MUL_TOOM22_THRESHOLD 16
+#define MUL_TOOM33_THRESHOLD 57
#define MUL_TOOM44_THRESHOLD 154
-#define MUL_TOOM6H_THRESHOLD 274
-#define MUL_TOOM8H_THRESHOLD 466
+#define MUL_TOOM6H_THRESHOLD 250
+#define MUL_TOOM8H_THRESHOLD 309
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 140
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 108
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 109
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 143
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 24
-#define SQR_TOOM3_THRESHOLD 85
-#define SQR_TOOM4_THRESHOLD 119
+#define SQR_TOOM3_THRESHOLD 139
+#define SQR_TOOM4_THRESHOLD 218
#define SQR_TOOM6_THRESHOLD 318
-#define SQR_TOOM8_THRESHOLD 502
+#define SQR_TOOM8_THRESHOLD 434
+
+#define MULMID_TOOM42_THRESHOLD 22
#define MULMOD_BNM1_THRESHOLD 11
-#define SQRMOD_BNM1_THRESHOLD 16
+#define SQRMOD_BNM1_THRESHOLD 13
-#define MUL_FFT_MODF_THRESHOLD 412 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 396 /* k = 5 */
#define MUL_FFT_TABLE3 \
- { { 412, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 25, 8}, \
- { 13, 7}, { 28, 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}, { 31, 8}, \
- { 63, 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}, { 103,12}, \
- { 31,11}, { 63,10}, { 127,11}, { 79,10}, \
- { 175,11}, { 95,10}, { 191,12}, { 63,11}, \
- { 127,10}, { 255,11}, { 143,10}, { 287,11}, \
- { 159,12}, { 95,13}, { 63,12}, { 127,11}, \
- { 271, 9}, { 1087,11}, { 287,10}, { 575,11}, \
- { 303,12}, { 159,11}, { 319,10}, { 671,11}, \
- { 351,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,12}, { 223,11}, { 447,13}, { 127,12}, \
- { 255,11}, { 543,12}, { 287,11}, { 575,10}, \
- { 1215,12}, { 319,11}, { 639,12}, { 351,13}, \
- { 191,12}, { 383,11}, { 767,12}, { 415,11}, \
- { 831,10}, { 1663,12}, { 447,14}, { 127,13}, \
- { 255,12}, { 543,11}, { 1087,10}, { 2175,12}, \
- { 575,11}, { 1151,12}, { 607,11}, { 1215,13}, \
- { 319,12}, { 639,11}, { 1279,12}, { 671,11}, \
- { 1343,10}, { 2687,12}, { 703,13}, { 383,12}, \
- { 767,11}, { 1535,12}, { 831,13}, { 447,12}, \
- { 959,14}, { 255,13}, { 511,12}, { 1087,11}, \
- { 2175,13}, { 575,12}, { 1215,11}, { 2431,10}, \
- { 4863,13}, { 639,12}, { 1343,11}, { 2687,13}, \
- { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
- { 1535,13}, { 831,12}, { 1663,13}, { 959,15}, \
- { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1215,12}, { 2431,11}, { 4863,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1471,12}, { 2943,11}, \
- { 5887,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1727,14}, { 895,13}, { 1919,12}, { 3839,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,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 168
+ { { 380, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
+ { 23, 7}, { 12, 6}, { 25, 7}, { 13, 6}, \
+ { 27, 7}, { 15, 6}, { 31, 7}, { 25, 8}, \
+ { 13, 7}, { 27, 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}, { 31, 8}, { 63, 9}, { 35, 8}, \
+ { 71, 9}, { 39,10}, { 23, 9}, { 51,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,10}, { 135,11}, { 79,10}, \
+ { 167,11}, { 95,12}, { 63,11}, { 127,10}, \
+ { 255,11}, { 143,10}, { 287, 9}, { 575,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 4736
-#define SQR_FFT_MODF_THRESHOLD 368 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
#define SQR_FFT_TABLE3 \
- { { 368, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
- { 21, 7}, { 11, 6}, { 23, 7}, { 21, 8}, \
- { 11, 7}, { 25, 8}, { 13, 7}, { 28, 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}, \
+ { { 332, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 25, 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}, \
+ { 23, 9}, { 47,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,11}, { 95,10}, \
- { 191,11}, { 111,12}, { 63,11}, { 127,10}, \
- { 255, 9}, { 543,11}, { 143, 9}, { 575,12}, \
- { 95,11}, { 191,13}, { 63,12}, { 127,11}, \
- { 255,10}, { 511,11}, { 271,10}, { 543,11}, \
- { 287,10}, { 575,11}, { 303,12}, { 159,11}, \
- { 335,12}, { 191,11}, { 415,12}, { 223,11}, \
- { 447,10}, { 895,13}, { 127,12}, { 255,11}, \
- { 319,11}, { 639,10}, { 1279,12}, { 351,13}, \
- { 191,12}, { 383,11}, { 767,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,13}, { 319,12}, { 639,11}, \
- { 1279,12}, { 671,11}, { 1343,10}, { 2687,12}, \
- { 703,13}, { 383,12}, { 767,11}, { 1599,12}, \
- { 831,13}, { 447,12}, { 959,14}, { 255,13}, \
- { 511,12}, { 1087,11}, { 2175,13}, { 575,12}, \
- { 1151,11}, { 2303,12}, { 1215,11}, { 2431,10}, \
- { 4863,13}, { 639,12}, { 1343,11}, { 2687,13}, \
- { 703,12}, { 1407,14}, { 383,13}, { 767,12}, \
- { 1599,13}, { 831,12}, { 1727,13}, { 895,15}, \
- { 255,14}, { 511,13}, { 1087,12}, { 2175,13}, \
- { 1215,12}, { 2431,11}, { 4863,14}, { 639,13}, \
- { 1343,12}, { 2687,13}, { 1471,12}, { 2943,11}, \
- { 5887,14}, { 767,13}, { 1599,12}, { 3199,13}, \
- { 1727,14}, { 895,13}, { 1919,12}, { 3839,15}, \
- { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \
- { 2431,12}, { 4863,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 172
+ { 127, 9}, { 255,10}, { 135,11}, { 79,10}, \
+ { 159,11}, { 95,10}, { 191,12}, { 63,11}, \
+ { 127,10}, { 255, 9}, { 511,10}, { 271,11}, \
+ { 143,10}, { 303,11}, { 159,10}, { 319,12}, \
+ { 95,11}, { 191,10}, { 383,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 SQR_FFT_TABLE3_SIZE 71
#define SQR_FFT_THRESHOLD 3264
-#define MULLO_BASECASE_THRESHOLD 4
-#define MULLO_DC_THRESHOLD 30
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 37
#define MULLO_MUL_N_THRESHOLD 8648
-#define DC_DIV_QR_THRESHOLD 38
-#define DC_DIVAPPR_Q_THRESHOLD 187
+#define DC_DIV_QR_THRESHOLD 57
+#define DC_DIVAPPR_Q_THRESHOLD 204
#define DC_BDIV_QR_THRESHOLD 48
-#define DC_BDIV_Q_THRESHOLD 92
-
-#define INV_MULMOD_BNM1_THRESHOLD 49
-#define INV_NEWTON_THRESHOLD 202
-#define INV_APPR_THRESHOLD 197
-
-#define BINV_NEWTON_THRESHOLD 246
-#define REDC_1_TO_REDC_2_THRESHOLD 55
-#define REDC_2_TO_REDC_N_THRESHOLD 0 /* anomaly: never REDC_2 */
-
-#define MU_DIV_QR_THRESHOLD 1470
-#define MU_DIVAPPR_Q_THRESHOLD 1470
-#define MUPI_DIV_QR_THRESHOLD 90
-#define MU_BDIV_QR_THRESHOLD 1187
-#define MU_BDIV_Q_THRESHOLD 1470
-
-#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 96
-#define GCD_DC_THRESHOLD 400
-#define GCDEXT_DC_THRESHOLD 288
-#define JACOBI_BASE_METHOD 1
-
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 27
-#define SET_STR_DC_THRESHOLD 172
-#define SET_STR_PRECOMPUTE_THRESHOLD 1341
+#define DC_BDIV_Q_THRESHOLD 107
+
+#define INV_MULMOD_BNM1_THRESHOLD 30
+#define INV_NEWTON_THRESHOLD 228
+#define INV_APPR_THRESHOLD 214
+
+#define BINV_NEWTON_THRESHOLD 248
+#define REDC_1_TO_REDC_2_THRESHOLD 51
+#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
+
+#define MU_DIV_QR_THRESHOLD 1334
+#define MU_DIVAPPR_Q_THRESHOLD 1387
+#define MUPI_DIV_QR_THRESHOLD 108
+#define MU_BDIV_QR_THRESHOLD 1142
+#define MU_BDIV_Q_THRESHOLD 1308
+
+#define POWM_SEC_TABLE 2,44,411,580,2246
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 117
+#define HGCD_APPR_THRESHOLD 50
+#define HGCD_REDUCE_THRESHOLD 2681
+#define GCD_DC_THRESHOLD 487
+#define GCDEXT_DC_THRESHOLD 318
+#define JACOBI_BASE_METHOD 4
+
+#define GET_STR_DC_THRESHOLD 13
+#define GET_STR_PRECOMPUTE_THRESHOLD 20
+#define SET_STR_DC_THRESHOLD 418
+#define SET_STR_PRECOMPUTE_THRESHOLD 1340
+
+#define FAC_DSC_THRESHOLD 462
+#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 bf2e82596..da0936abc 100644
--- a/mpn/x86_64/bobcat/gmp-mparam.h
+++ b/mpn/x86_64/bobcat/gmp-mparam.h
@@ -25,43 +25,41 @@ 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 4
+#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 36
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 39
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 /* never mpn_mod_1s_2p */
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 8
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 7
#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 18
+#define BMOD_1_TO_MOD_1_THRESHOLD 17
-#define MUL_TOOM22_THRESHOLD 29
+#define MUL_TOOM22_THRESHOLD 27
#define MUL_TOOM33_THRESHOLD 32
-#define MUL_TOOM44_THRESHOLD 169
+#define MUL_TOOM44_THRESHOLD 272
#define MUL_TOOM6H_THRESHOLD 357
#define MUL_TOOM8H_THRESHOLD 0 /* always */
-#define MUL_TOOM32_TO_TOOM43_THRESHOLD 121
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 126
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 115
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 172
#define MUL_TOOM42_TO_TOOM53_THRESHOLD 119
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 128
#define MUL_TOOM43_TO_TOOM54_THRESHOLD 160
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 24
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 318
+#define SQR_TOOM2_THRESHOLD 28
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 372
#define SQR_TOOM6_THRESHOLD 0 /* always */
#define SQR_TOOM8_THRESHOLD 430
#define MULMID_TOOM42_THRESHOLD 24
-#define MULMOD_BNM1_THRESHOLD 13
-#define SQRMOD_BNM1_THRESHOLD 14
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
-#define POWM_SEC_TABLE 4,29,322,840
-
-#define MUL_FFT_MODF_THRESHOLD 372 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 460 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 372, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
{ 10, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
@@ -86,9 +84,9 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \
{4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 86
-#define MUL_FFT_THRESHOLD 4736
+#define MUL_FFT_THRESHOLD 5760
-#define SQR_FFT_MODF_THRESHOLD 340 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 376 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 340, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
{ 21, 7}, { 11, 6}, { 23, 7}, { 13, 6}, \
@@ -111,43 +109,45 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
#define SQR_FFT_TABLE3_SIZE 77
-#define SQR_FFT_THRESHOLD 3264
+#define SQR_FFT_THRESHOLD 3648
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 30
-#define MULLO_MUL_N_THRESHOLD 9174
+#define MULLO_DC_THRESHOLD 52
+#define MULLO_MUL_N_THRESHOLD 11278
-#define DC_DIV_QR_THRESHOLD 77
-#define DC_DIVAPPR_Q_THRESHOLD 206
-#define DC_BDIV_QR_THRESHOLD 75
-#define DC_BDIV_Q_THRESHOLD 160
+#define DC_DIV_QR_THRESHOLD 71
+#define DC_DIVAPPR_Q_THRESHOLD 202
+#define DC_BDIV_QR_THRESHOLD 76
+#define DC_BDIV_Q_THRESHOLD 151
-#define INV_MULMOD_BNM1_THRESHOLD 54
-#define INV_NEWTON_THRESHOLD 252
-#define INV_APPR_THRESHOLD 214
+#define INV_MULMOD_BNM1_THRESHOLD 51
+#define INV_NEWTON_THRESHOLD 248
+#define INV_APPR_THRESHOLD 204
-#define BINV_NEWTON_THRESHOLD 254
-#define REDC_1_TO_REDC_2_THRESHOLD 54
+#define BINV_NEWTON_THRESHOLD 252
+#define REDC_1_TO_REDC_2_THRESHOLD 46
#define REDC_2_TO_REDC_N_THRESHOLD 0 /* always */
#define MU_DIV_QR_THRESHOLD 1470
#define MU_DIVAPPR_Q_THRESHOLD 1589
-#define MUPI_DIV_QR_THRESHOLD 116
-#define MU_BDIV_QR_THRESHOLD 1187
-#define MU_BDIV_Q_THRESHOLD 1470
+#define MUPI_DIV_QR_THRESHOLD 122
+#define MU_BDIV_QR_THRESHOLD 1334
+#define MU_BDIV_Q_THRESHOLD 1442
+
+#define POWM_SEC_TABLE 1,41,322,840,1421
#define MATRIX22_STRASSEN_THRESHOLD 15
-#define HGCD_THRESHOLD 103
+#define HGCD_THRESHOLD 86
#define HGCD_APPR_THRESHOLD 50
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 487
-#define GCDEXT_DC_THRESHOLD 342
+#define HGCD_REDUCE_THRESHOLD 3014
+#define GCD_DC_THRESHOLD 483
+#define GCDEXT_DC_THRESHOLD 303
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 18
-#define GET_STR_PRECOMPUTE_THRESHOLD 33
-#define SET_STR_DC_THRESHOLD 345
-#define SET_STR_PRECOMPUTE_THRESHOLD 1470
+#define GET_STR_DC_THRESHOLD 16
+#define GET_STR_PRECOMPUTE_THRESHOLD 31
+#define SET_STR_DC_THRESHOLD 266
+#define SET_STR_PRECOMPUTE_THRESHOLD 1424
-#define FAC_DSC_THRESHOLD 1160
-#define FAC_ODD_THRESHOLD 44
+#define FAC_DSC_THRESHOLD 906
+#define FAC_ODD_THRESHOLD 46
diff --git a/mpn/x86_64/coreinhm/gmp-mparam.h b/mpn/x86_64/coreinhm/gmp-mparam.h
index 5004c0203..4763d5751 100644
--- a/mpn/x86_64/coreinhm/gmp-mparam.h
+++ b/mpn/x86_64/coreinhm/gmp-mparam.h
@@ -33,33 +33,31 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#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 17
+#define BMOD_1_TO_MOD_1_THRESHOLD 16
-#define MUL_TOOM22_THRESHOLD 16
-#define MUL_TOOM33_THRESHOLD 65
-#define MUL_TOOM44_THRESHOLD 166
-#define MUL_TOOM6H_THRESHOLD 226
-#define MUL_TOOM8H_THRESHOLD 333
+#define MUL_TOOM22_THRESHOLD 18
+#define MUL_TOOM33_THRESHOLD 57
+#define MUL_TOOM44_THRESHOLD 169
+#define MUL_TOOM6H_THRESHOLD 222
+#define MUL_TOOM8H_THRESHOLD 288
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 65
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 107
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 98
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 113
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 88
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 108
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 99
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 82
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 30
#define SQR_TOOM3_THRESHOLD 101
#define SQR_TOOM4_THRESHOLD 250
-#define SQR_TOOM6_THRESHOLD 303
-#define SQR_TOOM8_THRESHOLD 333
+#define SQR_TOOM6_THRESHOLD 306
+#define SQR_TOOM8_THRESHOLD 454
-#define MULMID_TOOM42_THRESHOLD 24
+#define MULMID_TOOM42_THRESHOLD 22
-#define MULMOD_BNM1_THRESHOLD 14
-#define SQRMOD_BNM1_THRESHOLD 15
-
-#define POWM_SEC_TABLE 3,65,322,1006,2080
+#define MULMOD_BNM1_THRESHOLD 11
+#define SQRMOD_BNM1_THRESHOLD 13
#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
#define MUL_FFT_TABLE3 \
@@ -139,43 +137,45 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
#define SQR_FFT_TABLE3_SIZE 137
-#define SQR_FFT_THRESHOLD 2752
+#define SQR_FFT_THRESHOLD 3200
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 49
-#define MULLO_MUL_N_THRESHOLD 8648
+#define MULLO_DC_THRESHOLD 45
+#define MULLO_MUL_N_THRESHOLD 6633
#define DC_DIV_QR_THRESHOLD 38
-#define DC_DIVAPPR_Q_THRESHOLD 135
+#define DC_DIVAPPR_Q_THRESHOLD 123
#define DC_BDIV_QR_THRESHOLD 36
-#define DC_BDIV_Q_THRESHOLD 24
+#define DC_BDIV_Q_THRESHOLD 26
-#define INV_MULMOD_BNM1_THRESHOLD 50
+#define INV_MULMOD_BNM1_THRESHOLD 35
#define INV_NEWTON_THRESHOLD 163
-#define INV_APPR_THRESHOLD 141
+#define INV_APPR_THRESHOLD 147
#define BINV_NEWTON_THRESHOLD 230
-#define REDC_1_TO_REDC_2_THRESHOLD 9
-#define REDC_2_TO_REDC_N_THRESHOLD 55
+#define REDC_1_TO_REDC_2_THRESHOLD 10
+#define REDC_2_TO_REDC_N_THRESHOLD 54
#define MU_DIV_QR_THRESHOLD 1187
#define MU_DIVAPPR_Q_THRESHOLD 1187
-#define MUPI_DIV_QR_THRESHOLD 73
+#define MUPI_DIV_QR_THRESHOLD 75
#define MU_BDIV_QR_THRESHOLD 1078
-#define MU_BDIV_Q_THRESHOLD 1187
-
-#define MATRIX22_STRASSEN_THRESHOLD 19
-#define HGCD_THRESHOLD 117
-#define HGCD_APPR_THRESHOLD 169
-#define HGCD_REDUCE_THRESHOLD 2479
-#define GCD_DC_THRESHOLD 330
-#define GCDEXT_DC_THRESHOLD 375
+#define MU_BDIV_Q_THRESHOLD 1142
+
+#define POWM_SEC_TABLE 2,65,322,1036,2699
+
+#define MATRIX22_STRASSEN_THRESHOLD 16
+#define HGCD_THRESHOLD 142
+#define HGCD_APPR_THRESHOLD 177
+#define HGCD_REDUCE_THRESHOLD 2121
+#define GCD_DC_THRESHOLD 345
+#define GCDEXT_DC_THRESHOLD 372
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 13
+#define GET_STR_DC_THRESHOLD 12
#define GET_STR_PRECOMPUTE_THRESHOLD 20
-#define SET_STR_DC_THRESHOLD 300
-#define SET_STR_PRECOMPUTE_THRESHOLD 1506
+#define SET_STR_DC_THRESHOLD 378
+#define SET_STR_PRECOMPUTE_THRESHOLD 1585
-#define FAC_DSC_THRESHOLD 286
-#define FAC_ODD_THRESHOLD 44
+#define FAC_DSC_THRESHOLD 351
+#define FAC_ODD_THRESHOLD 43
diff --git a/mpn/x86_64/k10/gmp-mparam.h b/mpn/x86_64/k10/gmp-mparam.h
index 204d3ec51..d75cd2557 100644
--- a/mpn/x86_64/k10/gmp-mparam.h
+++ b/mpn/x86_64/k10/gmp-mparam.h
@@ -30,7 +30,7 @@ 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 4
+#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 17
#define MOD_1_2_TO_MOD_1_4_THRESHOLD 28
@@ -38,35 +38,33 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#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 17
+#define BMOD_1_TO_MOD_1_THRESHOLD 15
#define MUL_TOOM22_THRESHOLD 28
#define MUL_TOOM33_THRESHOLD 81
#define MUL_TOOM44_THRESHOLD 242
-#define MUL_TOOM6H_THRESHOLD 402
-#define MUL_TOOM8H_THRESHOLD 434
+#define MUL_TOOM6H_THRESHOLD 418
+#define MUL_TOOM8H_THRESHOLD 478
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 154
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 159
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 155
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 149
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 163
#define MUL_TOOM43_TO_TOOM54_THRESHOLD 226
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 34
-#define SQR_TOOM3_THRESHOLD 114
-#define SQR_TOOM4_THRESHOLD 327
-#define SQR_TOOM6_THRESHOLD 446
-#define SQR_TOOM8_THRESHOLD 552
+#define SQR_TOOM3_THRESHOLD 113
+#define SQR_TOOM4_THRESHOLD 336
+#define SQR_TOOM6_THRESHOLD 557
+#define SQR_TOOM8_THRESHOLD 0 /* always */
-#define MULMID_TOOM42_THRESHOLD 34
+#define MULMID_TOOM42_THRESHOLD 36
#define MULMOD_BNM1_THRESHOLD 15
-#define SQRMOD_BNM1_THRESHOLD 17
+#define SQRMOD_BNM1_THRESHOLD 18
-#define POWM_SEC_TABLE 4,65,322,1926
-
-#define MUL_FFT_MODF_THRESHOLD 570 /* k = 5 */
+#define MUL_FFT_MODF_THRESHOLD 525 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 570, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
{ 25, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \
@@ -118,7 +116,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define MUL_FFT_TABLE3_SIZE 185
#define MUL_FFT_THRESHOLD 7552
-#define SQR_FFT_MODF_THRESHOLD 460 /* k = 5 */
+#define SQR_FFT_MODF_THRESHOLD 444 /* k = 5 */
#define SQR_FFT_TABLE3 \
{ { 460, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \
{ 12, 5}, { 25, 6}, { 27, 7}, { 14, 6}, \
@@ -175,8 +173,8 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define SQR_FFT_THRESHOLD 5248
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 65
-#define MULLO_MUL_N_THRESHOLD 14281
+#define MULLO_DC_THRESHOLD 61
+#define MULLO_MUL_N_THRESHOLD 15150
#define DC_DIV_QR_THRESHOLD 56
#define DC_DIVAPPR_Q_THRESHOLD 220
@@ -184,31 +182,33 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#define DC_BDIV_Q_THRESHOLD 44
#define INV_MULMOD_BNM1_THRESHOLD 54
-#define INV_NEWTON_THRESHOLD 230
+#define INV_NEWTON_THRESHOLD 222
#define INV_APPR_THRESHOLD 214
#define BINV_NEWTON_THRESHOLD 324
-#define REDC_1_TO_REDC_2_THRESHOLD 5
-#define REDC_2_TO_REDC_N_THRESHOLD 78
+#define REDC_1_TO_REDC_2_THRESHOLD 19
+#define REDC_2_TO_REDC_N_THRESHOLD 71
+
+#define MU_DIV_QR_THRESHOLD 1718
+#define MU_DIVAPPR_Q_THRESHOLD 1652
+#define MUPI_DIV_QR_THRESHOLD 102
+#define MU_BDIV_QR_THRESHOLD 1528
+#define MU_BDIV_Q_THRESHOLD 1589
-#define MU_DIV_QR_THRESHOLD 1895
-#define MU_DIVAPPR_Q_THRESHOLD 1895
-#define MUPI_DIV_QR_THRESHOLD 106
-#define MU_BDIV_QR_THRESHOLD 1589
-#define MU_BDIV_Q_THRESHOLD 1718
+#define POWM_SEC_TABLE 2,23,322,2080
#define MATRIX22_STRASSEN_THRESHOLD 17
-#define HGCD_THRESHOLD 136
-#define HGCD_APPR_THRESHOLD 176
-#define HGCD_REDUCE_THRESHOLD 3524
-#define GCD_DC_THRESHOLD 606
-#define GCDEXT_DC_THRESHOLD 483
+#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 JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 13
+#define GET_STR_DC_THRESHOLD 14
#define GET_STR_PRECOMPUTE_THRESHOLD 29
#define SET_STR_DC_THRESHOLD 248
-#define SET_STR_PRECOMPUTE_THRESHOLD 1713
+#define SET_STR_PRECOMPUTE_THRESHOLD 1648
-#define FAC_DSC_THRESHOLD 826
-#define FAC_ODD_THRESHOLD 31
+#define FAC_DSC_THRESHOLD 1105
+#define FAC_ODD_THRESHOLD 30
diff --git a/mpn/x86_64/pentium4/gmp-mparam.h b/mpn/x86_64/pentium4/gmp-mparam.h
index 4d49fc2cf..37c94dc46 100644
--- a/mpn/x86_64/pentium4/gmp-mparam.h
+++ b/mpn/x86_64/pentium4/gmp-mparam.h
@@ -34,39 +34,38 @@ 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 2
-#define MOD_1_1_TO_MOD_1_2_THRESHOLD 15
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 38
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 14
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 36
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 8
#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 12
-#define MUL_TOOM33_THRESHOLD 74
-#define MUL_TOOM44_THRESHOLD 118
+#define MUL_TOOM22_THRESHOLD 11
+#define MUL_TOOM33_THRESHOLD 68
+#define MUL_TOOM44_THRESHOLD 120
#define MUL_TOOM6H_THRESHOLD 157
-#define MUL_TOOM8H_THRESHOLD 430
+#define MUL_TOOM8H_THRESHOLD 236
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 81
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 138
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 145
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 131
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 122
#define MUL_TOOM42_TO_TOOM63_THRESHOLD 80
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 106
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 20
-#define SQR_TOOM3_THRESHOLD 69
-#define SQR_TOOM4_THRESHOLD 202
-#define SQR_TOOM6_THRESHOLD 254
-#define SQR_TOOM8_THRESHOLD 418
+#define SQR_TOOM2_THRESHOLD 18
+#define SQR_TOOM3_THRESHOLD 81
+#define SQR_TOOM4_THRESHOLD 214
+#define SQR_TOOM6_THRESHOLD 238
+#define SQR_TOOM8_THRESHOLD 430
-#define MULMID_TOOM42_THRESHOLD 19
+#define MULMID_TOOM42_THRESHOLD 16
-#define MULMOD_BNM1_THRESHOLD 10
+#define MULMOD_BNM1_THRESHOLD 9
#define SQRMOD_BNM1_THRESHOLD 9
-#define POWM_SEC_TABLE 3,130,140,724,2316
-
#define MUL_FFT_MODF_THRESHOLD 236 /* k = 5 */
#define MUL_FFT_TABLE3 \
{ { 236, 5}, { 9, 4}, { 19, 5}, { 13, 6}, \
@@ -93,7 +92,7 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
{2097152,22}, {4194304,23}, {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 91
-#define MUL_FFT_THRESHOLD 2752
+#define MUL_FFT_THRESHOLD 2240
#define SQR_FFT_MODF_THRESHOLD 216 /* k = 5 */
#define SQR_FFT_TABLE3 \
@@ -122,40 +121,45 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
{ 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
{8388608,24} }
#define SQR_FFT_TABLE3_SIZE 93
-#define SQR_FFT_THRESHOLD 2112
+#define SQR_FFT_THRESHOLD 1984
#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 32
-#define MULLO_MUL_N_THRESHOLD 6253
+#define MULLO_DC_THRESHOLD 33
+#define MULLO_MUL_N_THRESHOLD 4392
-#define DC_DIV_QR_THRESHOLD 32
+#define DC_DIV_QR_THRESHOLD 27
#define DC_DIVAPPR_Q_THRESHOLD 60
-#define DC_BDIV_QR_THRESHOLD 26
-#define DC_BDIV_Q_THRESHOLD 49
+#define DC_BDIV_QR_THRESHOLD 27
+#define DC_BDIV_Q_THRESHOLD 38
-#define INV_MULMOD_BNM1_THRESHOLD 22
+#define INV_MULMOD_BNM1_THRESHOLD 20
#define INV_NEWTON_THRESHOLD 202
-#define INV_APPR_THRESHOLD 101
+#define INV_APPR_THRESHOLD 106
-#define BINV_NEWTON_THRESHOLD 199
-#define REDC_1_TO_REDC_2_THRESHOLD 23
-#define REDC_2_TO_REDC_N_THRESHOLD 42
+#define BINV_NEWTON_THRESHOLD 198
+#define REDC_1_TO_REDC_2_THRESHOLD 16
+#define REDC_2_TO_REDC_N_THRESHOLD 43
#define MU_DIV_QR_THRESHOLD 979
#define MU_DIVAPPR_Q_THRESHOLD 979
-#define MUPI_DIV_QR_THRESHOLD 98
+#define MUPI_DIV_QR_THRESHOLD 92
#define MU_BDIV_QR_THRESHOLD 807
-#define MU_BDIV_Q_THRESHOLD 979
+#define MU_BDIV_Q_THRESHOLD 942
+
+#define POWM_SEC_TABLE 6,65,192,792,2578
#define MATRIX22_STRASSEN_THRESHOLD 17
#define HGCD_THRESHOLD 99
-#define HGCD_APPR_THRESHOLD 117
+#define HGCD_APPR_THRESHOLD 121
#define HGCD_REDUCE_THRESHOLD 1679
-#define GCD_DC_THRESHOLD 198
-#define GCDEXT_DC_THRESHOLD 233
+#define GCD_DC_THRESHOLD 205
+#define GCDEXT_DC_THRESHOLD 225
#define JACOBI_BASE_METHOD 4
-#define GET_STR_DC_THRESHOLD 12
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 422
-#define SET_STR_PRECOMPUTE_THRESHOLD 1438
+#define GET_STR_DC_THRESHOLD 13
+#define GET_STR_PRECOMPUTE_THRESHOLD 25
+#define SET_STR_DC_THRESHOLD 232
+#define SET_STR_PRECOMPUTE_THRESHOLD 1585
+
+#define FAC_DSC_THRESHOLD 1127
+#define FAC_ODD_THRESHOLD 0 /* always */