Note that 1e6 ?@# 1e3 and 1e6 ?@$ 1e3 are both optimised compared to ? 1e6
# 1e3
   10 timespacex '?1000000#1000'

0.0230934 1.67786e7

   10 timespacex '1000000?@#1000'

0.0176543 8.39002e6

   10 timespacex '1000000?@$1000'

0.0186202 8.39002e6





On Fri, Jul 28, 2017 at 10:36 AM, 'Mike Day' via Programming <
programm...@jsoftware.com> wrote:

> Just back from doing a BBC Prom!  Very loud...  Still some
> voice left.
>
> If I'm doing a simulation,  I often do ? on a large sample,
> eg ?1000000#1000 or the like,  and then "draw" from that
> sample in sequence.   Usually for independent trials.
>
> For example,  for this donation problem,  it _might_ be
> preferable to sample ?10000 400$400 and then work down
> the 10000 rows than doing the ^:10000 trick.   (The trials
> are still independent,  assuming you're happy to sample
> even for the non-donors.)
>
> I haven't tried that approach here,  so don't know off hand
> whether it's worth trying.
>
> Cheers,
> Mike
>
>
> On 27/07/2017 21:27, Jimmy Gauvin wrote:
>
>> I was wondering if making rg tacit would boost performance.
>> Thanks to Raul for answering my unvoiced question.
>>
>> I guess key, nub and amend are well optimized in the J interpreter.
>>
>> Jimmy
>>
>> PS Is roll also optimized for speed? If not should we look into ISAAC or
>> other fast PRNGs?
>>
>>
>>
>> On Thu, Jul 27, 2017 at 5:23 AM, Raul Miller <rauldmil...@gmail.com>
>> wrote:
>>
>> Ah, i was testing it on too small of a data set.
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>>
>>> On Thu, Jul 27, 2017 at 4:33 AM, 'Mike Day' via Programming
>>> <programm...@jsoftware.com> wrote:
>>>
>>>> Jimmy's original rg outperforms both tock and the best of
>>>> my various attempts at "new" for "larger" problems,  eg
>>>>
>>>>     10 ts 'rg^:10000 #~400'
>>>> 0.633403 38272
>>>>     10 ts 'tock^:10000 #~400'
>>>> 0.751826 34816
>>>>     10 ts 'new^:10000 #~400'
>>>> 0.793394 39424
>>>>
>>>> NB. less good on smaller ones
>>>>     30 ts 'rg^:10000 #~10'
>>>> 0.10968 6784
>>>>     30 ts 'tock^:10000 #~10'
>>>> 0.0662844 3840
>>>>     30 ts 'new^:10000 #~10'
>>>> 0.0633482 3968
>>>>
>>>> (Have you looked at Raul's results table, posted on 20/7?)
>>>>
>>>> The original problem asked us to consider 100 players,
>>>> but, as usual,  it's one thing to solve a small puzzle that you
>>>> can get your head round,  but very often a much more challenging
>>>> requirement to get it to scale up.
>>>>
>>>> Those many Project Euler problems are worth looking at with
>>>> scale of application in mind.     ( //projecteuler.net )
>>>>
>>>> Thanks,
>>>> Mike
>>>>
>>>>
>>>>
>>>> On 27/07/2017 05:54, Raul Miller wrote:
>>>>
>>>>> Oh, well, you could make it tacit. For example:
>>>>>
>>>>>      rg=:(((#/.~@])`(~.@])`(0*[)} +/?@##)+-) *
>>>>>
>>>>> That does not speed it up, though.
>>>>>
>>>>> Anyways, good luck,
>>>>>
>>>>>
>>>> ---
>>>> This email has been checked for viruses by Avast antivirus software.
>>>> https://www.avast.com/antivirus
>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to