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

Reply via email to