[Cuis-dev] Bag>>#sum:ifEmpty:

Francisco Garau francisco.garau at gmail.com
Sat Nov 5 04:56:11 PDT 2022


I've checked in a CuisUniversity-5096 image and here is the optimization:

*RunArray>>sum *

"

* (RunArray new: 4096 withAll: 3) sum =  12288.*

* ([(RunArray new) sum] on: Error do: [:ex | ex messageText] ) = 'this
collection is empty'.*

"

| initial sum |

self isEmpty ifTrue: [self errorEmptyCollection].

initial := self first.

sum := initial.

self runsAndValuesDo: [:run :value | sum := sum + (run * value)].

^ sum - initial


On Sat, 5 Nov 2022 at 10:26, Francisco Garau <francisco.garau at gmail.com>
wrote:

> Do we have RunArray in Cuis? We could have a similar optimisation in there
>
> - Francisco
>
> On 2 Nov 2022, at 18:25, Juan Vuletich via Cuis-dev <
> cuis-dev at lists.cuis.st> wrote:
>
>  On 11/1/2022 11:23 PM, Hernán Wilkinson via Cuis-dev wrote:
>
> yeap, the current implementation is not correct.
> Juan, attached is a change set that fixes it and another with the related
> tests.
>
> Cheers!
> Hernan.
>
> On Tue, Nov 1, 2022 at 3:39 AM Luciano Notarfrancesco <luchiano at gmail.com>
> wrote:
>
>> I’m afk right now so I cannot check, but it sounds like I made a mistake.
>> Of course it should be the value of aBlock at each element times the number
>> of occurrences.
>>
>> On Tue, 1 Nov 2022 at 07:33 Hernán Wilkinson <
>> hernan.wilkinson at 10pines.com> wrote:
>>
>>> Hi,
>>>  the implementation of Bag>>#sum: aBlock ifEmpty: emptyBlock does not
>>> use the parameter aBlock at all and assumes that each of the elements
>>> answers the message *
>>>  @Luciano Notarfrancesco <luchiano at gmail.com> the implementation is
>>> yours and it is very new? Is there a reason you did that way?
>>>
>>> Thanks
>>> Hernan
>>>
>>>
>>> --
>>>
>>> *Hernán Wilkinson Agile Software Development, Teaching & Coaching*
>>> *Phone: +54-011*-4893-2057
>>> *Twitter: @HernanWilkinson*
>>> *site: http://www.10Pines.com <http://www.10pines.com/>*
>>> Address: Alem 896, Floor 6, Buenos Aires, Argentina
>>>
>>
>
> --
>
> *Hernán Wilkinson Agile Software Development, Teaching & Coaching*
> *Phone: +54-011*-4893-2057
> *Twitter: @HernanWilkinson*
> *site: http://www.10Pines.com <http://www.10pines.com/>*
> Address: Alem 896, Floor 6, Buenos Aires, Argentina
>
>
> Hi Hernán,
>
> Your fix disables the optimization Luciano did. I chose to fix Luciano's
> code. Did the same for #product: (same bug). Integrated your tests, and
> added another one for #product:
>
> Thanks,
>
> --
> Juan Vuletichcuis.stgithub.com/jvuletichresearchgate.net/profile/Juan-Vuletichindependent.academia.edu/JuanVuletichpatents.justia.com/inventor/juan-manuel-vuletichlinkedin.com/in/juan-vuletich-75611b3twitter.com/JuanVuletich
>
> --
> 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/20221105/be88203d/attachment.htm>


More information about the Cuis-dev mailing list