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