Great, thanks in advance Ben On Sat, 26 Nov 2022 at 14:27, Henry Rich <henryhr...@gmail.com> wrote:
> This problem, which Elijah has found can be attributed to my insouciance > about the robustness of CRC-32 as a hash function, afflicts the entire > i.-family and has no good workaround. > > However, I think it will be easy to fix, and I hope we will get the fix > out in the next beta, which should be coming soon. > > Henry Rich > > On 11/25/2022 7:11 PM, 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