Skip to content

Hybrid Schonhage-Strassen-NTT convolution - #2789

Open
fredrik-johansson wants to merge 3 commits into
flintlib:mainfrom
fredrik-johansson:fft15
Open

Hybrid Schonhage-Strassen-NTT convolution#2789
fredrik-johansson wants to merge 3 commits into
flintlib:mainfrom
fredrik-johansson:fft15

Conversation

@fredrik-johansson

@fredrik-johansson fredrik-johansson commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

TLDR: multiplying polynomials with huge coefficients gets (usually) slightly faster and uses (consistently) less memory.

Example improvement for fmpz_poly_mul; length-len input polynomials with bits-bit coefficients:

                           time               peak memory
    bits      len         old       new        old       new
   50000    80000     26.61 s   23.70 s    21.4 GB   11.4 GB
  100000    30000     18.94 s   14.41 s    14.7 GB    5.8 GB
 1000000     2000     12.39 s    8.19 s    10.8 GB    3.4 GB
30000000      100     19.15 s   20.16 s    14.5 GB    6.3 GB

Done using Claude Fable 5.

Algorithm

Implements #1362. The Schonhage-Strassen FFT (our fft module) does convolutions in $\mathbb{Z}[x]$ working modulo $2^N+1$. In particular, the pointwise multiplications which in practice tend to dominate the running time are integer multiplications modulo $2^N+1$. These were previously performed using flint_mpn_mul for small $N$ and via Schonhage-Strassen negacyclic convolutions for large $N$. We replace the large - $N$ case with fft_small-based negacyclic convolutions. Note that these are asymptotically twice as fast as computing the full products using fft_small-based flint_mpn_mul as they involve FFTs of half the length.

The main goal is to speed up polynomial multiplication; it's possible that this also makes our SS-based integer multiplication more competitive with fft_small again, but I haven't investigated that.

The result is that fmpz_poly_mul_SS gets 2-3 faster than before, reaching 0.6x-1.0x the speed of fmpz_poly_mul_KS where it previously only reached 0.3-0.5x, and eventually overtaking it.

The crossover where fft_small negacyclic multiplication beats flint_mpn_mul is around 16000 bits, but the crossover for mul_SS beating mul_KS is much higher at around 40000 bits.

When the coefficients are large enough, mul_SS overtakes mul_KS fairly consistently when one starts to have bits * length > 1e9, so I implemented this additional criterion in fmpz_poly_mul / fmpz_poly_mullow / fmpz_poly_mulmid.

It might be worth setting the cutoffs even lower to prioritize memory efficiency even when this means, say, a 10-30% slowdown over mul_KS.

I would like to find another 10-30% speedup so that mul_SS wins at smaller bit sizes, ideally all the way down to bit sizes where we can use direct CRT so that we never need the memory-hungry mul_KS for huge polynomials. I know two things to improve: the negacyclic fft_small convolution could fuse the twists with the input conversions and output CRT, and the fft butterflies could use SIMD or at least a fused sumdiff in assembly (ideally running twice as fast as the separate mpn_add_n and mpn_sub_n). Not sure how much these would actually yield together.

More detailed profiling

Timings for fmpz_poly_mul and fmpz_poly_mul_SS.

bits = bits of input coefficients
len = length of input polynomials
mul = old fmpz_poly_mul default (meaning fmpz_poly_mul_KS below except for very small sizes)
SSA = old fmpz_poly_mul_SS
SSB = new fmpz_poly_mul_SS (with fft_small based pointwise products)
inf = timing omitted because mul_KS starts using too much memory

      bits   len         mul        SSA  mul/SSA       SSB   SSA/SSB  mul/SSB

    18000      4    0.000118   0.000232  0.509      0.00018   1.289   0.656
    18000      6    0.000177   0.000357  0.496     0.000268   1.332   0.660
    18000      9    0.000287   0.000557  0.515     0.000501   1.112   0.573
    18000     13    0.000405   0.000801  0.506     0.000749   1.069   0.541
    18000     19     0.00065     0.0012  0.542      0.00114   1.053   0.570
    18000     28    0.000968    0.00176  0.550      0.00167   1.054   0.580
    18000     42     0.00151    0.00268  0.563      0.00258   1.039   0.585
    18000     63      0.0022    0.00397  0.554      0.00382   1.039   0.576
    18000     94     0.00345    0.00609  0.567      0.00585   1.041   0.590
    18000    141     0.00567    0.00973  0.583      0.00941   1.034   0.603
    18000    211     0.00835     0.0146  0.572       0.0139   1.050   0.601
    18000    316      0.0146     0.0224  0.652       0.0212   1.057   0.689
    18000    474      0.0209     0.0333  0.628       0.0317   1.050   0.659
    18000    711      0.0334     0.0534  0.625       0.0509   1.049   0.656
    18000   1066      0.0523     0.0875  0.598       0.0838   1.044   0.624
    18000   1599      0.0792      0.124  0.639        0.118   1.051   0.671
    18000   2398       0.132      0.227  0.581        0.218   1.041   0.606
    18000   3597       0.199      0.315  0.632        0.302   1.043   0.659
    18000   5395       0.352       0.51  0.690        0.508   1.004   0.693
    18000   8092        0.54      0.705  0.766        0.712   0.990   0.758
    18000  12138       0.852      1.245  0.684        1.237   1.006   0.689
    18000  18207       1.277      2.452  0.521        2.497   0.982   0.511
    18000  27310       2.074      3.396  0.611        3.382   1.004   0.613
    18000  40965       3.433       7.63  0.450        5.496   1.388   0.625
    18000  61447       5.824     10.519  0.554        7.436   1.415   0.783
    18000  92170      10.478     16.901  0.620       16.706   1.012   0.627

    27000      4    0.000195   0.000383  0.509     0.000258   1.484   0.756
    27000      6    0.000278   0.000586  0.474     0.000389   1.506   0.715
    27000      9    0.000421   0.000908  0.464     0.000701   1.295   0.601
    27000     13    0.000656    0.00131  0.501      0.00102   1.284   0.643
    27000     19    0.000956    0.00195  0.490      0.00154   1.266   0.621
    27000     28     0.00149    0.00283  0.527      0.00226   1.252   0.659
    27000     42     0.00216    0.00436  0.495      0.00349   1.249   0.619
    27000     63     0.00341    0.00649  0.525      0.00519   1.250   0.657
    27000     94     0.00555       0.01  0.555      0.00794   1.259   0.699
    27000    141     0.00854     0.0159  0.537       0.0126   1.262   0.678
    27000    211      0.0144     0.0238  0.605       0.0188   1.266   0.766
    27000    316      0.0205     0.0368  0.557       0.0301   1.223   0.681
    27000    474      0.0326     0.0546  0.597       0.0441   1.238   0.739
    27000    711      0.0509     0.0881  0.578       0.0714   1.234   0.713
    27000   1066      0.0772      0.141  0.548        0.117   1.205   0.660
    27000   1599       0.128        0.2  0.640        0.165   1.212   0.776
    27000   2398       0.194      0.361  0.537         0.32   1.128   0.606
    27000   3597       0.347      0.504  0.688        0.426   1.183   0.815
    27000   5395       0.533      0.813  0.656        0.685   1.187   0.778
    27000   8092       0.841      1.131  0.744        0.941   1.202   0.894
    27000  12138       1.259      1.816  0.693        1.497   1.213   0.841
    27000  18207       2.063      3.393  0.608        2.474   1.371   0.834
    27000  27310       3.387      4.734  0.715        3.335   1.419   1.016
    27000  40965        5.83      7.581  0.769        5.497   1.379   1.061
    27000  61447       9.002     10.643  0.846         7.46   1.427   1.207
    27000  92170         inf     16.902  inf         16.865   1.002   inf

    40500      4    0.000386   0.000548  0.704     0.000385   1.423   1.003
    40500      6     0.00042   0.000844  0.498     0.000617   1.368   0.681
    40500      9    0.000679    0.00131  0.518        0.001   1.310   0.679
    40500     13    0.000978    0.00188  0.520      0.00145   1.297   0.674
    40500     19      0.0015    0.00282  0.532      0.00219   1.288   0.685
    40500     28     0.00218    0.00408  0.534      0.00317   1.287   0.688
    40500     42      0.0034    0.00631  0.539      0.00492   1.283   0.691
    40500     63     0.00559     0.0093  0.601      0.00727   1.279   0.769
    40500     94     0.00859     0.0143  0.601       0.0111   1.288   0.774
    40500    141      0.0144     0.0231  0.623       0.0183   1.262   0.787
    40500    211      0.0206     0.0341  0.604       0.0272   1.254   0.757
    40500    316      0.0326     0.0542  0.601       0.0437   1.240   0.746
    40500    474      0.0512     0.0792  0.646       0.0638   1.241   0.803
    40500    711      0.0771      0.127  0.607        0.103   1.233   0.749
    40500   1066       0.129      0.238  0.542        0.203   1.172   0.635
    40500   1599       0.195      0.322  0.606        0.272   1.184   0.717
    40500   2398       0.346      0.517  0.669        0.445   1.162   0.778
    40500   3597       0.535       0.72  0.743        0.611   1.178   0.876
    40500   5395       0.837      1.152  0.727        1.012   1.138   0.827
    40500   8092       1.255      1.603  0.783         1.39   1.153   0.903
    40500  12138       2.068       2.57  0.805        2.316   1.110   0.893
    40500  18207        3.36       4.17  0.806        4.147   1.006   0.810
    40500  27310       5.808      5.752  1.010        5.719   1.006   1.016
    40500  40965       8.993     11.251  0.799       11.402   0.987   0.789
    40500  61447         inf     15.653  inf         15.624   1.002   inf
    40500  92170         inf     35.181  inf         25.155   1.399   inf

    60750      4    0.000577     0.0009  0.641      0.00058   1.552   0.995
    60750      6    0.000676    0.00138  0.490      0.00089   1.551   0.760
    60750      9     0.00103    0.00214  0.481      0.00138   1.551   0.746
    60750     13     0.00155    0.00306  0.507      0.00196   1.561   0.791
    60750     19     0.00242    0.00454  0.533      0.00295   1.539   0.820
    60750     28     0.00343    0.00667  0.514      0.00426   1.566   0.805
    60750     42     0.00561     0.0103  0.545      0.00665   1.549   0.844
    60750     63     0.00862     0.0152  0.567      0.00981   1.549   0.879
    60750     94      0.0144     0.0236  0.610       0.0153   1.542   0.941
    60750    141      0.0207      0.038  0.545       0.0259   1.467   0.799
    60750    211      0.0328     0.0564  0.582       0.0378   1.492   0.868
    60750    316      0.0511     0.0882  0.579       0.0608   1.451   0.840
    60750    474      0.0772      0.131  0.589       0.0884   1.482   0.873
    60750    711        0.13      0.204  0.637        0.169   1.207   0.769
    60750   1066       0.195      0.374  0.521        0.286   1.308   0.682
    60750   1599       0.348       0.51  0.682         0.38   1.342   0.916
    60750   2398       0.532      0.816  0.652        0.622   1.312   0.855
    60750   3597       0.834      1.166  0.715        0.848   1.375   0.983
    60750   5395       1.249       1.83  0.683        1.387   1.319   0.901
    60750   8092       2.054      2.555  0.804        1.893   1.350   1.085
    60750  12138       3.321      4.063  0.817        3.062   1.327   1.085
    60750  18207       5.792          7  0.827        5.063   1.383   1.144
    60750  27310       8.997      9.775  0.920        6.897   1.417   1.304
    60750  40965         inf      15.73  inf         11.316   1.390   inf
    60750  61447         inf     22.085  inf         15.523   1.423   inf

    91125      4    0.000829    0.00146  0.568     0.000877   1.665   0.945
    91125      6     0.00102    0.00223  0.457      0.00134   1.664   0.761
    91125      9      0.0016    0.00344  0.465      0.00209   1.646   0.766
    91125     13      0.0025    0.00491  0.509      0.00295   1.664   0.847
    91125     19     0.00347    0.00729  0.476      0.00444   1.642   0.782
    91125     28     0.00559     0.0108  0.518      0.00642   1.682   0.871
    91125     42     0.00862     0.0164  0.526       0.0099   1.657   0.871
    91125     63      0.0146     0.0247  0.591       0.0148   1.669   0.986
    91125     94      0.0206     0.0378  0.545       0.0235   1.609   0.877
    91125    141      0.0331     0.0624  0.530       0.0399   1.564   0.830
    91125    211      0.0511     0.0918  0.557       0.0578   1.588   0.884
    91125    316      0.0769      0.144  0.534       0.0929   1.550   0.828
    91125    474       0.129       0.21  0.614        0.133   1.579   0.970
    91125    711       0.194      0.365  0.532        0.252   1.448   0.770
    91125   1066       0.342       0.59  0.580        0.421   1.401   0.812
    91125   1599       0.528      0.818  0.645        0.561   1.458   0.941
    91125   2398       0.833       1.29  0.646        0.921   1.401   0.904
    91125   3597       1.241      1.825  0.680         1.26   1.448   0.985
    91125   5395       2.029      2.891  0.702        2.044   1.414   0.993
    91125   8092       3.321      4.051  0.820        2.796   1.449   1.188
    91125  12138       5.826      6.457  0.902        6.435   1.003   0.905
    91125  18207       8.982     10.456  0.859        8.602   1.216   1.044
    91125  27310         inf      14.58  inf         11.839   1.232   inf
    91125  40965         inf     23.648  inf         19.379   1.220   inf

   136687      4     0.00105    0.00231  0.455      0.00147   1.571   0.714
   136687      6      0.0016    0.00352  0.455      0.00222   1.586   0.721
   136687      9     0.00258    0.00539  0.479      0.00343   1.571   0.752
   136687     13     0.00355    0.00774  0.459      0.00484   1.599   0.733
   136687     19     0.00568     0.0117  0.485      0.00743   1.575   0.764
   136687     28     0.00861     0.0172  0.501       0.0105   1.638   0.820
   136687     42      0.0145     0.0262  0.553       0.0166   1.578   0.873
   136687     63      0.0208     0.0392  0.531       0.0244   1.607   0.852
   136687     94      0.0331     0.0615  0.538       0.0389   1.581   0.851
   136687    141      0.0511        0.1  0.511       0.0653   1.531   0.783
   136687    211      0.0774      0.146  0.530       0.0944   1.547   0.820
   136687    316        0.13      0.259  0.502        0.177   1.463   0.734
   136687    474       0.196      0.358  0.547        0.244   1.467   0.803
   136687    711       0.342      0.569  0.601        0.398   1.430   0.859
   136687   1066       0.528      0.917  0.576        0.658   1.394   0.802
   136687   1599       0.833      1.263  0.660        0.883   1.430   0.943
   136687   2398       1.243      2.009  0.619         1.44   1.395   0.863
   136687   3597       2.045      2.835  0.721        1.981   1.431   1.032
   136687   5395       3.307      4.481  0.738        3.212   1.395   1.030
   136687   8092       5.765      6.311  0.913        4.402   1.434   1.310
   136687  12138       8.975      9.951  0.902        7.124   1.397   1.260
   136687  18207         inf     16.134  inf         15.971   1.010   inf
   136687  27310         inf     22.563  inf         22.423   1.006   inf

   205030      4     0.00167    0.00389  0.429      0.00235   1.655   0.711
   205030      6     0.00253    0.00592  0.427      0.00353   1.677   0.717
   205030      9     0.00362    0.00908  0.399      0.00545   1.666   0.664
   205030     13     0.00574     0.0131  0.438      0.00775   1.690   0.741
   205030     19     0.00867     0.0195  0.445       0.0118   1.653   0.735
   205030     28      0.0145     0.0286  0.507       0.0171   1.673   0.848
   205030     42      0.0207     0.0446  0.464       0.0272   1.640   0.761
   205030     63      0.0329     0.0665  0.495       0.0399   1.667   0.825
   205030     94       0.051      0.105  0.486       0.0646   1.625   0.789
   205030    141      0.0773      0.167  0.463        0.107   1.561   0.722
   205030    211       0.128      0.247  0.518        0.154   1.604   0.831
   205030    316       0.193      0.417  0.463        0.289   1.443   0.668
   205030    474       0.341       0.59  0.578        0.398   1.482   0.857
   205030    711       0.524      0.928  0.565        0.643   1.443   0.815
   205030   1066       0.826      1.505  0.549        1.069   1.408   0.773
   205030   1599       1.252      2.079  0.602        1.528   1.361   0.819
   205030   2398       2.038      3.291  0.619        2.347   1.402   0.868
   205030   3597       3.316      4.667  0.711        3.214   1.452   1.032
   205030   5395       5.784      7.362  0.786        5.198   1.416   1.113
   205030   8092       8.971     10.404  0.862        7.176   1.450   1.250
   205030  12138         inf     16.444  inf         11.612   1.416   inf
   205030  18207         inf     26.518  inf         19.186   1.382   inf

   307545      4     0.00268    0.00566  0.473       0.0036   1.572   0.744
   307545      6     0.00365    0.00861  0.424      0.00542   1.589   0.673
   307545      9     0.00636     0.0132  0.482      0.00832   1.587   0.764
   307545     13     0.00886     0.0191  0.464       0.0118   1.619   0.751
   307545     19      0.0147     0.0287  0.512        0.018   1.594   0.817
   307545     28      0.0206      0.042  0.490       0.0262   1.603   0.786
   307545     42      0.0331      0.066  0.502       0.0425   1.553   0.779
   307545     63      0.0516     0.0991  0.521       0.0616   1.609   0.838
   307545     94      0.0775      0.154  0.503        0.101   1.525   0.767
   307545    141       0.129      0.277  0.466          0.2   1.385   0.645
   307545    211       0.194      0.389  0.499        0.272   1.430   0.713
   307545    316       0.343      0.615  0.558        0.439   1.401   0.781
   307545    474       0.523      0.859  0.609        0.601   1.429   0.870
   307545    711       0.825      1.358  0.608        0.976   1.391   0.845
   307545   1066       1.236      2.176  0.568         1.62   1.343   0.763
   307545   1599       2.018       3.01  0.670        2.165   1.390   0.932
   307545   2398       3.347      4.826  0.694        3.552   1.359   0.942
   307545   3597       5.747      6.782  0.847        4.898   1.385   1.173
   307545   5395       8.944     10.708  0.835        7.901   1.355   1.132
   307545   8092         inf     15.127  inf         10.928   1.384   inf
   307545  12138         inf     24.053  inf         17.885   1.345   inf

   461317      4     0.00386    0.00974  0.396      0.00502   1.940   0.769
   461317      6     0.00637      0.015  0.425      0.00756   1.984   0.843
   461317      9     0.00924     0.0229  0.403       0.0118   1.941   0.783
   461317     13      0.0151     0.0331  0.456       0.0166   1.994   0.910
   461317     19       0.021     0.0499  0.421       0.0259   1.927   0.811
   461317     28      0.0333     0.0725  0.459       0.0373   1.944   0.893
   461317     42      0.0512      0.115  0.445       0.0607   1.895   0.843
   461317     63      0.0779      0.169  0.461       0.0879   1.923   0.886
   461317     94        0.13      0.263  0.494        0.143   1.839   0.909
   461317    141       0.194      0.462  0.420        0.281   1.644   0.690
   461317    211       0.341      0.654  0.521        0.381   1.717   0.895
   461317    316       0.523      1.012  0.517        0.612   1.654   0.855
   461317    474       0.828      1.444  0.573        0.837   1.725   0.989
   461317    711       1.234      2.266  0.545        1.358   1.669   0.909
   461317   1066       2.024      3.626  0.558        2.264   1.602   0.894
   461317   1599       3.355      5.018  0.669        3.021   1.661   1.111
   461317   2398       5.772      7.981  0.723        4.977   1.604   1.160
   461317   3597       8.965     11.401  0.786        6.887   1.655   1.302
   461317   5395         inf     17.838  inf          11.08   1.610   inf
   461317   8092         inf     25.614  inf         15.405   1.663   inf

   691975      4     0.00616      0.017  0.362      0.00753   2.258   0.818
   691975      6     0.00921     0.0259  0.356       0.0113   2.292   0.815
   691975      9      0.0155     0.0399  0.388       0.0182   2.192   0.852
   691975     13      0.0213     0.0575  0.370       0.0255   2.255   0.835
   691975     19       0.034     0.0883  0.385       0.0402   2.197   0.846
   691975     28      0.0513      0.128  0.401       0.0567   2.257   0.905
   691975     42      0.0777        0.2  0.389       0.0934   2.141   0.832
   691975     63       0.132      0.295  0.447        0.136   2.169   0.971
   691975     94       0.197      0.497  0.396        0.255   1.949   0.773
   691975    141       0.345      0.779  0.443        0.419   1.859   0.823
   691975    211       0.527      1.105  0.477        0.568   1.945   0.928
   691975    316       0.828       1.73  0.479        0.917   1.887   0.903
   691975    474       1.235      2.459  0.502        1.244   1.977   0.993
   691975    711       2.023      3.828  0.528        2.034   1.882   0.995
   691975   1066       3.352      6.112  0.548        3.368   1.815   0.995
   691975   1599       5.764      8.483  0.679        4.491   1.889   1.283
   691975   2398       8.998     13.426  0.670        7.455   1.801   1.207
   691975   3597         inf     19.261  inf         10.277   1.874   inf
   691975   5395         inf     30.234  inf         16.692   1.811   inf

  1037962      4     0.00914     0.0304  0.301       0.0109   2.789   0.839
  1037962      6      0.0153     0.0461  0.332       0.0168   2.744   0.911
  1037962      9       0.024     0.0714  0.336       0.0271   2.635   0.886
  1037962     13      0.0341      0.104  0.328       0.0376   2.766   0.907
  1037962     19      0.0522      0.156  0.335       0.0597   2.613   0.874
  1037962     28      0.0779      0.226  0.345       0.0843   2.681   0.924
  1037962     42       0.129      0.366  0.352        0.165   2.218   0.782
  1037962     63       0.195      0.531  0.367        0.223   2.381   0.874
  1037962     94       0.343      0.847  0.405        0.369   2.295   0.930
  1037962    141       0.526       1.33  0.395        0.607   2.191   0.867
  1037962    211       0.826      1.899  0.435         0.82   2.316   1.007
  1037962    316        1.24      2.924  0.424        1.327   2.203   0.934
  1037962    474        2.02      4.213  0.479         1.82   2.315   1.110
  1037962    711       3.344      6.599  0.507        2.979   2.215   1.123
  1037962   1066       5.755     10.385  0.554        4.992   2.080   1.153
  1037962   1599       8.953     14.594  0.613        6.657   2.192   1.345
  1037962   2398         inf     22.822  inf         11.006   2.074   inf
  1037962   3597         inf     33.206  inf         15.284   2.173   inf

  1556943      4      0.0143       0.04  0.358       0.0232   1.724   0.616
  1556943      6       0.024     0.0615  0.390        0.036   1.708   0.667
  1556943      9      0.0352     0.0965  0.365       0.0584   1.652   0.603
  1556943     13      0.0533      0.139  0.383       0.0807   1.722   0.660
  1556943     19      0.0815      0.212  0.384        0.156   1.359   0.522
  1556943     28        0.13      0.304  0.428        0.208   1.462   0.625
  1556943     42       0.195      0.514  0.379        0.345   1.490   0.565
  1556943     63       0.342      0.734  0.466        0.468   1.568   0.731
  1556943     94       0.523      1.151  0.454        0.775   1.485   0.675
  1556943    141       0.832      1.811  0.459        1.269   1.427   0.656
  1556943    211       1.234      2.582  0.478        1.727   1.495   0.715
  1556943    316       2.027      3.983  0.509         2.77   1.438   0.732
  1556943    474       3.313      5.721  0.579         3.82   1.498   0.867
  1556943    711        5.74      9.032  0.636        6.263   1.442   0.916
  1556943   1066       8.906     14.301  0.623       10.482   1.364   0.850
  1556943   1599         inf     20.032  inf          14.14   1.417   inf
  1556943   2398         inf     31.662  inf         23.439   1.351   inf

  2335414      4      0.0232     0.0712  0.326       0.0314   2.268   0.739
  2335414      6      0.0353      0.111  0.318       0.0486   2.284   0.726
  2335414      9      0.0549      0.173  0.317       0.0776   2.229   0.707
  2335414     13      0.0835      0.245  0.341        0.106   2.311   0.788
  2335414     19       0.131      0.402  0.326          0.2   2.010   0.655
  2335414     28       0.194      0.567  0.342        0.268   2.116   0.724
  2335414     42       0.344      0.889  0.387        0.441   2.016   0.780
  2335414     63       0.533      1.279  0.417        0.607   2.107   0.878
  2335414     94       0.833      1.988  0.419        0.984   2.020   0.847
  2335414    141       1.243      3.119  0.399        1.612   1.935   0.771
  2335414    211       2.027      4.486  0.452        2.195   2.044   0.923
  2335414    316       3.354      6.874  0.488        3.475   1.978   0.965
  2335414    474        5.78      9.936  0.582         4.83   2.057   1.197
  2335414    711       8.918     15.497  0.575        7.882   1.966   1.131
  2335414   1066         inf     24.541  inf         12.983   1.890   inf
  2335414   1599         inf     34.676  inf         17.662   1.963   inf

  3503121      4      0.0338      0.145  0.233       0.0455   3.187   0.743
  3503121      6      0.0546      0.221  0.247       0.0707   3.126   0.772
  3503121      9      0.0866      0.344  0.252        0.128   2.688   0.677
  3503121     13       0.134      0.489  0.274        0.173   2.827   0.775
  3503121     19       0.225      0.778  0.289        0.297   2.620   0.758
  3503121     28       0.343       1.11  0.309        0.401   2.768   0.855
  3503121     42       0.533      1.727  0.309        0.662   2.609   0.805
  3503121     63       0.835      2.509  0.333        0.926   2.710   0.902
  3503121     94       1.246      3.863  0.323        1.481   2.608   0.841
  3503121    141       2.026      6.039  0.335        2.406   2.510   0.842
  3503121    211       3.356      8.774  0.382        3.331   2.634   1.008
  3503121    316       5.781     13.318  0.434        5.246   2.539   1.102
  3503121    474       8.988     19.457  0.462        7.377   2.638   1.218
  3503121    711         inf     30.053  inf         11.948   2.515   inf
  3503121   1066         inf     47.288  inf         19.935   2.372   inf

  5254681      4      0.0543      0.168  0.323       0.0723   2.324   0.751
  5254681      6       0.087      0.257  0.339        0.111   2.315   0.784
  5254681      9        0.14      0.441  0.317        0.222   1.986   0.631
  5254681     13        0.23      0.608  0.378        0.291   2.089   0.790
  5254681     19       0.352      0.935  0.376        0.468   1.998   0.752
  5254681     28       0.535      1.323  0.404        0.631   2.097   0.848
  5254681     42       0.835      2.078  0.402         1.04   1.998   0.803
  5254681     63       1.243      2.972  0.418        1.433   2.074   0.867
  5254681     94       2.019      4.621  0.437        2.314   1.997   0.873
  5254681    141       3.356      7.385  0.454        3.757   1.966   0.893
  5254681    211       5.765     10.525  0.548        5.149   2.044   1.120
  5254681    316       8.962     16.292  0.550        8.256   1.973   1.086
  5254681    474         inf     23.553  inf         11.556   2.038   inf
  5254681    711         inf     36.948  inf         18.722   1.974   inf

  7882021      4       0.082      0.271  0.303        0.112   2.420   0.732
  7882021      6       0.138      0.452  0.305        0.208   2.173   0.663
  7882021      9       0.236       0.71  0.332        0.345   2.058   0.684
  7882021     13       0.362      0.983  0.368        0.458   2.146   0.790
  7882021     19        0.54      1.501  0.360        0.738   2.034   0.732
  7882021     28       0.832       2.13  0.391        0.988   2.156   0.842
  7882021     42       1.246      3.338  0.373        1.622   2.058   0.768
  7882021     63       2.043      4.817  0.424        2.248   2.143   0.909
  7882021     94       3.354      7.426  0.452        3.619   2.052   0.927
  7882021    141       5.797     11.787  0.492        5.966   1.976   0.972
  7882021    211       8.987     17.183  0.523        8.263   2.080   1.088
  7882021    316         inf     26.292  inf         13.349   1.970   inf
  7882021    474         inf     38.539  inf         18.484   2.085   inf

 11823031      4       0.138      0.481  0.287        0.201   2.393   0.687
 11823031      6       0.235       0.76  0.309        0.338   2.249   0.695
 11823031      9       0.373      1.181  0.316        0.555   2.128   0.672
 11823031     13       0.551      1.648  0.334        0.745   2.212   0.740
 11823031     19       0.841        2.5  0.336        1.186   2.108   0.709
 11823031     28       1.257      3.578  0.351        1.617   2.213   0.777
 11823031     42        2.05      5.564  0.368         2.62   2.124   0.782
 11823031     63       3.326      8.157  0.408        3.669   2.223   0.907
 11823031     94       5.787     12.424  0.466        5.865   2.118   0.987
 11823031    141       9.052     19.766  0.458        9.647   2.049   0.938
 11823031    211         inf      28.66  inf         13.563   2.113   inf
 11823031    316         inf     43.786  inf          21.63   2.024   inf

 17734546      4       0.196      0.752  0.261        0.312   2.410   0.628
 17734546      6       0.374      1.173  0.319        0.503   2.332   0.744
 17734546      9       0.564       1.83  0.308        0.826   2.215   0.683
 17734546     13       0.861      2.569  0.335        1.112   2.310   0.774
 17734546     19       1.354      3.939  0.344        1.765   2.232   0.767
 17734546     28       2.029      5.628  0.361         2.43   2.316   0.835
 17734546     42       3.385       8.68  0.390        3.954   2.195   0.856
 17734546     63       5.825      12.57  0.463        5.526   2.275   1.054
 17734546     94       9.018     19.421  0.464        8.953   2.169   1.007
 17734546    141         inf     30.938  inf         14.761   2.096   inf
 17734546    211         inf     45.866  inf         20.972   2.187   inf

 26601819      4       0.319      1.356  0.235        0.556   2.439   0.574
 26601819      6        0.57      2.084  0.274        0.878   2.374   0.649
 26601819      9        0.91      3.266  0.279        1.433   2.279   0.635
 26601819     13       1.376      4.591  0.300        1.932   2.376   0.712
 26601819     19       2.089      6.964  0.300        3.051   2.283   0.685
 26601819     28       3.353         10  0.335        4.231   2.364   0.792
 26601819     42       5.871     15.504  0.379        6.797   2.281   0.864
 26601819     63       9.016     22.643  0.398        9.615   2.355   0.938
 26601819     94         inf     34.802  inf         15.401   2.260   inf
 26601819    141         inf     55.592  inf         25.662   2.166   inf

 39902728      4       0.495      2.288  0.216        0.806   2.839   0.614
 39902728      6       0.909      3.511  0.259        1.271   2.762   0.715
 39902728      9       1.432      5.449  0.263        2.067   2.636   0.693
 39902728     13       2.137      7.702  0.277        2.786   2.765   0.767
 39902728     19       3.445     11.585  0.297        4.406   2.629   0.782
 39902728     28       5.859     16.695  0.351        6.065   2.753   0.966
 39902728     42       9.076      25.83  0.351        9.778   2.642   0.928
 39902728     63         inf     37.787  inf         13.876   2.723   inf
 39902728     94         inf     58.107  inf         22.092   2.630   inf

 59854092      4       0.771      2.877  0.268         1.35   2.131   0.571
 59854092      6       1.422      4.437  0.320        2.106   2.107   0.675
 59854092      9       2.187      6.925  0.316        3.373   2.053   0.648
 59854092     13        4.66      9.765  0.477        4.586   2.129   1.016
 59854092     19       5.939     14.665  0.405        7.138   2.054   0.832
 59854092     28       9.122     21.205  0.430        9.985   2.124   0.914
 59854092     42         inf     32.896  inf         15.959   2.061   inf
 59854092     63         inf     48.218  inf         22.748   2.120   inf

 89781138      4       1.231       5.68  0.217        1.903   2.985   0.647
 89781138      6       2.187       8.65  0.253        2.987   2.896   0.732
 89781138      9       4.804     13.297  0.361        4.867   2.732   0.987
 89781138     13       6.622     18.831  0.352        6.572   2.865   1.008
 89781138     19       9.145     28.442  0.322       10.215   2.784   0.895
 89781138     28         inf     40.949  inf         14.255   2.873   inf
 89781138     42         inf     63.795  inf         22.717   2.808   inf

134671707      4       1.993     10.547  0.189        3.024   3.488   0.659
134671707      6        4.89      16.11  0.304        4.703   3.425   1.040
134671707      9       6.652     24.894  0.267         7.59   3.280   0.876
134671707     13      10.269     35.219  0.292       10.273   3.428   1.000
134671707     19         inf     52.798  inf         16.115   3.276   inf
134671707     28         inf     76.251  inf         22.342   3.413   inf

202007560      4       3.095     12.696  0.244        5.153   2.464   0.601
202007560      6       6.761     19.441  0.348         8.03   2.421   0.842
202007560      9      10.364     30.232  0.343       12.867   2.350   0.805
202007560     13         inf     42.793  inf         17.427   2.456   inf
202007560     19         inf     64.117  inf          27.24   2.354   inf

303011340      4       4.783     27.272  0.175        7.527   3.623   0.635
303011340      6       10.28     41.523  0.248       11.606   3.578   0.886
303011340      9         inf     64.519  inf         18.585   3.472   inf
303011340     13         inf     91.473  inf         25.484   3.589   inf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant