Is this useful or can it be done some other way more efficiently?

   x
zero
one 
two 
five
one 
   y
three
one  
four 
one  
five 
nine 
   (x I y){y
nine 
one  
nine 
one  
one  
nine

Linda



-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Pascal Jasmin
Sent: Saturday, October 26, 2013 9:49 PM
To: [email protected]
Subject: Re: [Jprogramming] a more useful i. ?

In this structure, 

'aa',~'asdf',:'asd'

how would you recommend finding the row (or first row) with 'aa  ' in it,
knowing only that 'aa' is what you are searching for?


This works:
   'aa' I~ 'aa',~'asdf',:'asd'
2

I guess that is what its for :)

some timings though:

a =. (<'aa') ,~ (? 1e5 $ 26) <@:$"0 1 (65+i.26) { a. NB. boxed


   10 ts '(<''ABC'') i.~ a'

312499/sec 0.002304MB
   10 ts '(<''ABD'') i.~ a' NB. not found 243.847/sec 0.002304MB
   10 ts '(<''aa'') i.~ a' NB. last to find 206.336/sec 0.002304MB
   10 ts '(<''ABC'') i:~ a'
416666/sec 0.002304MB
   
a2 =. 'aa' ,~ (? 1e5 $ 26) $"0 1 (65+i.26) { a.  NB. padded strings unboxed


   10 ts '(''ABC'') I~ a2'
99.3004/sec 6.29952MB
   10 ts '(''ABD'') I~ a2'
99.7279/sec 6.29952MB
   10 ts '(''aa'') I~ a2'
101.727/sec 6.29952MB



________________________________
From: Roger Hui <[email protected]>
To: Programming forum <[email protected]>
Sent: Wednesday, October 23, 2013 4:28:52 PM
Subject: Re: [Jprogramming] a more useful i. ?


It is much more efficient in time and space to eschew boxing within a
column.



On Wed, Oct 23, 2013 at 2:23 PM, Pascal Jasmin
<[email protected]>wrote:

> I find that using boxed strings in inverted tables avoids a whole series
> of issues that occur if you let J fill short strings with pads until they
> match length to whatever the longest string is.
>
> I don't really know how much it slows down things by doing it that way,
> but the approach can fix i. by comparing to boxed values.  I definitely
> don't have an exhaustive list of things that seem harder without boxing
> first, but there is probably more than just i.
>
>
> ________________________________
> From: Roger Hui <[email protected]>
> To: Programming forum <[email protected]>
> Sent: Wednesday, October 23, 2013 4:53:34 PM
> Subject: Re: [Jprogramming] a more useful i. ?
>
>
> Thanks.  I had not intended to promote rank-deficient arguments.  I
> probably want to disallow that.
>
> One effect would be to make
> http://www.jsoftware.com/jwiki/Essays/Inverted_Table#Index_of more
> immediately useful: If you have to do the overtake yourself for one table,
> it's tolerable; if you have to do it on some subset of columns (and you
> don't know ahead of time which ones), it's a big mess.  Basically in
>
>    tindexof=: i.&>~@[ i.&|: i.&>
>
> you'd replace the i. in the left and right tines with the I verb that I
> defined.
>
>
>
>
> On Wed, Oct 23, 2013 at 1:45 PM, Henry Rich <[email protected]> wrote:
>
> > Seems reasonable.  This would also promote atoms to match rows of
tables.
> >  I've never needed it.
> >
> > Henry Rich
> >
> >
> > On 10/23/2013 4:28 PM, Roger Hui wrote:
> >
> >> Thought experiment:  What if i. does overtake on the arguments to
ensure
> >> that the item shape of the left argument matches the cell shape of the
> >> right argument?
> >>
> >>     I=: 4 : '(s{."c x) i. (s{."c y) [ s=. (}.$x)>.(-c=. <:$$x){.$y'
> >>     x=: > ;:'zero one two five one'
> >>     y=: > ;:'three one four one five nine'
> >>
> >>     $x
> >> 5 4
> >>     $y
> >> 6 5
> >>
> >>     x i. y
> >> 5 5 5 5 5 5
> >>     x I y
> >> 5 1 5 1 3 5
> >> ------------------------------**------------------------------**
> >> ----------
> >> For information about J forums see
> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/forums.htm>

>
> >>
> >>  ------------------------------**------------------------------**
> > ----------
> > For information about J forums see http://www.jsoftware.com/**forums.htm
> <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