u L:0 on arrays with boxing level 1 is equivalent to u&.> (aka u each).  &.> supports inplacing of the cells, while L: does not.

Here Igor is doing less work than RE, boxing atoms of x only once.

Henry Rich


On 9/23/2021 10:18 AM, 'Michael Day' via Programming wrote:
I thought this should perform similarly to Igor's proposal,  but evidently not:

NB. input:
   $bigmap
3000 4000
   (+/%#) ,bigmap
0.030052333
   10{.bigm
abcabcabca
   10{.bign
ABCDABCDAB

NB. fns:
    ts      NB. timestamp

6!:2 , 7!:2@]


    acp   NB. IZ

1 : (':'; '; (<"0 x) ,"0 L: 0 m <@#"1 y')


   ix   NB. MD - index of ones in boolean
$ #: I.@,
   doix     MD.  using the index
4 : 0
'mm nn' =. y
map     =. x
'ixl ixr' =. |: ix map
l       =. ixl { mm
r       =. ixr { nn
l,. r
)


   ts'#bigmap ((#L:0"1{:),.&;~+/"1@[ #L:0 {.@]) bigm;bign' NB. RE Boss
0.0317587 14097792
   ts'bigm bigmap acp bign'  NB. Igor Zhuravlov
0.016309 3645696
   ts'bigmap doix bigm;bign' NB. Mike Day
0.0395122 16780064


It's clear I should learn how L: works;   it apparently outclasses I. for this problem,

but why is its application by Igor so much quicker and slimmer than REB's?


Cheers,


Mike



On 23/09/2021 14:12, R.E. Boss wrote:
    map ((#L:0"1{:),.&;~+/"1@[ #L:0 {.@]) 'abc';'ABCD'
aA
aD
bB
bC

My 2 cts.


R.E. Boss


-----Original Message-----
From: Programming <[email protected]> On Behalf Of bill lam
Sent: dinsdag 21 september 2021 11:38
To: Programming forum <[email protected]>
Subject: [Jprogramming] cross product

Say I have a boolean matrix
    ] map=. 3 4 $ 1 0 0 1 0 1 1 0 0 0 0 0
1 0 0 1
0 1 1 0
0 0 0 0

and 2 vectors of dimension equal to the 2 sides of the matrix
    m=. 'abc' [ n=. 'ABCD'
  I want a cross product for those 1 in the matrix, with result like this
    _2 ]\ 'aAaDbBbC'
aA
aD
bB
bC

Is it possible to do it without explicit loops? The dimension of the matrix can be very large so that generating all cross products then eliminating is not an option.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm





--
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to