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

Reply via email to