Possibly special code. Which version of J were you using? (I haven't benchmarked any of this myself. I probably should...)
Thanks, -- Raul On Thu, Sep 23, 2021 at 10:18 AM 'Michael Day' via Programming <[email protected]> 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 Avast antivirus software. > https://www.avast.com/antivirus > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
