Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:15:10

0001 /*
0002     Copyright (C) 2024 Albin Ahlbäck
0003 
0004     This file is part of FLINT.
0005 
0006     FLINT is free software: you can redistribute it and/or modify it under
0007     the terms of the GNU Lesser General Public License (LGPL) as published
0008     by the Free Software Foundation; either version 3 of the License, or
0009     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
0010 */
0011 
0012 #ifndef FLINT_MPARAM_H
0013 #define FLINT_MPARAM_H
0014 
0015 #define FLINT_FFT_SMALL_MUL_THRESHOLD            400
0016 #define FLINT_FFT_SMALL_SQR_THRESHOLD            800
0017 
0018 #define FLINT_FFT_MUL_THRESHOLD                32000
0019 #define FLINT_FFT_SQR_THRESHOLD                32000
0020 
0021 #define FFT_TAB \
0022    { {4, 4}, {4, 3}, {3, 2}, {2, 1}, {2, 1} }
0023 
0024 #define MULMOD_TAB \
0025    { 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1 }
0026 
0027 #define FFT_N_NUM                                 19
0028 #define FFT_MULMOD_2EXPP1_CUTOFF                 128
0029 
0030 #define FLINT_PREINVERT_LIMB_USE_NATIVE 1
0031 
0032 /* warning: set by default, likely not optimal         */
0033 /* if you have the relevant architecture, you can help */
0034 /* determine this by running profiling files:          */
0035 /*    nmod_vec's p-scalar_mul, p-scalar_addmul         */
0036 /*    nmod_mat's p-nmod_vec_mul                        */
0037 #define FLINT_MULMOD_SHOUP_THRESHOLD 10
0038 
0039 #endif