Great, thanks!

Greetings,
Ben

On Wed, 13 Nov 2019 at 02:54, Henry Rich <[email protected]> wrote:

> Fixed for next release.  The problem was that (x{M) created a temporary
> in-place noun to refer to atoms of M; this raised the usecount of M
> rendering it uninplaceable for the amend (}).  The in-place noun should
> have been released right after it was used, but erroneously it was not
> released until the end of the sentence.
>
> The workaround is to do the fetch from M in a different sentence. And do
> try those forms that avoid boxing.
>
> Henry Rich
>
> On 11/12/2019 2:17 AM, Ben Gorte wrote:
> > Dear J'ers
> >
> > I'm using large 3D arrays (voxels), such as
> >     M =: ?400 400 400$100
> >
> > To add 1 to a bunch of voxels at positions
> >
> > I =: ?100 3$400
> >
> > I go like:
> >
> > timespacex 'M =: (1+(;/I){M) (;/I) } M'
> >
> > 1.3e_5 42048
> >
> > This was in version 8.07:
> >
> > JVERSION
> >
> > Engine: j807/j64/linux
> >
> > Release: commercial/2018-10-04T15:00:41
> >
> > Library: 8.07.26
> >
> >
> > In version 9.01, however: timespacex 'M =: (1+(;/I){M) (;/I) } M'
> >
> > 0.238664 5.36912e8
> >
> >
> > It became thousands of times slower! I'm doing this hundreds of thousands
> > of times and it takes weeks instead of minutes.
> >
> >
> > A multi-dimensional index for amend does not need to be boxed in j901,
> but:
> >
> > timespacex 'M =: (1+(;/I){M) I } M'
> >
> > 0.238302 5.36894e8
> > gives pretty much the same result.
> > This is with:
> >
> > JVERSION
> >
> > Engine: j901/j64avx2/linux
> >
> > Beta-p: commercial/2019-11-06T09:48:25
> >
> > Library: 9.01.10
> >
> > I was wondering whether it happend in { or }, but to my great surprise:
> >      timespacex 'new =: 1+(;/I) { M'
> >
> > 8e_6 21824
> >      timespacex 'M =: new (;/I) } M'
> >
> > 6e_6 20992
> >
> > So the solution is to do it in two steps !?!?
> >
> > With unboxed I in step 2, I get even:
> >
> > timespacex 'M =: new I } M'
> >
> > 2e_6 2560
> >
> >
> > Am I missing a point? Could I have foreseen this?
> >
> > Greetings,
> > 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

Reply via email to