I was hoping to get rid of some or all of the temporary vars so I guess I'll try option 2 and see if I can come up with something.
I like the *y instead of y>0 and the #/.~ the }~ was a bit harder to grasp until I realized that } is an adverb and then the equivalence of "what where} array" and "array where}~ what" started making sense thanks and, yes, it does help On Wed, Jul 26, 2017 at 6:10 PM, Raul Miller <rauldmil...@gmail.com> wrote: > When going for speed, there's two basic approaches: > > (1) try minor variations on the theme - rearrange to see if you can > eliminate anything, or to incorporate any known special code, > > (2) rewrite from scratch and see if that's faster. > > Personally, I don't see any way to make that one any faster, though I > can rewrite it: > > rg=: 3 : '(y-g)+(0*g) (~.r)}~ #/.~ r=. ?(#y)#~ +/g=.*y' > > I can, of course suggest alternate "from scratch" rewrites - but > that's just by referring to previous posts in this thread. > > I don't know if this helps, > > -- > Raul > > > On Wed, Jul 26, 2017 at 4:44 PM, Jimmy Gauvin <jimmy.gau...@gmail.com> > wrote: > > Hi, > > > > this function seems reasonably fast but I think it could be re-arranged > to > > be a bit more compact, > > > > Would anyone have some tips as how to go about this? > > > > rg =: 3 : '(y-g) + (r #/. r) (~. r =. ? (+/ g =. y>0)$ $y) } 0 $~ $y' > > > > > > ts 'rg ^:10000 ] 400$100' > > > > 0.209447 38272 > > > > > > ts 'rg ^:100000 ] 400$100' > > > > 2.10048 38272 > > > > > > > > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm