Removed toom7 code.
This commit is contained in:
parent
33cd4d77fa
commit
36ca8eb0a9
2
configure
vendored
2
configure
vendored
@ -29319,7 +29319,7 @@ gmp_mpn_functions="$extra_functions \
|
||||
rootrem sqrtrem get_str set_str scan0 scan1 popcount hamdist cmp perfsqr \
|
||||
bdivmod gcd gcd_1 gcdext tdiv_qr dc_divrem_n sb_divrem_mn jacbase get_d \
|
||||
mullow_n mulhigh_n mullow_n_basecase mullow_basecase redc_basecase \
|
||||
sb_divappr_q toom3_mul toom3_mul_n toom4_mul toom4_mul_n toom7_mul_n \
|
||||
sb_divappr_q toom3_mul toom3_mul_n toom4_mul toom4_mul_n \
|
||||
dc_div_q dc_divappr_q sb_div_q sb_div_qr dc_div_qr inv_divappr_q_n \
|
||||
inv_divappr_q inv_div_q inv_div_qr inv_div_qr_n rootrem_basecase \
|
||||
toom_eval_dgr3_pm1 toom_eval_dgr3_pm2 toom_eval_pm1 toom_eval_pm2 \
|
||||
|
@ -2517,7 +2517,7 @@ gmp_mpn_functions="$extra_functions \
|
||||
rootrem sqrtrem get_str set_str scan0 scan1 popcount hamdist cmp perfsqr \
|
||||
bdivmod gcd gcd_1 gcdext tdiv_qr dc_divrem_n sb_divrem_mn jacbase get_d \
|
||||
mullow_n mulhigh_n mullow_n_basecase mullow_basecase redc_basecase \
|
||||
sb_divappr_q toom3_mul toom3_mul_n toom4_mul toom4_mul_n toom7_mul_n \
|
||||
sb_divappr_q toom3_mul toom3_mul_n toom4_mul toom4_mul_n \
|
||||
dc_div_q dc_divappr_q sb_div_q sb_div_qr dc_div_qr inv_divappr_q_n \
|
||||
inv_divappr_q inv_div_q inv_div_qr inv_div_qr_n rootrem_basecase \
|
||||
toom_eval_dgr3_pm1 toom_eval_dgr3_pm2 toom_eval_pm1 toom_eval_pm2 \
|
||||
|
@ -121,8 +121,3 @@ New C level mpn functions since MPIR 0.9
|
||||
void
|
||||
mpn_toom4_mul_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
|
||||
|
||||
/*
|
||||
Multiply {up, n} by {vp, n} and store the result at {rp, 2n} using Toom 7 algorithm
|
||||
*/
|
||||
mpn_toom7_mul_nvoid
|
||||
mpn_toom4_mul_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
|
||||
|
173
doc/mpir.info
173
doc/mpir.info
@ -0,0 +1,173 @@
|
||||
This is mpir.info, produced by makeinfo version 4.11 from mpir.texi.
|
||||
|
||||
This manual describes how to install and use MPIR, the Multiple
|
||||
Precision Integers and Rationals library, version 1.3.1.
|
||||
|
||||
Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
Copyright 2008 William Hart
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License, Version
|
||||
1.2 or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with the Front-Cover Texts being "A GNU
|
||||
Manual", and with the Back-Cover Texts being "You have freedom to copy
|
||||
and modify this GNU Manual, like GNU software". A copy of the license
|
||||
is included in *note GNU Free Documentation License::.
|
||||
|
||||
INFO-DIR-SECTION GNU libraries
|
||||
START-INFO-DIR-ENTRY
|
||||
* mpir: (mpir). MPIR Multiple Precision Integers and Rationals Library.
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
|
||||
Indirect:
|
||||
mpir.info-1: 990
|
||||
mpir.info-2: 300621
|
||||
|
||||
Tag Table:
|
||||
(Indirect)
|
||||
Node: Top990
|
||||
Node: Copying3173
|
||||
Node: Introduction to MPIR5016
|
||||
Node: Installing MPIR7437
|
||||
Node: Build Options8573
|
||||
Node: ABI and ISA24881
|
||||
Node: Notes for Package Builds34308
|
||||
Node: Notes for Particular Systems37426
|
||||
Node: Known Build Problems44354
|
||||
Node: Performance optimization47904
|
||||
Node: MPIR Basics49039
|
||||
Node: Headers and Libraries49693
|
||||
Node: Nomenclature and Types51148
|
||||
Node: Function Classes52859
|
||||
Node: Variable Conventions54397
|
||||
Node: Parameter Conventions55926
|
||||
Node: Memory Management57990
|
||||
Node: Reentrancy59122
|
||||
Node: Useful Macros and Constants60559
|
||||
Node: Compatibility with older versions61905
|
||||
Node: Demonstration Programs62748
|
||||
Node: Efficiency64619
|
||||
Node: Debugging72249
|
||||
Node: Profiling78818
|
||||
Node: Autoconf82852
|
||||
Node: Emacs84726
|
||||
Node: Reporting Bugs85335
|
||||
Node: Integer Functions87902
|
||||
Node: Initializing Integers88681
|
||||
Node: Assigning Integers90353
|
||||
Node: Simultaneous Integer Init & Assign91941
|
||||
Node: Converting Integers93568
|
||||
Node: Integer Arithmetic96221
|
||||
Node: Integer Division97824
|
||||
Node: Integer Exponentiation104253
|
||||
Node: Integer Roots105115
|
||||
Node: Number Theoretic Functions106942
|
||||
Node: Integer Comparisons115093
|
||||
Node: Integer Logic and Bit Fiddling116472
|
||||
Node: I/O of Integers119086
|
||||
Node: Integer Random Numbers121701
|
||||
Node: Integer Import and Export123477
|
||||
Node: Miscellaneous Integer Functions127482
|
||||
Node: Integer Special Functions129343
|
||||
Node: Rational Number Functions132514
|
||||
Node: Initializing Rationals133709
|
||||
Node: Rational Conversions135955
|
||||
Node: Rational Arithmetic137687
|
||||
Node: Comparing Rationals139024
|
||||
Node: Applying Integer Functions140392
|
||||
Node: I/O of Rationals141876
|
||||
Node: Floating-point Functions143739
|
||||
Node: Initializing Floats146627
|
||||
Node: Assigning Floats150325
|
||||
Node: Simultaneous Float Init & Assign152893
|
||||
Node: Converting Floats154423
|
||||
Node: Float Arithmetic157384
|
||||
Node: Float Comparison159430
|
||||
Node: I/O of Floats160782
|
||||
Node: Miscellaneous Float Functions163108
|
||||
Node: Low-level Functions165747
|
||||
Node: Random Number Functions188658
|
||||
Node: Random State Initialization189728
|
||||
Node: Random State Seeding191791
|
||||
Node: Random State Miscellaneous193181
|
||||
Node: Formatted Output193823
|
||||
Node: Formatted Output Strings194069
|
||||
Node: Formatted Output Functions199309
|
||||
Node: C++ Formatted Output203386
|
||||
Node: Formatted Input206073
|
||||
Node: Formatted Input Strings206310
|
||||
Node: Formatted Input Functions210972
|
||||
Node: C++ Formatted Input213945
|
||||
Node: C++ Class Interface215853
|
||||
Node: C++ Interface General216851
|
||||
Node: C++ Interface Integers219934
|
||||
Node: C++ Interface Rationals223368
|
||||
Node: C++ Interface Floats227047
|
||||
Node: C++ Interface Random Numbers232342
|
||||
Node: C++ Interface Limitations234472
|
||||
Node: Custom Allocation237318
|
||||
Node: Language Bindings241964
|
||||
Node: Algorithms245980
|
||||
Node: Multiplication Algorithms246736
|
||||
Node: Basecase Multiplication247710
|
||||
Node: Karatsuba Multiplication249622
|
||||
Node: Toom 3-Way Multiplication253252
|
||||
Node: FFT Multiplication259661
|
||||
Node: Other Multiplication264999
|
||||
Node: Division Algorithms267392
|
||||
Node: Single Limb Division267740
|
||||
Node: Basecase Division270660
|
||||
Node: Divide and Conquer Division271864
|
||||
Node: Exact Division274102
|
||||
Node: Exact Remainder277270
|
||||
Node: Small Quotient Division279563
|
||||
Node: Greatest Common Divisor Algorithms281162
|
||||
Node: Binary GCD281436
|
||||
Node: Accelerated GCD284115
|
||||
Node: Extended GCD285914
|
||||
Node: Jacobi Symbol287585
|
||||
Node: Powering Algorithms288502
|
||||
Node: Normal Powering Algorithm288766
|
||||
Node: Modular Powering Algorithm289295
|
||||
Node: Root Extraction Algorithms290359
|
||||
Node: Square Root Algorithm290675
|
||||
Node: Nth Root Algorithm292818
|
||||
Node: Perfect Square Algorithm293604
|
||||
Node: Perfect Power Algorithm295691
|
||||
Node: Radix Conversion Algorithms296313
|
||||
Node: Binary to Radix296690
|
||||
Node: Radix to Binary300621
|
||||
Node: Other Algorithms302553
|
||||
Node: Prime Testing Algorithm302907
|
||||
Node: Factorial Algorithm304092
|
||||
Node: Binomial Coefficients Algorithm305496
|
||||
Node: Fibonacci Numbers Algorithm306391
|
||||
Node: Lucas Numbers Algorithm308867
|
||||
Node: Random Number Algorithms309589
|
||||
Node: Assembler Coding311713
|
||||
Node: Assembler Code Organisation312690
|
||||
Node: Assembler Basics313663
|
||||
Node: Assembler Carry Propagation314822
|
||||
Node: Assembler Cache Handling316660
|
||||
Node: Assembler Functional Units318828
|
||||
Node: Assembler Floating Point320449
|
||||
Node: Assembler SIMD Instructions324232
|
||||
Node: Assembler Software Pipelining325221
|
||||
Node: Assembler Loop Unrolling326289
|
||||
Node: Assembler Writing Guide328509
|
||||
Node: Internals331279
|
||||
Node: Integer Internals331793
|
||||
Node: Rational Internals334050
|
||||
Node: Float Internals335290
|
||||
Node: Raw Output Internals342618
|
||||
Node: C++ Interface Internals343813
|
||||
Node: Contributors347112
|
||||
Node: References353691
|
||||
Node: GNU Free Documentation License360764
|
||||
Node: Concept Index383211
|
||||
Node: Function Index429073
|
||||
|
||||
End Tag Table
|
@ -5927,7 +5927,6 @@ algorithms, as the size N increases.
|
||||
Karatsuba `MUL_KARATSUBA_THRESHOLD'
|
||||
Toom-3 `MUL_TOOM3_THRESHOLD'
|
||||
Toom-4 `MUL_TOOM4_THRESHOLD'
|
||||
Toom-7 `MUL_TOOM7_THRESHOLD'
|
||||
FFT `MUL_FFT_THRESHOLD'
|
||||
|
||||
Similarly for squaring, with the `SQR' thresholds.
|
||||
|
@ -7106,7 +7106,6 @@ algorithms, as the size N increases.
|
||||
@item Karatsuba @tab @code{MUL_KARATSUBA_THRESHOLD}
|
||||
@item Toom-3 @tab @code{MUL_TOOM3_THRESHOLD}
|
||||
@item Toom-4 @tab @code{MUL_TOOM4_THRESHOLD}
|
||||
@item Toom-7 @tab @code{MUL_TOOM7_THRESHOLD}
|
||||
@item FFT @tab @code{MUL_FFT_THRESHOLD}
|
||||
@end multitable
|
||||
@end quotation
|
||||
|
35
gmp-impl.h
35
gmp-impl.h
@ -1099,11 +1099,9 @@ __GMP_DECLSPEC extern gmp_randstate_t __gmp_rands;
|
||||
/* Need l>=1, ls>=1, and 2*ls > l (the latter for the tD MPN_INCR_U) */
|
||||
#define MPN_TOOM3_MUL_N_MINSIZE 17
|
||||
#define MPN_TOOM4_MUL_N_MINSIZE 32
|
||||
#define MPN_TOOM7_MUL_N_MINSIZE 56
|
||||
#define MPN_TOOM8H_MUL_MINSIZE 86
|
||||
#define MPN_TOOM3_SQR_N_MINSIZE 17
|
||||
#define MPN_TOOM4_SQR_N_MINSIZE 32
|
||||
#define MPN_TOOM7_SQR_N_MINSIZE 56
|
||||
#define MPN_TOOM8_SQR_N_MINSIZE 40
|
||||
#define MPN_FFT_MUL_N_MINSIZE 64
|
||||
|
||||
@ -1152,9 +1150,6 @@ void mpn_toom4_interpolate _PROTO ((mp_ptr rp, mp_size_t * rpn, mp_size_t sn,
|
||||
mp_ptr tp, mp_size_t s4, mp_size_t n4, mp_size_t n6,
|
||||
mp_limb_t r30));
|
||||
|
||||
#define mpn_toom7_mul_n __MPN(toom7_mul_n)
|
||||
void mpn_toom7_mul_n _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
|
||||
|
||||
#define mpn_toom_eval_dgr3_pm1 __MPN(toom_eval_dgr3_pm1)
|
||||
int mpn_toom_eval_dgr3_pm1 _PROTO ((mp_ptr xp1, mp_ptr xm1,
|
||||
mp_srcptr xp, mp_size_t n, mp_size_t x3n, mp_ptr tp));
|
||||
@ -1206,9 +1201,6 @@ void mpn_toom8_sqr_n _PROTO((mp_ptr, mp_srcptr, mp_size_t));
|
||||
#define mpn_toom42_mulmid __MPN(toom42_mulmid)
|
||||
void mpn_toom42_mulmid __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
|
||||
#define mpn_toom7_sqr_n __MPN(toom7_sqr_n)
|
||||
void mpn_toom7_sqr_n _PROTO((mp_ptr, mp_srcptr, mp_size_t));
|
||||
|
||||
#define mpn_fft_best_k __MPN(fft_best_k)
|
||||
int mpn_fft_best_k _PROTO ((mp_size_t n, int sqr)) ATTRIBUTE_CONST;
|
||||
|
||||
@ -1551,10 +1543,6 @@ __GMP_DECLSPEC extern const mp_limb_t __gmp_fib_table[];
|
||||
#define MULMID_TOOM42_THRESHOLD 36
|
||||
#endif
|
||||
|
||||
#ifndef MUL_TOOM7_THRESHOLD
|
||||
#define MUL_TOOM7_THRESHOLD 700
|
||||
#endif
|
||||
|
||||
#ifndef MUL_TOOM8H_THRESHOLD
|
||||
#define MUL_TOOM8H_THRESHOLD 401
|
||||
#endif
|
||||
@ -1633,9 +1621,6 @@ __GMP_DECLSPEC extern const mp_limb_t __gmp_fib_table[];
|
||||
#ifndef MUL_TOOM4_THRESHOLD_LIMIT
|
||||
#define MUL_TOOM4_THRESHOLD_LIMIT MUL_TOOM4_THRESHOLD
|
||||
#endif
|
||||
#ifndef MUL_TOOM7_THRESHOLD_LIMIT
|
||||
#define MUL_TOOM7_THRESHOLD_LIMIT MUL_TOOM7_THRESHOLD
|
||||
#endif
|
||||
#ifndef MUL_TOOM8H_THRESHOLD_LIMIT
|
||||
#define MUL_TOOM8H_THRESHOLD_LIMIT MUL_TOOM8H_THRESHOLD
|
||||
#endif
|
||||
@ -1670,10 +1655,6 @@ __GMP_DECLSPEC extern const mp_limb_t __gmp_fib_table[];
|
||||
#define SQR_TOOM4_THRESHOLD 300
|
||||
#endif
|
||||
|
||||
#ifndef SQR_TOOM7_THRESHOLD
|
||||
#define SQR_TOOM7_THRESHOLD 700
|
||||
#endif
|
||||
|
||||
#ifndef SQR_TOOM8_THRESHOLD
|
||||
#define SQR_TOOM8_THRESHOLD 400
|
||||
#endif
|
||||
@ -1687,10 +1668,6 @@ __GMP_DECLSPEC extern const mp_limb_t __gmp_fib_table[];
|
||||
#define SQR_TOOM4_THRESHOLD_LIMIT SQR_TOOM4_THRESHOLD
|
||||
#endif
|
||||
|
||||
#ifndef SQR_TOOM7_THRESHOLD_LIMIT
|
||||
#define SQR_TOOM7_THRESHOLD_LIMIT SQR_TOOM7_THRESHOLD
|
||||
#endif
|
||||
|
||||
#ifndef SQR_TOOM8_THRESHOLD_LIMIT
|
||||
#define SQR_TOOM8_THRESHOLD_LIMIT SQR_TOOM8_THRESHOLD
|
||||
#endif
|
||||
@ -4110,10 +4087,6 @@ extern mp_size_t mul_toom3_threshold;
|
||||
#define MUL_TOOM4_THRESHOLD mul_toom4_threshold
|
||||
extern mp_size_t mul_toom4_threshold;
|
||||
|
||||
#undef MUL_TOOM7_THRESHOLD
|
||||
#define MUL_TOOM7_THRESHOLD mul_toom7_threshold
|
||||
extern mp_size_t mul_toom7_threshold;
|
||||
|
||||
#undef MUL_TOOM8H_THRESHOLD
|
||||
#define MUL_TOOM8H_THRESHOLD mul_toom8h_threshold
|
||||
extern mp_size_t mul_toom8h_threshold;
|
||||
@ -4154,10 +4127,6 @@ extern mp_size_t sqr_toom3_threshold;
|
||||
#define SQR_TOOM4_THRESHOLD sqr_toom4_threshold
|
||||
extern mp_size_t sqr_toom4_threshold;
|
||||
|
||||
#undef SQR_TOOM7_THRESHOLD
|
||||
#define SQR_TOOM7_THRESHOLD sqr_toom7_threshold
|
||||
extern mp_size_t sqr_toom7_threshold;
|
||||
|
||||
#undef SQR_TOOM8_THRESHOLD
|
||||
#define SQR_TOOM8_THRESHOLD sqr_toom8_threshold
|
||||
extern mp_size_t sqr_toom8_threshold;
|
||||
@ -4338,23 +4307,19 @@ extern mp_size_t mpn_fft_table[2][MPN_FFT_TABLE_SIZE];
|
||||
#undef MUL_KARATSUBA_THRESHOLD_LIMIT
|
||||
#undef MUL_TOOM3_THRESHOLD_LIMIT
|
||||
#undef MUL_TOOM4_THRESHOLD_LIMIT
|
||||
#undef MUL_TOOM7_THRESHOLD_LIMIT
|
||||
#undef MUL_TOOM8H_THRESHOLD_LIMIT
|
||||
#undef MULLOW_BASECASE_THRESHOLD_LIMIT
|
||||
#undef SQR_TOOM3_THRESHOLD_LIMIT
|
||||
#undef SQR_TOOM4_THRESHOLD_LIMIT
|
||||
#undef SQR_TOOM7_THRESHOLD_LIMIT
|
||||
#undef SQR_TOOM8_THRESHOLD_LIMIT
|
||||
#define SQR_KARATSUBA_MAX_GENERIC 200
|
||||
#define MUL_KARATSUBA_THRESHOLD_LIMIT 700
|
||||
#define MUL_TOOM3_THRESHOLD_LIMIT 700
|
||||
#define MUL_TOOM4_THRESHOLD_LIMIT 1000
|
||||
#define MUL_TOOM7_THRESHOLD_LIMIT 2000
|
||||
#define MUL_TOOM8H_THRESHOLD_LIMIT 2000
|
||||
#define MULLOW_BASECASE_THRESHOLD_LIMIT 200
|
||||
#define SQR_TOOM3_THRESHOLD_LIMIT 400
|
||||
#define SQR_TOOM4_THRESHOLD_LIMIT 1000
|
||||
#define SQR_TOOM7_THRESHOLD_LIMIT 2000
|
||||
#define SQR_TOOM8_THRESHOLD_LIMIT 2000
|
||||
#define GET_STR_THRESHOLD_LIMIT 150
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,14 +3,12 @@
|
||||
#define MUL_KARATSUBA_THRESHOLD 22
|
||||
#define MUL_TOOM3_THRESHOLD 129
|
||||
#define MUL_TOOM4_THRESHOLD 214
|
||||
#define MUL_TOOM7_THRESHOLD 381
|
||||
#define MUL_TOOM8H_THRESHOLD 400
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
|
||||
#define SQR_KARATSUBA_THRESHOLD 28
|
||||
#define SQR_TOOM3_THRESHOLD 121
|
||||
#define SQR_TOOM4_THRESHOLD 121
|
||||
#define SQR_TOOM7_THRESHOLD 399
|
||||
#define SQR_TOOM8_THRESHOLD 650
|
||||
|
||||
#define MULLOW_BASECASE_THRESHOLD 8
|
||||
|
@ -4,14 +4,12 @@
|
||||
#define MUL_KARATSUBA_THRESHOLD 30
|
||||
#define MUL_TOOM3_THRESHOLD 113
|
||||
#define MUL_TOOM4_THRESHOLD 398
|
||||
#define MUL_TOOM7_THRESHOLD 399
|
||||
#define MUL_TOOM8H_THRESHOLD 400
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
|
||||
#define SQR_KARATSUBA_THRESHOLD 36
|
||||
#define SQR_TOOM3_THRESHOLD 129
|
||||
#define SQR_TOOM4_THRESHOLD 134
|
||||
#define SQR_TOOM7_THRESHOLD 399
|
||||
#define SQR_TOOM8_THRESHOLD 650
|
||||
|
||||
#define MULLOW_BASECASE_THRESHOLD 29
|
||||
|
@ -1,77 +1,75 @@
|
||||
|
||||
/* Generated by tuneup.c, 2009-10-20, system compiler */
|
||||
|
||||
#define MUL_KARATSUBA_THRESHOLD 30
|
||||
#define MUL_TOOM3_THRESHOLD 113
|
||||
#define MUL_TOOM4_THRESHOLD 858
|
||||
#define MUL_TOOM7_THRESHOLD 858
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
|
||||
#define SQR_KARATSUBA_THRESHOLD 36
|
||||
#define SQR_TOOM3_THRESHOLD 129
|
||||
#define SQR_TOOM4_THRESHOLD 134
|
||||
#define SQR_TOOM7_THRESHOLD 144
|
||||
|
||||
#define MULLOW_BASECASE_THRESHOLD 29
|
||||
#define MULLOW_DC_THRESHOLD 29
|
||||
#define MULLOW_MUL_THRESHOLD 9970
|
||||
|
||||
#define MULHIGH_BASECASE_THRESHOLD 0 /* always */
|
||||
#define MULHIGH_DC_THRESHOLD 4
|
||||
#define MULHIGH_MUL_THRESHOLD 4
|
||||
|
||||
#define MULMOD_2EXPM1_THRESHOLD 2
|
||||
|
||||
#define DIV_SB_PREINV_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIV_DC_THRESHOLD 64
|
||||
#define POWM_THRESHOLD 391
|
||||
#define FAC_UI_THRESHOLD 32756
|
||||
|
||||
#define GCD_ACCEL_THRESHOLD 866
|
||||
#define GCDEXT_THRESHOLD 298
|
||||
#define JACOBI_BASE_METHOD 2
|
||||
|
||||
#define DIVREM_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIVREM_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define MOD_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define MOD_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define USE_PREINV_DIVREM_1 0
|
||||
#define USE_PREINV_MOD_1 1
|
||||
#define DIVREM_2_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
|
||||
#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */
|
||||
#define MOD_1_1_THRESHOLD 3
|
||||
#define MOD_1_2_THRESHOLD 4
|
||||
#define MOD_1_3_THRESHOLD 5
|
||||
#define DIVREM_HENSEL_QR_1_THRESHOLD 39
|
||||
#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 3
|
||||
#define DIVREM_EUCLID_HENSEL_THRESHOLD 8
|
||||
|
||||
#define ROOTREM_THRESHOLD 1
|
||||
|
||||
#define GET_STR_DC_THRESHOLD 20
|
||||
#define GET_STR_PRECOMPUTE_THRESHOLD 22
|
||||
#define SET_STR_THRESHOLD 7764
|
||||
|
||||
#define MUL_FFT_TABLE { 656, 800, 4032, 4864, 11264, 36864, 0 }
|
||||
#define MUL_FFT_MODF_THRESHOLD 656
|
||||
#define MUL_FFT_THRESHOLD 7680
|
||||
|
||||
#define SQR_FFT_TABLE { 624, 1568, 3904, 4352, 11264, 36864, 0 }
|
||||
#define SQR_FFT_MODF_THRESHOLD 624
|
||||
#define SQR_FFT_THRESHOLD 5888
|
||||
|
||||
/* Tuneup completed successfully, took 14 seconds */
|
||||
|
||||
#define MUL_FFT_TABLE2 {{1, 3}, {205, 4}, {210, 3}, {220, 4}, {260, 3}, {266, 4}, {272, 3}, {278, 4}, {285, 3}, {292, 4}, {413, 5}, {433, 4}, {443, 5}, {463, 6}, {474, 5}, {485, 4}, {507, 5}, {850, 4}, {869, 5}, {889, 3}, {909, 4}, {929, 2}, {950, 3}, {971, 4}, {993, 5}, {1015, 6}, {1038, 5}, {1061, 6}, {1109, 7}, {1134, 6}, {1159, 5}, {1185, 6}, {1612, 5}, {1648, 6}, {2144, 4}, {2191, 5}, {2239, 6}, {2289, 7}, {2340, 6}, {2445, 7}, {2499, 6}, {2668, 7}, {2727, 6}, {2849, 5}, {2912, 4}, {2976, 5}, {3042, 6}, {3320, 5}, {3393, 6}, {3468, 7}, {3544, 5}, {3622, 6}, {3784, 5}, {3867, 6}, {3952, 5}, {4039, 6}, {4219, 7}, {4312, 8}, {4914, 7}, {5022, 8}, {5245, 6}, {5360, 7}, {5598, 8}, {6241, 6}, {6378, 7}, {6518, 8}, {6807, 9}, {6957, 8}, {7110, 9}, {7266, 8}, {7426, 9}, {7756, 8}, {8100, 7}, {8278, 8}, {8460, 9}, {8646, 7}, {8836, 8}, {9638, 9}, {9850, 8}, {10744, 9}, {10980, 8}, {11221, 9}, {12239, 8}, {12507, 9}, {13347, 8}, {14245, 9}, {15202, 10}, {15535, 9}, {16224, 8}, {16580, 9}, {16944, 8}, {17316, 9}, {18084, 8}, {18480, 9}, {19299, 10}, {19722, 9}, {25581, 10}, {26715, 9}, {29772, 10}, {31772, 9}, {33906, 10}, {36184, 9}, {37787, 10}, {40326, 9}, {41210, 10}, {58292, 11}, {62207, 12}, {63570, 10}, {70845, 11}, {72397, 10}, {73983, 11}, {80681, 10}, {89912, 11}, {98051, 10}, {102394, 11}, {114110, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {164920, 12}, {168532, 11}, {172223, 12}, {196129, 11}, {228243, 12}, {233241, 13}, {254354, 12}, {259924, 11}, {283451, 12}, {289658, 11}, {296001, 12}, {329862, 11}, {344468, 12}, {456509, 13}, {519871, 12}, {659749, 13}, {784582, 12}, {933036, 13}, {953467, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define MUL_FFTM_TABLE2 {{1, 3}, {205, 4}, {215, 3}, {220, 4}, {377, 5}, {386, 4}, {404, 5}, {423, 4}, {433, 5}, {507, 4}, {519, 5}, {555, 4}, {568, 5}, {813, 6}, {831, 4}, {850, 5}, {869, 6}, {889, 5}, {909, 4}, {929, 5}, {950, 6}, {971, 5}, {993, 6}, {1109, 5}, {1134, 6}, {1238, 5}, {1266, 6}, {2144, 7}, {2191, 6}, {2289, 7}, {2340, 6}, {2392, 7}, {2445, 6}, {2499, 7}, {3109, 5}, {3178, 6}, {3248, 7}, {3544, 5}, {3622, 6}, {3702, 4}, {3784, 5}, {3867, 6}, {3952, 7}, {4039, 5}, {4128, 6}, {4219, 7}, {4312, 5}, {4407, 6}, {4504, 7}, {4914, 8}, {5022, 6}, {5132, 7}, {6107, 8}, {6241, 9}, {6378, 8}, {6518, 7}, {6661, 8}, {6807, 7}, {7110, 8}, {7266, 9}, {7426, 8}, {7589, 9}, {7756, 8}, {8278, 9}, {8460, 8}, {9030, 9}, {9228, 10}, {9431, 9}, {9638, 8}, {10066, 7}, {10287, 8}, {10980, 9}, {11467, 7}, {11719, 8}, {12239, 7}, {12507, 8}, {12781, 9}, {13939, 10}, {14245, 8}, {15535, 9}, {15876, 10}, {16224, 8}, {16580, 9}, {18885, 10}, {19299, 8}, {19722, 9}, {20154, 10}, {20596, 8}, {21047, 9}, {22461, 10}, {22953, 9}, {25581, 10}, {26142, 9}, {26715, 10}, {27898, 9}, {29134, 10}, {31091, 9}, {31772, 10}, {34649, 9}, {35408, 10}, {36184, 11}, {36977, 9}, {37787, 10}, {40326, 9}, {41210, 10}, {42113, 9}, {43036, 10}, {46934, 11}, {47962, 10}, {52305, 9}, {53451, 10}, {57042, 11}, {58292, 10}, {59569, 11}, {62207, 12}, {63570, 10}, {69326, 11}, {72397, 10}, {73983, 11}, {80681, 10}, {84254, 11}, {91881, 12}, {93893, 11}, {98051, 10}, {102394, 11}, {116609, 12}, {127165, 11}, {147989, 12}, {161386, 11}, {164920, 12}, {168532, 11}, {175995, 12}, {196129, 11}, {204813, 12}, {228243, 13}, {243569, 12}, {248903, 13}, {254354, 12}, {259924, 11}, {265616, 12}, {359720, 13}, {392279, 12}, {456509, 13}, {466506, 14}, {508731, 13}, {519871, 12}, {566925, 13}, {579340, 12}, {592026, 13}, {674196, 12}, {688959, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFT_TABLE2 {{1, 3}, {205, 4}, {210, 3}, {220, 4}, {225, 3}, {230, 4}, {272, 3}, {278, 4}, {404, 5}, {423, 4}, {443, 5}, {665, 4}, {680, 5}, {929, 6}, {1294, 5}, {1323, 6}, {1476, 5}, {1509, 6}, {1922, 4}, {1965, 2}, {2009, 3}, {2098, 4}, {2144, 5}, {2191, 6}, {2340, 4}, {2392, 2}, {2849, 3}, {2912, 4}, {2976, 5}, {3042, 6}, {3109, 4}, {3178, 5}, {3248, 6}, {3320, 7}, {3784, 8}, {3867, 7}, {4128, 8}, {4219, 9}, {4312, 8}, {4407, 6}, {4504, 7}, {4603, 8}, {4704, 9}, {4808, 8}, {4914, 7}, {5132, 8}, {5478, 7}, {5598, 8}, {5976, 7}, {6107, 8}, {6518, 7}, {6661, 5}, {6807, 6}, {6957, 5}, {7110, 4}, {7266, 5}, {7426, 6}, {7589, 4}, {7756, 2}, {7926, 3}, {8460, 4}, {8646, 5}, {8836, 4}, {9228, 5}, {9431, 6}, {9638, 7}, {9850, 8}, {10744, 9}, {10980, 8}, {11221, 9}, {11719, 10}, {11976, 8}, {12239, 6}, {12781, 4}, {13061, 5}, {13347, 4}, {13640, 5}, {13939, 6}, {14245, 5}, {14557, 6}, {14876, 4}, {15202, 5}, {15876, 6}, {16224, 7}, {17316, 8}, {18084, 7}, {18885, 8}, {19299, 9}, {19722, 8}, {20154, 9}, {21047, 7}, {22953, 8}, {23456, 9}, {25581, 10}, {26142, 9}, {26715, 10}, {27898, 8}, {28509, 9}, {29772, 10}, {32468, 8}, {33179, 9}, {34649, 10}, {37787, 9}, {38615, 10}, {39461, 9}, {41210, 10}, {45928, 11}, {47962, 10}, {52305, 9}, {53451, 10}, {57042, 11}, {59569, 10}, {60874, 11}, {62207, 12}, {63570, 10}, {66386, 11}, {69326, 10}, {70845, 9}, {72397, 10}, {73983, 11}, {75604, 10}, {77260, 11}, {78952, 10}, {84254, 11}, {86099, 10}, {87985, 11}, {91881, 10}, {93893, 11}, {104637, 10}, {106929, 11}, {111664, 10}, {114110, 11}, {116609, 12}, {119163, 10}, {121773, 11}, {124440, 12}, {127165, 11}, {157927, 12}, {161386, 11}, {168532, 12}, {172223, 11}, {175995, 12}, {196129, 11}, {228243, 12}, {243569, 13}, {248903, 12}, {259924, 11}, {283451, 12}, {289658, 11}, {296001, 12}, {337086, 11}, {344468, 12}, {392279, 11}, {400869, 12}, {456509, 13}, {519871, 12}, {659749, 13}, {784582, 12}, {855595, 11}, {874331, 12}, {893477, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFTM_TABLE2 {{1, 3}, {215, 4}, {360, 2}, {368, 3}, {377, 4}, {404, 5}, {496, 4}, {507, 5}, {695, 6}, {711, 5}, {831, 6}, {850, 5}, {869, 6}, {1109, 5}, {1134, 6}, {1612, 4}, {1648, 5}, {1685, 6}, {1799, 7}, {1839, 6}, {1880, 7}, {1922, 6}, {1965, 7}, {2009, 8}, {2053, 6}, {2144, 7}, {2239, 6}, {2340, 7}, {2392, 6}, {2445, 7}, {2727, 6}, {2787, 7}, {2849, 6}, {2912, 7}, {3178, 6}, {3248, 7}, {3393, 6}, {3468, 4}, {3544, 5}, {3622, 4}, {3702, 5}, {3784, 4}, {3867, 5}, {3952, 6}, {4039, 4}, {4219, 5}, {4312, 6}, {4504, 4}, {4603, 3}, {4808, 4}, {4914, 3}, {5022, 4}, {5132, 5}, {5245, 6}, {5360, 4}, {5478, 3}, {5598, 2}, {5721, 3}, {5847, 4}, {5976, 5}, {6241, 6}, {6378, 5}, {6518, 6}, {6661, 7}, {6807, 5}, {6957, 6}, {7110, 7}, {7266, 6}, {7426, 7}, {7589, 8}, {7756, 7}, {7926, 8}, {8278, 7}, {8460, 6}, {8646, 7}, {8836, 6}, {9030, 5}, {9431, 4}, {9638, 5}, {9850, 6}, {10066, 5}, {10513, 6}, {10744, 7}, {10980, 8}, {11221, 9}, {12239, 7}, {12507, 6}, {13640, 7}, {14245, 8}, {14557, 9}, {15202, 7}, {16224, 8}, {16580, 9}, {16944, 8}, {17696, 9}, {18084, 7}, {18885, 8}, {19299, 9}, {19722, 8}, {21508, 9}, {22461, 10}, {24495, 8}, {25032, 9}, {25581, 10}, {26715, 9}, {27300, 10}, {27898, 9}, {29772, 10}, {30424, 8}, {32468, 9}, {33179, 10}, {33906, 8}, {34649, 9}, {35408, 10}, {36977, 11}, {37787, 10}, {40326, 9}, {42113, 10}, {43036, 9}, {43979, 10}, {44943, 11}, {45928, 9}, {46934, 10}, {50087, 11}, {52305, 10}, {53451, 11}, {55819, 10}, {57042, 11}, {59569, 9}, {60874, 10}, {62207, 11}, {63570, 9}, {64963, 10}, {66386, 11}, {67840, 10}, {70845, 11}, {73983, 9}, {75604, 10}, {77260, 11}, {78952, 12}, {80681, 10}, {82448, 11}, {89912, 10}, {93893, 11}, {104637, 10}, {109271, 11}, {114110, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {135704, 12}, {138676, 11}, {151230, 12}, {164920, 11}, {172223, 12}, {196129, 11}, {209298, 12}, {228243, 13}, {233241, 12}, {238349, 13}, {243569, 12}, {248903, 13}, {254354, 12}, {337086, 13}, {344468, 12}, {352011, 13}, {392279, 12}, {456509, 13}, {466506, 12}, {476722, 13}, {497829, 14}, {508731, 13}, {519871, 12}, {566925, 13}, {579340, 12}, {592026, 13}, {659749, 12}, {688959, 13}, {801763, 12}, {819320, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define MUL_FFT_FULL_TABLE2 {{16, 1}, {1045, 2}, {1068, 1}, {1092, 2}, {1116, 4}, {1141, 1}, {1166, 4}, {1192, 2}, {1219, 1}, {1246, 3}, {1274, 1}, {1361, 2}, {1391, 1}, {1623, 3}, {1659, 1}, {1772, 2}, {1811, 1}, {2159, 4}, {2256, 1}, {2306, 2}, {2357, 1}, {2869, 4}, {3063, 1}, {3131, 2}, {3200, 4}, {3343, 2}, {3417, 1}, {3492, 2}, {3648, 4}, {3728, 5}, {3810, 6}, {3894, 4}, {3980, 3}, {4158, 2}, {4250, 4}, {4344, 2}, {4440, 4}, {4538, 5}, {4740, 4}, {4844, 6}, {4951, 4}, {5060, 3}, {5171, 2}, {5285, 3}, {5401, 6}, {5520, 3}, {5641, 1}, {5892, 2}, {6022, 4}, {6154, 3}, {6289, 2}, {6427, 4}, {6568, 3}, {6712, 2}, {6859, 4}, {7010, 2}, {7164, 4}, {7482, 1}, {7986, 2}, {8161, 4}, {8340, 2}, {8710, 5}, {9296, 6}, {9500, 3}, {9709, 1}, {10140, 3}, {10363, 1}, {11059, 4}, {11302, 1}, {11550, 4}, {11803, 2}, {12062, 4}, {12327, 3}, {12873, 1}, {14040, 4}, {14348, 2}, {14663, 1}, {15314, 3}, {15650, 1}, {15993, 2}, {16702, 1}, {17068, 2}, {17442, 1}, {19439, 3}, {19865, 1}, {20300, 2}, {20745, 1}, {26334, 3}, {26911, 1}, {32007, 2}, {33425, 1}, {34905, 2}, {35670, 1}, {36452, 3}, {37251, 4}, {38901, 1}, {40624, 3}, {41514, 1}, {42424, 3}, {43353, 1}, {46266, 2}, {47280, 4}, {50456, 1}, {52691, 3}, {53845, 1}, {57462, 4}, {61321, 1}, {62664, 2}, {64037, 1}, {65440, 2}, {66873, 5}, {68338, 8}, {72928, 5}, {74525, 6}, {76157, 4}, {77825, 1}, {81272, 3}, {83052, 2}, {84871, 3}, {86730, 1}, {88630, 2}, {90571, 1}, {92555, 2}, {94582, 1}, {96654, 2}, {98771, 4}, {103145, 1}, {105404, 2}, {107713, 1}, {114947, 4}, {122667, 1}, {130905, 2}, {145881, 5}, {149076, 6}, {152341, 4}, {155677, 1}, {159086, 4}, {162570, 3}, {166130, 2}, {169768, 3}, {173486, 1}, {193333, 2}, {197567, 4}, {206315, 3}, {215450, 1}, {229917, 2}, {240097, 4}, {245355, 1}, {261830, 2}, {267564, 5}, {273423, 8}, {279411, 9}, {285530, 7}, {298173, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {354596, 1}, {362361, 2}, {370296, 1}, {378405, 2}, {395159, 4}, {412655, 7}, {421691, 10}, {430925, 8}, {440362, 6}, {450005, 5}, {469929, 4}, {490736, 1}, {523686, 2}, {583592, 5}, {596372, 6}, {609431, 4}, {650350, 3}, {694016, 1}, {724743, 2}, {740613, 1}, {756831, 2}, {790340, 1}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFT_FULL_TABLE2 {{16, 2}, {1022, 1}, {1092, 2}, {1116, 4}, {1141, 2}, {1166, 1}, {1219, 2}, {1274, 1}, {1331, 4}, {1361, 1}, {1422, 2}, {1454, 1}, {1486, 3}, {1519, 1}, {1588, 2}, {1659, 1}, {1934, 4}, {1977, 6}, {2066, 2}, {2112, 4}, {2207, 1}, {2357, 4}, {2409, 3}, {2462, 4}, {2516, 3}, {2572, 2}, {2746, 3}, {2807, 2}, {2869, 5}, {2932, 2}, {2997, 3}, {3063, 1}, {3131, 4}, {3200, 5}, {3271, 4}, {3417, 2}, {3492, 3}, {3648, 2}, {3728, 5}, {3894, 4}, {4158, 2}, {4250, 4}, {4344, 2}, {4440, 3}, {4538, 2}, {4740, 3}, {4844, 1}, {4951, 2}, {5060, 3}, {5171, 2}, {5285, 1}, {5641, 3}, {5765, 6}, {5892, 5}, {6022, 6}, {6289, 4}, {6427, 6}, {6568, 3}, {6712, 4}, {6859, 3}, {7010, 4}, {7321, 2}, {7482, 1}, {7646, 4}, {7814, 3}, {8161, 5}, {8340, 6}, {8523, 5}, {8710, 2}, {8901, 4}, {9096, 2}, {9296, 1}, {9500, 4}, {9922, 1}, {10140, 4}, {10363, 6}, {10822, 7}, {11059, 10}, {11302, 6}, {11550, 8}, {11803, 9}, {12062, 5}, {12327, 8}, {12597, 7}, {12873, 3}, {13155, 2}, {13444, 3}, {14040, 6}, {14348, 8}, {14985, 6}, {15314, 5}, {15650, 6}, {15993, 3}, {16344, 1}, {16702, 3}, {17068, 4}, {17442, 6}, {17824, 8}, {18215, 5}, {18614, 2}, {19022, 4}, {19439, 1}, {20300, 2}, {21200, 5}, {21665, 1}, {22140, 2}, {23121, 1}, {23628, 2}, {24146, 1}, {24675, 4}, {25216, 2}, {25769, 1}, {26334, 4}, {26911, 5}, {27501, 1}, {28104, 4}, {28720, 1}, {29349, 2}, {29992, 1}, {30649, 4}, {31321, 2}, {32007, 4}, {32708, 2}, {35670, 1}, {36452, 4}, {37251, 1}, {38901, 3}, {39753, 1}, {40624, 2}, {42424, 1}, {47280, 4}, {49374, 1}, {50456, 4}, {51561, 3}, {53845, 1}, {57462, 3}, {58721, 4}, {60007, 3}, {61321, 1}, {62664, 2}, {66873, 5}, {68338, 2}, {69835, 1}, {71365, 2}, {72928, 4}, {74525, 6}, {76157, 4}, {77825, 1}, {79530, 4}, {81272, 2}, {83052, 5}, {84871, 3}, {86730, 4}, {88630, 3}, {90571, 6}, {92555, 8}, {100934, 4}, {103145, 6}, {105404, 8}, {107713, 5}, {110072, 1}, {114947, 2}, {117465, 4}, {122667, 3}, {125354, 1}, {130905, 2}, {142755, 5}, {149076, 6}, {152341, 4}, {162570, 3}, {173486, 2}, {189190, 1}, {193333, 2}, {197567, 3}, {201894, 4}, {206315, 3}, {215450, 6}, {224990, 2}, {229917, 5}, {234952, 4}, {245355, 1}, {261830, 4}, {267564, 7}, {273423, 9}, {279411, 12}, {285530, 8}, {291783, 7}, {298173, 6}, {304703, 4}, {311376, 1}, {325163, 3}, {346997, 2}, {354596, 1}, {362361, 2}, {370296, 1}, {378405, 2}, {395159, 4}, {403812, 7}, {421691, 8}, {440362, 6}, {450005, 5}, {469929, 4}, {490736, 1}, {523686, 2}, {583592, 4}, {596372, 6}, {609431, 4}, {650350, 3}, {694016, 2}, {709213, 1}, {724743, 2}, {740613, 1}, {756831, 2}, {790340, 1}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
|
||||
/* Generated by tuneup.c, 2009-10-20, system compiler */
|
||||
|
||||
#define MUL_KARATSUBA_THRESHOLD 30
|
||||
#define MUL_TOOM3_THRESHOLD 113
|
||||
#define MUL_TOOM4_THRESHOLD 858
|
||||
|
||||
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
|
||||
#define SQR_KARATSUBA_THRESHOLD 36
|
||||
#define SQR_TOOM3_THRESHOLD 129
|
||||
#define SQR_TOOM4_THRESHOLD 134
|
||||
|
||||
#define MULLOW_BASECASE_THRESHOLD 29
|
||||
#define MULLOW_DC_THRESHOLD 29
|
||||
#define MULLOW_MUL_THRESHOLD 9970
|
||||
|
||||
#define MULHIGH_BASECASE_THRESHOLD 0 /* always */
|
||||
#define MULHIGH_DC_THRESHOLD 4
|
||||
#define MULHIGH_MUL_THRESHOLD 4
|
||||
|
||||
#define MULMOD_2EXPM1_THRESHOLD 2
|
||||
|
||||
#define DIV_SB_PREINV_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIV_DC_THRESHOLD 64
|
||||
#define POWM_THRESHOLD 391
|
||||
#define FAC_UI_THRESHOLD 32756
|
||||
|
||||
#define GCD_ACCEL_THRESHOLD 866
|
||||
#define GCDEXT_THRESHOLD 298
|
||||
#define JACOBI_BASE_METHOD 2
|
||||
|
||||
#define DIVREM_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIVREM_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define MOD_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define MOD_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define USE_PREINV_DIVREM_1 0
|
||||
#define USE_PREINV_MOD_1 1
|
||||
#define DIVREM_2_THRESHOLD MP_SIZE_T_MAX /* never */
|
||||
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
|
||||
#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */
|
||||
#define MOD_1_1_THRESHOLD 3
|
||||
#define MOD_1_2_THRESHOLD 4
|
||||
#define MOD_1_3_THRESHOLD 5
|
||||
#define DIVREM_HENSEL_QR_1_THRESHOLD 39
|
||||
#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 3
|
||||
#define DIVREM_EUCLID_HENSEL_THRESHOLD 8
|
||||
|
||||
#define ROOTREM_THRESHOLD 1
|
||||
|
||||
#define GET_STR_DC_THRESHOLD 20
|
||||
#define GET_STR_PRECOMPUTE_THRESHOLD 22
|
||||
#define SET_STR_THRESHOLD 7764
|
||||
|
||||
#define MUL_FFT_TABLE { 656, 800, 4032, 4864, 11264, 36864, 0 }
|
||||
#define MUL_FFT_MODF_THRESHOLD 656
|
||||
#define MUL_FFT_THRESHOLD 7680
|
||||
|
||||
#define SQR_FFT_TABLE { 624, 1568, 3904, 4352, 11264, 36864, 0 }
|
||||
#define SQR_FFT_MODF_THRESHOLD 624
|
||||
#define SQR_FFT_THRESHOLD 5888
|
||||
|
||||
/* Tuneup completed successfully, took 14 seconds */
|
||||
|
||||
#define MUL_FFT_TABLE2 {{1, 3}, {205, 4}, {210, 3}, {220, 4}, {260, 3}, {266, 4}, {272, 3}, {278, 4}, {285, 3}, {292, 4}, {413, 5}, {433, 4}, {443, 5}, {463, 6}, {474, 5}, {485, 4}, {507, 5}, {850, 4}, {869, 5}, {889, 3}, {909, 4}, {929, 2}, {950, 3}, {971, 4}, {993, 5}, {1015, 6}, {1038, 5}, {1061, 6}, {1109, 7}, {1134, 6}, {1159, 5}, {1185, 6}, {1612, 5}, {1648, 6}, {2144, 4}, {2191, 5}, {2239, 6}, {2289, 7}, {2340, 6}, {2445, 7}, {2499, 6}, {2668, 7}, {2727, 6}, {2849, 5}, {2912, 4}, {2976, 5}, {3042, 6}, {3320, 5}, {3393, 6}, {3468, 7}, {3544, 5}, {3622, 6}, {3784, 5}, {3867, 6}, {3952, 5}, {4039, 6}, {4219, 7}, {4312, 8}, {4914, 7}, {5022, 8}, {5245, 6}, {5360, 7}, {5598, 8}, {6241, 6}, {6378, 7}, {6518, 8}, {6807, 9}, {6957, 8}, {7110, 9}, {7266, 8}, {7426, 9}, {7756, 8}, {8100, 7}, {8278, 8}, {8460, 9}, {8646, 7}, {8836, 8}, {9638, 9}, {9850, 8}, {10744, 9}, {10980, 8}, {11221, 9}, {12239, 8}, {12507, 9}, {13347, 8}, {14245, 9}, {15202, 10}, {15535, 9}, {16224, 8}, {16580, 9}, {16944, 8}, {17316, 9}, {18084, 8}, {18480, 9}, {19299, 10}, {19722, 9}, {25581, 10}, {26715, 9}, {29772, 10}, {31772, 9}, {33906, 10}, {36184, 9}, {37787, 10}, {40326, 9}, {41210, 10}, {58292, 11}, {62207, 12}, {63570, 10}, {70845, 11}, {72397, 10}, {73983, 11}, {80681, 10}, {89912, 11}, {98051, 10}, {102394, 11}, {114110, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {164920, 12}, {168532, 11}, {172223, 12}, {196129, 11}, {228243, 12}, {233241, 13}, {254354, 12}, {259924, 11}, {283451, 12}, {289658, 11}, {296001, 12}, {329862, 11}, {344468, 12}, {456509, 13}, {519871, 12}, {659749, 13}, {784582, 12}, {933036, 13}, {953467, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define MUL_FFTM_TABLE2 {{1, 3}, {205, 4}, {215, 3}, {220, 4}, {377, 5}, {386, 4}, {404, 5}, {423, 4}, {433, 5}, {507, 4}, {519, 5}, {555, 4}, {568, 5}, {813, 6}, {831, 4}, {850, 5}, {869, 6}, {889, 5}, {909, 4}, {929, 5}, {950, 6}, {971, 5}, {993, 6}, {1109, 5}, {1134, 6}, {1238, 5}, {1266, 6}, {2144, 7}, {2191, 6}, {2289, 7}, {2340, 6}, {2392, 7}, {2445, 6}, {2499, 7}, {3109, 5}, {3178, 6}, {3248, 7}, {3544, 5}, {3622, 6}, {3702, 4}, {3784, 5}, {3867, 6}, {3952, 7}, {4039, 5}, {4128, 6}, {4219, 7}, {4312, 5}, {4407, 6}, {4504, 7}, {4914, 8}, {5022, 6}, {5132, 7}, {6107, 8}, {6241, 9}, {6378, 8}, {6518, 7}, {6661, 8}, {6807, 7}, {7110, 8}, {7266, 9}, {7426, 8}, {7589, 9}, {7756, 8}, {8278, 9}, {8460, 8}, {9030, 9}, {9228, 10}, {9431, 9}, {9638, 8}, {10066, 7}, {10287, 8}, {10980, 9}, {11467, 7}, {11719, 8}, {12239, 7}, {12507, 8}, {12781, 9}, {13939, 10}, {14245, 8}, {15535, 9}, {15876, 10}, {16224, 8}, {16580, 9}, {18885, 10}, {19299, 8}, {19722, 9}, {20154, 10}, {20596, 8}, {21047, 9}, {22461, 10}, {22953, 9}, {25581, 10}, {26142, 9}, {26715, 10}, {27898, 9}, {29134, 10}, {31091, 9}, {31772, 10}, {34649, 9}, {35408, 10}, {36184, 11}, {36977, 9}, {37787, 10}, {40326, 9}, {41210, 10}, {42113, 9}, {43036, 10}, {46934, 11}, {47962, 10}, {52305, 9}, {53451, 10}, {57042, 11}, {58292, 10}, {59569, 11}, {62207, 12}, {63570, 10}, {69326, 11}, {72397, 10}, {73983, 11}, {80681, 10}, {84254, 11}, {91881, 12}, {93893, 11}, {98051, 10}, {102394, 11}, {116609, 12}, {127165, 11}, {147989, 12}, {161386, 11}, {164920, 12}, {168532, 11}, {175995, 12}, {196129, 11}, {204813, 12}, {228243, 13}, {243569, 12}, {248903, 13}, {254354, 12}, {259924, 11}, {265616, 12}, {359720, 13}, {392279, 12}, {456509, 13}, {466506, 14}, {508731, 13}, {519871, 12}, {566925, 13}, {579340, 12}, {592026, 13}, {674196, 12}, {688959, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFT_TABLE2 {{1, 3}, {205, 4}, {210, 3}, {220, 4}, {225, 3}, {230, 4}, {272, 3}, {278, 4}, {404, 5}, {423, 4}, {443, 5}, {665, 4}, {680, 5}, {929, 6}, {1294, 5}, {1323, 6}, {1476, 5}, {1509, 6}, {1922, 4}, {1965, 2}, {2009, 3}, {2098, 4}, {2144, 5}, {2191, 6}, {2340, 4}, {2392, 2}, {2849, 3}, {2912, 4}, {2976, 5}, {3042, 6}, {3109, 4}, {3178, 5}, {3248, 6}, {3320, 7}, {3784, 8}, {3867, 7}, {4128, 8}, {4219, 9}, {4312, 8}, {4407, 6}, {4504, 7}, {4603, 8}, {4704, 9}, {4808, 8}, {4914, 7}, {5132, 8}, {5478, 7}, {5598, 8}, {5976, 7}, {6107, 8}, {6518, 7}, {6661, 5}, {6807, 6}, {6957, 5}, {7110, 4}, {7266, 5}, {7426, 6}, {7589, 4}, {7756, 2}, {7926, 3}, {8460, 4}, {8646, 5}, {8836, 4}, {9228, 5}, {9431, 6}, {9638, 7}, {9850, 8}, {10744, 9}, {10980, 8}, {11221, 9}, {11719, 10}, {11976, 8}, {12239, 6}, {12781, 4}, {13061, 5}, {13347, 4}, {13640, 5}, {13939, 6}, {14245, 5}, {14557, 6}, {14876, 4}, {15202, 5}, {15876, 6}, {16224, 7}, {17316, 8}, {18084, 7}, {18885, 8}, {19299, 9}, {19722, 8}, {20154, 9}, {21047, 7}, {22953, 8}, {23456, 9}, {25581, 10}, {26142, 9}, {26715, 10}, {27898, 8}, {28509, 9}, {29772, 10}, {32468, 8}, {33179, 9}, {34649, 10}, {37787, 9}, {38615, 10}, {39461, 9}, {41210, 10}, {45928, 11}, {47962, 10}, {52305, 9}, {53451, 10}, {57042, 11}, {59569, 10}, {60874, 11}, {62207, 12}, {63570, 10}, {66386, 11}, {69326, 10}, {70845, 9}, {72397, 10}, {73983, 11}, {75604, 10}, {77260, 11}, {78952, 10}, {84254, 11}, {86099, 10}, {87985, 11}, {91881, 10}, {93893, 11}, {104637, 10}, {106929, 11}, {111664, 10}, {114110, 11}, {116609, 12}, {119163, 10}, {121773, 11}, {124440, 12}, {127165, 11}, {157927, 12}, {161386, 11}, {168532, 12}, {172223, 11}, {175995, 12}, {196129, 11}, {228243, 12}, {243569, 13}, {248903, 12}, {259924, 11}, {283451, 12}, {289658, 11}, {296001, 12}, {337086, 11}, {344468, 12}, {392279, 11}, {400869, 12}, {456509, 13}, {519871, 12}, {659749, 13}, {784582, 12}, {855595, 11}, {874331, 12}, {893477, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFTM_TABLE2 {{1, 3}, {215, 4}, {360, 2}, {368, 3}, {377, 4}, {404, 5}, {496, 4}, {507, 5}, {695, 6}, {711, 5}, {831, 6}, {850, 5}, {869, 6}, {1109, 5}, {1134, 6}, {1612, 4}, {1648, 5}, {1685, 6}, {1799, 7}, {1839, 6}, {1880, 7}, {1922, 6}, {1965, 7}, {2009, 8}, {2053, 6}, {2144, 7}, {2239, 6}, {2340, 7}, {2392, 6}, {2445, 7}, {2727, 6}, {2787, 7}, {2849, 6}, {2912, 7}, {3178, 6}, {3248, 7}, {3393, 6}, {3468, 4}, {3544, 5}, {3622, 4}, {3702, 5}, {3784, 4}, {3867, 5}, {3952, 6}, {4039, 4}, {4219, 5}, {4312, 6}, {4504, 4}, {4603, 3}, {4808, 4}, {4914, 3}, {5022, 4}, {5132, 5}, {5245, 6}, {5360, 4}, {5478, 3}, {5598, 2}, {5721, 3}, {5847, 4}, {5976, 5}, {6241, 6}, {6378, 5}, {6518, 6}, {6661, 7}, {6807, 5}, {6957, 6}, {7110, 7}, {7266, 6}, {7426, 7}, {7589, 8}, {7756, 7}, {7926, 8}, {8278, 7}, {8460, 6}, {8646, 7}, {8836, 6}, {9030, 5}, {9431, 4}, {9638, 5}, {9850, 6}, {10066, 5}, {10513, 6}, {10744, 7}, {10980, 8}, {11221, 9}, {12239, 7}, {12507, 6}, {13640, 7}, {14245, 8}, {14557, 9}, {15202, 7}, {16224, 8}, {16580, 9}, {16944, 8}, {17696, 9}, {18084, 7}, {18885, 8}, {19299, 9}, {19722, 8}, {21508, 9}, {22461, 10}, {24495, 8}, {25032, 9}, {25581, 10}, {26715, 9}, {27300, 10}, {27898, 9}, {29772, 10}, {30424, 8}, {32468, 9}, {33179, 10}, {33906, 8}, {34649, 9}, {35408, 10}, {36977, 11}, {37787, 10}, {40326, 9}, {42113, 10}, {43036, 9}, {43979, 10}, {44943, 11}, {45928, 9}, {46934, 10}, {50087, 11}, {52305, 10}, {53451, 11}, {55819, 10}, {57042, 11}, {59569, 9}, {60874, 10}, {62207, 11}, {63570, 9}, {64963, 10}, {66386, 11}, {67840, 10}, {70845, 11}, {73983, 9}, {75604, 10}, {77260, 11}, {78952, 12}, {80681, 10}, {82448, 11}, {89912, 10}, {93893, 11}, {104637, 10}, {109271, 11}, {114110, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {135704, 12}, {138676, 11}, {151230, 12}, {164920, 11}, {172223, 12}, {196129, 11}, {209298, 12}, {228243, 13}, {233241, 12}, {238349, 13}, {243569, 12}, {248903, 13}, {254354, 12}, {337086, 13}, {344468, 12}, {352011, 13}, {392279, 12}, {456509, 13}, {466506, 12}, {476722, 13}, {497829, 14}, {508731, 13}, {519871, 12}, {566925, 13}, {579340, 12}, {592026, 13}, {659749, 12}, {688959, 13}, {801763, 12}, {819320, 13}, {913042, 14}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define MUL_FFT_FULL_TABLE2 {{16, 1}, {1045, 2}, {1068, 1}, {1092, 2}, {1116, 4}, {1141, 1}, {1166, 4}, {1192, 2}, {1219, 1}, {1246, 3}, {1274, 1}, {1361, 2}, {1391, 1}, {1623, 3}, {1659, 1}, {1772, 2}, {1811, 1}, {2159, 4}, {2256, 1}, {2306, 2}, {2357, 1}, {2869, 4}, {3063, 1}, {3131, 2}, {3200, 4}, {3343, 2}, {3417, 1}, {3492, 2}, {3648, 4}, {3728, 5}, {3810, 6}, {3894, 4}, {3980, 3}, {4158, 2}, {4250, 4}, {4344, 2}, {4440, 4}, {4538, 5}, {4740, 4}, {4844, 6}, {4951, 4}, {5060, 3}, {5171, 2}, {5285, 3}, {5401, 6}, {5520, 3}, {5641, 1}, {5892, 2}, {6022, 4}, {6154, 3}, {6289, 2}, {6427, 4}, {6568, 3}, {6712, 2}, {6859, 4}, {7010, 2}, {7164, 4}, {7482, 1}, {7986, 2}, {8161, 4}, {8340, 2}, {8710, 5}, {9296, 6}, {9500, 3}, {9709, 1}, {10140, 3}, {10363, 1}, {11059, 4}, {11302, 1}, {11550, 4}, {11803, 2}, {12062, 4}, {12327, 3}, {12873, 1}, {14040, 4}, {14348, 2}, {14663, 1}, {15314, 3}, {15650, 1}, {15993, 2}, {16702, 1}, {17068, 2}, {17442, 1}, {19439, 3}, {19865, 1}, {20300, 2}, {20745, 1}, {26334, 3}, {26911, 1}, {32007, 2}, {33425, 1}, {34905, 2}, {35670, 1}, {36452, 3}, {37251, 4}, {38901, 1}, {40624, 3}, {41514, 1}, {42424, 3}, {43353, 1}, {46266, 2}, {47280, 4}, {50456, 1}, {52691, 3}, {53845, 1}, {57462, 4}, {61321, 1}, {62664, 2}, {64037, 1}, {65440, 2}, {66873, 5}, {68338, 8}, {72928, 5}, {74525, 6}, {76157, 4}, {77825, 1}, {81272, 3}, {83052, 2}, {84871, 3}, {86730, 1}, {88630, 2}, {90571, 1}, {92555, 2}, {94582, 1}, {96654, 2}, {98771, 4}, {103145, 1}, {105404, 2}, {107713, 1}, {114947, 4}, {122667, 1}, {130905, 2}, {145881, 5}, {149076, 6}, {152341, 4}, {155677, 1}, {159086, 4}, {162570, 3}, {166130, 2}, {169768, 3}, {173486, 1}, {193333, 2}, {197567, 4}, {206315, 3}, {215450, 1}, {229917, 2}, {240097, 4}, {245355, 1}, {261830, 2}, {267564, 5}, {273423, 8}, {279411, 9}, {285530, 7}, {298173, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {354596, 1}, {362361, 2}, {370296, 1}, {378405, 2}, {395159, 4}, {412655, 7}, {421691, 10}, {430925, 8}, {440362, 6}, {450005, 5}, {469929, 4}, {490736, 1}, {523686, 2}, {583592, 5}, {596372, 6}, {609431, 4}, {650350, 3}, {694016, 1}, {724743, 2}, {740613, 1}, {756831, 2}, {790340, 1}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
#define SQR_FFT_FULL_TABLE2 {{16, 2}, {1022, 1}, {1092, 2}, {1116, 4}, {1141, 2}, {1166, 1}, {1219, 2}, {1274, 1}, {1331, 4}, {1361, 1}, {1422, 2}, {1454, 1}, {1486, 3}, {1519, 1}, {1588, 2}, {1659, 1}, {1934, 4}, {1977, 6}, {2066, 2}, {2112, 4}, {2207, 1}, {2357, 4}, {2409, 3}, {2462, 4}, {2516, 3}, {2572, 2}, {2746, 3}, {2807, 2}, {2869, 5}, {2932, 2}, {2997, 3}, {3063, 1}, {3131, 4}, {3200, 5}, {3271, 4}, {3417, 2}, {3492, 3}, {3648, 2}, {3728, 5}, {3894, 4}, {4158, 2}, {4250, 4}, {4344, 2}, {4440, 3}, {4538, 2}, {4740, 3}, {4844, 1}, {4951, 2}, {5060, 3}, {5171, 2}, {5285, 1}, {5641, 3}, {5765, 6}, {5892, 5}, {6022, 6}, {6289, 4}, {6427, 6}, {6568, 3}, {6712, 4}, {6859, 3}, {7010, 4}, {7321, 2}, {7482, 1}, {7646, 4}, {7814, 3}, {8161, 5}, {8340, 6}, {8523, 5}, {8710, 2}, {8901, 4}, {9096, 2}, {9296, 1}, {9500, 4}, {9922, 1}, {10140, 4}, {10363, 6}, {10822, 7}, {11059, 10}, {11302, 6}, {11550, 8}, {11803, 9}, {12062, 5}, {12327, 8}, {12597, 7}, {12873, 3}, {13155, 2}, {13444, 3}, {14040, 6}, {14348, 8}, {14985, 6}, {15314, 5}, {15650, 6}, {15993, 3}, {16344, 1}, {16702, 3}, {17068, 4}, {17442, 6}, {17824, 8}, {18215, 5}, {18614, 2}, {19022, 4}, {19439, 1}, {20300, 2}, {21200, 5}, {21665, 1}, {22140, 2}, {23121, 1}, {23628, 2}, {24146, 1}, {24675, 4}, {25216, 2}, {25769, 1}, {26334, 4}, {26911, 5}, {27501, 1}, {28104, 4}, {28720, 1}, {29349, 2}, {29992, 1}, {30649, 4}, {31321, 2}, {32007, 4}, {32708, 2}, {35670, 1}, {36452, 4}, {37251, 1}, {38901, 3}, {39753, 1}, {40624, 2}, {42424, 1}, {47280, 4}, {49374, 1}, {50456, 4}, {51561, 3}, {53845, 1}, {57462, 3}, {58721, 4}, {60007, 3}, {61321, 1}, {62664, 2}, {66873, 5}, {68338, 2}, {69835, 1}, {71365, 2}, {72928, 4}, {74525, 6}, {76157, 4}, {77825, 1}, {79530, 4}, {81272, 2}, {83052, 5}, {84871, 3}, {86730, 4}, {88630, 3}, {90571, 6}, {92555, 8}, {100934, 4}, {103145, 6}, {105404, 8}, {107713, 5}, {110072, 1}, {114947, 2}, {117465, 4}, {122667, 3}, {125354, 1}, {130905, 2}, {142755, 5}, {149076, 6}, {152341, 4}, {162570, 3}, {173486, 2}, {189190, 1}, {193333, 2}, {197567, 3}, {201894, 4}, {206315, 3}, {215450, 6}, {224990, 2}, {229917, 5}, {234952, 4}, {245355, 1}, {261830, 4}, {267564, 7}, {273423, 9}, {279411, 12}, {285530, 8}, {291783, 7}, {298173, 6}, {304703, 4}, {311376, 1}, {325163, 3}, {346997, 2}, {354596, 1}, {362361, 2}, {370296, 1}, {378405, 2}, {395159, 4}, {403812, 7}, {421691, 8}, {440362, 6}, {450005, 5}, {469929, 4}, {490736, 1}, {523686, 2}, {583592, 4}, {596372, 6}, {609431, 4}, {650350, 3}, {694016, 2}, {709213, 1}, {724743, 2}, {740613, 1}, {756831, 2}, {790340, 1}, {MP_SIZE_T_MAX,0}}
|
||||
|
||||
|
@ -1670,16 +1670,6 @@ mpn_toom4_sqr_n_fun (mp_ptr dst, mp_srcptr src1, mp_size_t size)
|
||||
mpn_toom4_sqr_n (dst, src1, size);
|
||||
}
|
||||
void
|
||||
mpn_toom7_mul_n_fun (mp_ptr dst, mp_srcptr src1, mp_srcptr src2, mp_size_t size)
|
||||
{
|
||||
mpn_toom7_mul_n (dst, src1, src2, size);
|
||||
}
|
||||
void
|
||||
mpn_toom7_sqr_n_fun (mp_ptr dst, mp_srcptr src1, mp_size_t size)
|
||||
{
|
||||
mpn_toom7_sqr_n (dst, src1, size);
|
||||
}
|
||||
void
|
||||
mpn_toom8h_mul_fun (mp_ptr dst, mp_srcptr src1, mp_size_t size1, mp_srcptr src2, mp_size_t size2)
|
||||
{
|
||||
mpn_toom8h_mul (dst, src1, size1, src2, size2);
|
||||
@ -1942,11 +1932,9 @@ const struct choice_t choice_array[] = {
|
||||
{ TRY_FUNFUN(mpn_kara_sqr_n), TYPE_SQR, MPN_KARA_SQR_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom3_mul_n), TYPE_MUL_N, MPN_TOOM3_MUL_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom4_mul_n), TYPE_MUL_N, MPN_TOOM4_MUL_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom7_mul_n), TYPE_MUL_N, MPN_TOOM7_MUL_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom8h_mul), TYPE_MUL_BASECASE, MPN_TOOM8H_MUL_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom3_sqr_n), TYPE_SQR, MPN_TOOM3_SQR_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom4_sqr_n), TYPE_SQR, MPN_TOOM4_SQR_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom7_sqr_n), TYPE_SQR, MPN_TOOM7_SQR_N_MINSIZE },
|
||||
{ TRY_FUNFUN(mpn_toom8_sqr_n), TYPE_SQR, MPN_TOOM8_SQR_N_MINSIZE },
|
||||
|
||||
{ TRY(mpn_gcd_1), TYPE_GCD_1 },
|
||||
|
@ -1141,11 +1141,6 @@ speed_mpn_toom4_mul_n (struct speed_params *s)
|
||||
SPEED_ROUTINE_MPN_TOOM4_MUL_N (mpn_toom4_mul_n);
|
||||
}
|
||||
double
|
||||
speed_mpn_toom7_mul_n (struct speed_params *s)
|
||||
{
|
||||
SPEED_ROUTINE_MPN_TOOM7_MUL_N (mpn_toom7_mul_n);
|
||||
}
|
||||
double
|
||||
speed_mpn_toom8h_mul (struct speed_params *s)
|
||||
{
|
||||
SPEED_ROUTINE_MPN_TOOM8H_MUL (mpn_toom8h_mul);
|
||||
@ -1161,11 +1156,6 @@ speed_mpn_toom4_sqr_n (struct speed_params *s)
|
||||
SPEED_ROUTINE_MPN_TOOM4_SQR_N (mpn_toom4_sqr_n);
|
||||
}
|
||||
double
|
||||
speed_mpn_toom7_sqr_n (struct speed_params *s)
|
||||
{
|
||||
SPEED_ROUTINE_MPN_TOOM7_SQR_N (mpn_toom7_sqr_n);
|
||||
}
|
||||
double
|
||||
speed_mpn_toom8_sqr_n (struct speed_params *s)
|
||||
{
|
||||
SPEED_ROUTINE_MPN_TOOM8_SQR_N (mpn_toom8_sqr_n);
|
||||
|
@ -333,11 +333,9 @@ const struct routine_t {
|
||||
{ "mpn_kara_sqr_n", speed_mpn_kara_sqr_n },
|
||||
{ "mpn_toom3_mul_n", speed_mpn_toom3_mul_n },
|
||||
{ "mpn_toom4_mul_n", speed_mpn_toom4_mul_n },
|
||||
{ "mpn_toom7_mul_n", speed_mpn_toom7_mul_n },
|
||||
{ "mpn_toom8h_mul", speed_mpn_toom8h_mul },
|
||||
{ "mpn_toom3_sqr_n", speed_mpn_toom3_sqr_n },
|
||||
{ "mpn_toom4_sqr_n", speed_mpn_toom4_sqr_n },
|
||||
{ "mpn_toom7_sqr_n", speed_mpn_toom7_sqr_n },
|
||||
{ "mpn_mul_fft_full", speed_mpn_mul_fft_full },
|
||||
{ "mpn_mul_fft_full_sqr", speed_mpn_mul_fft_full_sqr },
|
||||
|
||||
|
15
tune/speed.h
15
tune/speed.h
@ -297,11 +297,9 @@ double speed_mpn_sublsh1_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_submul_1 _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom3_mul_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom4_mul_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom7_mul_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom8h_mul _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom3_sqr_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom4_sqr_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom7_sqr_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_toom8_sqr_n _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_udiv_qrnnd _PROTO ((struct speed_params *s));
|
||||
double speed_mpn_udiv_qrnnd_r _PROTO ((struct speed_params *s));
|
||||
@ -476,23 +474,19 @@ mp_size_t mpn_set_str_subquad _PROTO ((mp_ptr, const unsigned char *, size_t, in
|
||||
void mpn_toom3_mul_n_open _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t,
|
||||
mp_ptr));
|
||||
void mpn_toom4_mul_n_open _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
|
||||
void mpn_toom7_mul_n_open _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
|
||||
void mpn_toom8h_mul_open _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t));
|
||||
|
||||
void mpn_toom3_sqr_n_open _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom4_sqr_n_open _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom7_sqr_n_open _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom8_sqr_n_open _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
|
||||
void mpn_toom3_mul_n_mpn _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t,
|
||||
mp_ptr));
|
||||
void mpn_toom4_mul_n_mpn _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
|
||||
void mpn_toom7_mul_n_mpn _PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t));
|
||||
void mpn_toom8h_mul_mpn _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t));
|
||||
|
||||
void mpn_toom3_sqr_n_mpn _PROTO((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom4_sqr_n_mpn _PROTO((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom7_sqr_n_mpn _PROTO((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
void mpn_toom8_sqr_n_mpn _PROTO((mp_ptr, mp_srcptr, mp_size_t, mp_ptr));
|
||||
|
||||
void mpz_powm_mod _PROTO ((mpz_ptr res, mpz_srcptr base, mpz_srcptr e,
|
||||
@ -1268,11 +1262,6 @@ int speed_routine_count_zeros_setup _PROTO ((struct speed_params *s,
|
||||
(function (wp, s->xp, s->yp, s->size), \
|
||||
MPN_TOOM4_MUL_N_MINSIZE)
|
||||
|
||||
#define SPEED_ROUTINE_MPN_TOOM7_MUL_N(function) \
|
||||
SPEED_ROUTINE_MPN_MUL_N_SIZE \
|
||||
(function (wp, s->xp, s->yp, s->size), \
|
||||
MPN_TOOM7_MUL_N_MINSIZE)
|
||||
|
||||
#define SPEED_ROUTINE_MPN_TOOM8H_MUL(function) \
|
||||
SPEED_ROUTINE_MPN_MUL_CALL \
|
||||
(function (wp, s->xp, size1, s->yp, s->size), \
|
||||
@ -1382,10 +1371,6 @@ int speed_routine_count_zeros_setup _PROTO ((struct speed_params *s,
|
||||
SPEED_ROUTINE_MPN_SQR_N_SIZE (function (wp, s->xp, s->size), \
|
||||
MPN_TOOM4_SQR_N_MINSIZE)
|
||||
|
||||
#define SPEED_ROUTINE_MPN_TOOM7_SQR_N(function) \
|
||||
SPEED_ROUTINE_MPN_SQR_N_SIZE (function (wp, s->xp, s->size), \
|
||||
MPN_TOOM7_SQR_N_MINSIZE)
|
||||
|
||||
#define SPEED_ROUTINE_MPN_TOOM8_SQR_N(function) \
|
||||
SPEED_ROUTINE_MPN_SQR_N_SIZE (function (wp, s->xp, s->size), \
|
||||
MPN_TOOM8_SQR_N_MINSIZE)
|
||||
|
@ -181,7 +181,6 @@ int allocdat = 0;
|
||||
mp_size_t mul_karatsuba_threshold = MP_SIZE_T_MAX;
|
||||
mp_size_t mul_toom3_threshold = MUL_TOOM3_THRESHOLD_LIMIT;
|
||||
mp_size_t mul_toom4_threshold = MUL_TOOM4_THRESHOLD_LIMIT;
|
||||
mp_size_t mul_toom7_threshold = MUL_TOOM7_THRESHOLD_LIMIT;
|
||||
mp_size_t mul_toom8h_threshold = MUL_TOOM8H_THRESHOLD_LIMIT;
|
||||
mp_size_t mul_fft_threshold = MP_SIZE_T_MAX;
|
||||
mp_size_t mul_fft_modf_threshold = MP_SIZE_T_MAX;
|
||||
@ -190,7 +189,6 @@ mp_size_t sqr_karatsuba_threshold
|
||||
= (TUNE_SQR_KARATSUBA_MAX == 0 ? MP_SIZE_T_MAX : TUNE_SQR_KARATSUBA_MAX);
|
||||
mp_size_t sqr_toom3_threshold = SQR_TOOM3_THRESHOLD_LIMIT;
|
||||
mp_size_t sqr_toom4_threshold = SQR_TOOM4_THRESHOLD_LIMIT;
|
||||
mp_size_t sqr_toom7_threshold = SQR_TOOM7_THRESHOLD_LIMIT;
|
||||
mp_size_t sqr_toom8_threshold = SQR_TOOM8_THRESHOLD_LIMIT;
|
||||
mp_size_t sqr_fft_threshold = MP_SIZE_T_MAX;
|
||||
mp_size_t sqr_fft_modf_threshold = MP_SIZE_T_MAX;
|
||||
|
Loading…
Reference in New Issue
Block a user