I suspect not.. (but take my timings with a grain of salt - or better yet, do them yourself - I was working with a modified version of S which is quite a bit slower, actually).
But I expect that (except for the edge cases where most of the instances of a are used) most of the time in S is spent in incremental updates of a. There are a lot of them. Thanks, -- Raul On Mon, Oct 30, 2017 at 10:56 AM, Erling Hellenäs <[email protected]> wrote: > I added the display step. I also modified the index in a, changed them from > y to y-1 since J has zero as index origin. > > I guess 99% of the time is spent in the r=: r,a step. /Erling > > > Den 2017-10-30 kl. 15:43, skrev Raul Miller: >> >> Hmm... you're right, that deals with some cases quite a bit better than >> mine. >> >> I can dip into most of them like this: >> >> parRDM=:4 :0 >> select. x >> case.1 do. >> ,.< i.y >> case.2 do. >> ((y#2)#:"1 0 }.i.2^y-1) </."1 i.y >> case.y do. >> ,:<"0 i.y >> case.do. >> x (1+y-x) P y >> end. >> ) >> >> ... keeping the definition of P (and combine) from >> http://jsoftware.com/pipermail/programming/2017-October/049423.html >> >> That said, parRuskey still is more efficient for the case where x = >> y-2 and and y>3 and that's worth some thought. >> >> Generally speaking, parRuskey has an advantage of working with >> partition id rather than partition contents, until the very last step. >> That's a clean performance advantage (no boxed arrays for most of the >> work). But ... still needs thought. >> >> Thanks, >> > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
