On the Boolean case, which I would consider the most important, ([:
<:@(#/.~) i.@>:@(>./) , ]) is not optimal:
   a=.0.1> 100000 ?...@$ 0
   ia=.I. a
   6!:2 '([: <:@(#/.~) i.@>:@(>./) , ]) ia'
0.00682521
   6!:2 '(e.~ i.@>:@(>./)) ia'
0.002004
   6!:2 '1 ia} (0 $~ >:@(>./)) ia'
0.000679754

So if this is implemented well, there should be some special code for that.
On that last method: I can't seem to make it into a single verb. When I
input
1 [`]`(0 $~ >:@(>./)@])}~ ia

I get a rank error. Also of note, if I use (,1) instead of 1 I get a length
error--does the gerund amend just not support extending a scalar?

Marshall


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Raul Miller
Sent: Sunday, September 05, 2010 7:41 PM
To: Programming forum
Subject: Re: [Jprogramming] Mask from list of indices with multiplicity

On Sun, Sep 5, 2010 at 6:19 PM, Marshall Lochbaum
<[email protected]> wrote:
> I do really like the idea of this being I.^:_1. A lot of times I have 
> had an array of indices that I would like to get to an array of 1s, 
> and I have been forced to use something like (i.n) e. l (list is l, max
index is n).
> Making I.^:_1 equal to ([: <:@(#/.~) i.@>:@(>./) , ]) would be really 
> useful.

And perhaps !. could be used to specify the maximum index if <./ gets that
wrong?

--
Raul
----------------------------------------------------------------------
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