[Cuis-dev] Problems in class Number

Agustín Sansone agustinsansone7 at gmail.com
Thu Oct 10 20:02:37 PDT 2019


With this last improvement:
Time millisecondsToRun:
       [10000 timesRepeat: [1 to: 1600 do: [:e | e isPrimeFast2]] ]  3502

Without it:
Time millisecondsToRun:
        [10000 timesRepeat: [1 to: 1600 do: [:e | e isPrimeFast]] ]  4982

It is indeed a 30% speed increase for numbers up to 1521.

El jue., 10 oct. 2019 a las 23:35, Andres Valloud via Cuis-dev (<
cuis-dev at lists.cuis.st>) escribió:

> Hmmm, in here,
>
>         self < 384 ifTrue: [
>                 "Approximate sqrtFloor to avoid computational expense"
>                 3 to: (self bitShift: -3) + 1 by: 2 do:
>                         [:each | self \\ each = 0 ifTrue: [ ^false ]].
>                 ^true
>         ].
>
>
> the loop should start at 7 because the factors 3 and 5 have already been
> excluded.  This gains noticeable speed for smallish integers (because
> 384 sqrtFloor is just 19).  Looking into this further led to another 30%
> speed increase.  Would you mind checking?
>
> On 10/10/19 18:40, Agustín Sansone via Cuis-dev wrote:
> >     Here's something really important: doing too much micro-optimization
> >     detracts from the motivation to implement better things.  I'd say we
> >     leave things with the round of 30.
> >
> >
> > Okay. This is the 30*k version.
> >
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20191011/9a7c1834/attachment.htm>


More information about the Cuis-dev mailing list