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