Looks good, I'll work on it when I get back next week. Henry Rich
On Fri, Mar 18, 2022, 5:42 AM Elijah Stone <[email protected]> wrote: > Sorry, I forgot to attach the patch. Should be attached now. > > On Fri, 18 Mar 2022, Elijah Stone wrote: > > > What was I thinking? i. is much more prestigious than /: > > > > x=: ?1e8$65536 > > y=: 0+x NB. avoid selfie optimizations. The effect is still > > present, but less pronounced > > x4=: 10 u:x > > y4=: 10 u:y > > x2=: 2 u:x4 > > y2=: 2 u:y4 > > timex'x i.y' > > 0.728156 > > timex'x4 i.y4' > > 3.8804 > > timex'x2 i.y2' > > 0.651964 > > > > Probably an oversight when 4-byte chars were added, on the theory that > > 2-byte chars would always get small-range optimization. (Which is, as a > > matter of fact, not the case.) > > > > Attached is a patch fixing the problem. This also helps with 4-column > > matrices of 1-byte chars etc. (I think there may be reasonably cheap > > gains to be made across the board for i. on matrices of few columns, but > > at the very least small POT deserves to be fast.) This should also > > improve performance for smaller 2-byte arrays that do not make the > > small-range cut. With the patch: > > > > timex'x4 i.y4' > > 0.613455 > > > > -E > > ---------------------------------------------------------------------- > > 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
