I figured something like this, but my insouciance concerning &. &: and &.: had prevented a successful implementation (now I think I understand). Thanks again!
Ben On Sat, 26 Nov 2022 at 16:21, Elijah Stone <elro...@elronnd.net> wrote: > For dyad i. use i.&:(1&|."1). Similar applies to other dyadic family > members. > > On Sat, 26 Nov 2022, Ben Gorte wrote: > > > Hi Henry, could you be a bit more explicit about these 32 bits + > > workaround? > > Eliahs suggestion helps, but doesn't seem to solve the entire issue. > > For example, something similar occurs in dyadic i. > > > > Thanks, > > Ben > > > > On Fri, 25 Nov 2022 at 02:57, Henry Rich <henryhr...@gmail.com> wrote: > > > >> It's a data dependency: > >> > >> xxx1 =. 1 ,"1~ 10000 3?@$ 100 > >> 6!:2'~. xxx1' > >> 0.0068845 > >> xxx1 =. 1 ,"1~ 10000 3?@$ 10000 > >> 6!:2'~. xxx1' > >> 0.000578 > >> > >> Repetitions at lengths of 32 bits seem to be trouble (not surprising > >> when you think about it). One kludgy-smelling workaround would be to > >> rotate the value of each word by a varying number of bits. The > >> advantage of that is that it requires very little setup and would still > >> be fast for short arguments. > >> > >> You have been looking into better hash functions. Do you want to > >> implement one here? Preferably one that is very fast for short > arguments. > >> > >> hhr > >> > >> On 11/24/2022 12:40 AM, Elijah Stone wrote: > >> > That looks rather serious. It seems some problem with the hashing > >> > function is causing an unreasonably high rate of collisions. As a > >> > temporary workaround, you can try using ~.&.:(1&|."1), or use the > >> > 32-bit version. > >> > > >> > On Thu, 24 Nov 2022, Ben Gorte wrote: > >> > > >> >> G'day, > >> >> > >> >> > >> >> Still J-ing along, I believe I ran into a little performance issue. > >> >> > >> >> I can strip it down into: > >> >> > >> >> > >> >> A3=:?1000000 3$100 NB. three columns of random numbers 0 .. 99 > >> >> > >> >> A31 =: A3,.1 NB. with an extra column of 1-s > >> >> > >> >> A4=:?1000000 4$100 NB. or four random columns > >> >> > >> >> 6!:2 'echo $~.A3' > >> >> > >> >> 632783 3 > >> >> > >> >> 0.037673 > >> >> > >> >> 6!:2 'echo $~.A31' > >> >> > >> >> 632783 4 > >> >> > >> >> 24.6091 > >> >> > >> >> That's 600 times longer! > >> >> > >> >> > >> >> However, > >> >> > >> >> 6!:2 'echo $~.A4' > >> >> > >> >> 995025 4 > >> >> > >> >> 0.43277 > >> >> > >> >> is again much quicker. > >> >> > >> >> > >> >> This is consistent over versions 807, 903 and 904, all with Ubuntu > >> >> linux. > >> >> > >> >> > >> >> I do need the fourth column and it has many 1-s (not all). > >> >> > >> >> > >> >> Thanks, > >> >> > >> >> Ben > >> >> > ---------------------------------------------------------------------- > >> >> 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm