Thanks. I missed the 1 and 5 next to each other. Linda
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Raul Miller Sent: Saturday, March 14, 2015 8:38 AM To: Programming forum Subject: Re: [Jprogramming] Performance query You probably meant to use parenthesis, instead of using dyadic rank 1 5 for your summation? Thanks, -- Raul P.S. +/("1) 5{.TST 3 12 21 30 39 On Sat, Mar 14, 2015 at 6:59 AM, Linda Alvord <[email protected]> wrote: > Why isn't the final line 3 12 21 30 39 > > > > (i.5){TST=: i. 2e6 3 > > 0 1 2 > > 3 4 5 > > 6 7 8 > > 9 10 11 > > 12 13 14 > > $TST > > 2000000 3 > > (i.5){(0&{"1 + 1&{"1 + 2&{"1) TST > > 3 12 21 30 39 > > (i.5){+/"1 TST > > 3 12 21 30 39 > > 5{.TST > > 0 1 2 > > 3 4 5 > > 6 7 8 > > 9 10 11 > > 12 13 14 > > +/"1 5{.TST > > 3 > > > > Linda > > > > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Tikkanz > Sent: Friday, March 13, 2015 9:27 PM > To: Programming JForum > Subject: [Jprogramming] Performance query > > > > I noticed some interesting behaviour when trying to simplify a J sentence. > > The simple J-like solution was slower than the more complex > proscriptive one. > > > > Given an array: > > TST=: i. 2e6 3 > > > > To sum the columns with each other (i.e. sum the rows), I can > > a) extract each column and the lists together: > > > > (0&{"1 + 1&{"1 + 2&{"1) TST > > > > b) sum the items in each row > > > > +/"1 TST > > > > Sentences a) and b) are equivalent: > > (+/"1 -: (0&{"1 + 1&{"1 + 2&{"1)) TST > > 1 > > > > And as I expected, the simpler sentence is faster and leaner. > > 10 timespacex '(0&{"1 + 1&{"1 + 2&{"1) TST' > > 0.0439944 5.03372e7 > > 10 timespacex '+/"1 TST' > > 0.0138071 1.67798e7 > > > > If I use GCD instead of Plus, the approaches are still equivalent, but > the simpler sentence is much slower (while still being leaner). > > (+./"1 -: 0&{"1 +. 1&{"1 +. 2&{"1) TST > > 1 > > 10 timespacex '(0&{"1 +. 1&{"1 +. 2&{"1) TST' > > 0.132607 5.03372e7 > > 10 timespacex '+./"1 TST' > > 0.943093 1.67805e7 > > > > Is this to be expected because of differences in the nature of the GCD > and Plus operations, or does it reflect an opportunity for future > optimisation of ( +. ) ? > > ---------------------------------------------------------------------- > > For information about J forums see > <http://www.jsoftware.com/forums.htm> > 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
