Hi all,<br><br> I&#39;ve been studying and twisting the tuneup program in GMP4.2.4 recently. And I got a question about the fft_step_size().<br><br>mp_size_t<br>fft_step_size (int k)<br>
{<br>&nbsp; mp_size_t&nbsp; step;<br><br>&nbsp; <b>step = MAX ((mp_size_t) 1 &lt;&lt; (k-1), BITS_PER_MP_LIMB) / BITS_PER_MP_LIMB;&nbsp; //what&#39;s the special purpose of this line?</b><br><b>&nbsp; step *= (mp_size_t) 1 &lt;&lt; k;&nbsp; //</b><b> Is it not good enough just to set step to 2^k? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </b><br>

&nbsp; ...<br>&nbsp; return step;<br>}<br><br>In
addition, I noticed that if I half the step size in fft_step_size(), I
can gain better performance around the point where Toom3 is replaced by
SSA. A plot is provided in attachment, where you can see the threshold
generated by default tuning program (green line) causes a loss since it
sets the fft threshold greater than what it actually is. The one
labeled &#39;tune2&#39; is what I got by halving the step size. All the values
in labels correspond to FFT thresholds in each case.&nbsp; <br clear="all"><br>-- <br>Best regards,<br><br>Lingchuan Meng<br>