<div dir="ltr"><div>This ir what I get:</div><div><br></div>"3970 boundary"<br>Time millisecondsToRun: [10000 timesRepeat: [1 to: 8281 by: 8 do: [:x |x isPrimeFast]]].  5257 <br><br>"8281 boundary"<br>Time millisecondsToRun: [10000 timesRepeat: [1 to: 8281 by: 8 do: [:x |x isPrimeFast2]]]. 4104 <br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El sáb., 12 oct. 2019 a las 0:02, Andres Valloud via Cuis-dev (<<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I think this happened because we are measuring against different number <br>
sets so we ended up tuning to our tests.  By the way, I'm having some <br>
trouble getting reliable times, the figures seem to change by ~10% <br>
without any obvious reason.  For instance, for the last code you sent, <br>
running that through some of the tests here results in times ranging <br>
from 2272 to 2510 milliseconds --- and that's starting from a clean <br>
system after a GC, so each run starts in the same conditions.  That's a <br>
lot of difference for a computer that should be roughly stable...<br>
<br>
Would you mind checking the numbers you get with the attached method? <br>
It just takes your latest code and increases the boundary for the small <br>
number loop to 8281.  Here's why I'd like to see what happens for you:<br>
<br>
"your latest"<br>
Time millisecondsToRun: [10000 timesRepeat: [1 to: 8281 by: 8 do: [:x | <br>
x isPrimeFast1c]]] 1647<br>
<br>
"attached here"<br>
Time millisecondsToRun: [10000 timesRepeat: [1 to: 8281 by: 8 do: [:x | <br>
x isPrimeFast1d]]] 1565<br>
<br>
Andres.<br>
<br>
On 10/11/19 10:59, Agustín Sansone via Cuis-dev wrote:<br>
> Latest code you sent:<br>
> Time millisecondsToRun:<br>
>         [1 to: 10000000 do: [:e | e isPrimeFast]].  16025<br>
> <br>
> Latest code I sent:<br>
> Time millisecondsToRun:<br>
>         [1 to: 10000000 do: [:e | e isPrimeFast]].  14435<br>
> <br>
> <br>
> El vie., 11 oct. 2019 a las 2:09, Andres Valloud via Cuis-dev <br>
> (<<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>>>) escribió:<br>
> <br>
>     Euclid's gcd algorithm converges to the answer exponentially with base<br>
>     phi.  Larger small integers help amortize the extra cost.<br>
> <br>
>     On 10/10/19 21:53, Phil B wrote:<br>
>      > Was that primarily due to the 64-bit version mostly fitting within<br>
>      > SmallInteger?  I find many numeric performance issues just melt<br>
>     away by<br>
>      > staying away from Large*Integer (and Fraction)... they're great for<br>
>      > maintaining accuracy, lousy for performance.  As in multiples to<br>
>     orders<br>
>      > of magnitude worse depending on what you're doing.<br>
>      ><br>
>      > On Fri, Oct 11, 2019 at 12:40 AM Andres Valloud via Cuis-dev<br>
>      > <<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>><br>
>     <mailto:<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>>>> wrote:<br>
>      ><br>
>      >     Fascinating --- the gcd approach was pretty bad in 32 bit land.<br>
>      >     However, in 64 bits, the gcd batches are large enough to<br>
>     amortize the<br>
>      >     cost, and that detects most composites without sending<br>
>     sqrtFloor.  The<br>
>      >     small integer threshold is now 91 squared.<br>
>      ><br>
>      >     On 10/10/19 20:37, Agustín Sansone via Cuis-dev wrote:<br>
>      >      >     Well, what do you think?  Are we done going over this poor<br>
>      >     method?<br>
>      >      ><br>
>      >      ><br>
>      >      > Okay, I'm happy with this version.<br>
>      >      ><br>
>      >     --<br>
>      >     Cuis-dev mailing list<br>
>      > <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a>><br>
>     <mailto:<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a>>><br>
>      > <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
>      ><br>
>     -- <br>
>     Cuis-dev mailing list<br>
>     <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a> <mailto:<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a>><br>
>     <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
> <br>
> <br>
-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div>