Oh, I didn't see the fine print under ,/ . Ric was planning to use ,.&:>/ which isn't listed as improved, and seems to be quadratic.
So I'll just say 'avoid quadratic performance for large operands'. Henry Rich Roger Hui wrote: >> ,./ will work but it will have quadratic performance. >> Avoid for large operands. > > t0=: 3 : '6!:2 '',./t'' [ t=. (y,43)$''abc'''"0 > t1=: 3 : '6!:2 '',./t'' [ t=. (43,y)$''abc'''"0 > t0 1e5*2^i.4 > 0.0979133 0.10202 0.194575 0.391258 > t1 1e5*2^i.4 > 0.0770126 0.0742525 0.118406 0.235672 > > Looks linear to me. > > > > ----- Original Message ----- > From: Henry Rich <[email protected]> > Date: Thursday, June 17, 2010 4:55 > Subject: Re: [Jprogramming] Combine named lists as matrix > To: Programming forum <[email protected]> > >> I share your antipathy to ". but I think it is unfounded. >> Surely it's >> no different from using 3 : . >> >> ,./ will work but it will have quadratic performance. >> Avoid for large >> operands. >> >> Henry Rich >> >> >> >> Sherlock, Ric wrote: >>> Thanks Henry >>> This is much simpler but I have this (probably irrational) >> negative feeling about using Do (".). I imagine that Evoke (~) >> is probably just Do (".) under the covers so perhaps I just need >> to get over it!! Reassurances welcome :-) >>> The other thing I like about the other solution is that it >> will give a length error if the columns are not equal length. >> Whether that is desirable is obviously problem dependent, but in >> my case it is a plus. Combining bits I get: >>> ,.&:>/@:(".&.>)@;: 'Var1 Var2 Var3 Var4 Var5' >>> >>>> From: Henry Rich >>>> Sent: Thursday, 17 June 2010 12:23 >>>> >>>> |:@:(".@>) ;: 'Var3 Var5 Var4 >> Var1 Var2' >>>> Sherlock, Ric wrote: >>>>> How best to form a matrix from a list of noun names where >> each noun >>>> is a list of values that will form a column in the matrix? >>>>> Below is one solution, are there better ones? >>>>> >>>>> Named nouns: >>>>> 'Var3 Var5 Var4 Var1 Var2' =: 5 7 ?...@$ 60 >>>>> >>>>> evoke=: 3 : 'y~' >>>>> toMatrix =: [: ,.&:>/ [: evoke&.> ;: >>>>> >>>>> toMatrix 'Var1 Var2 Var3 Var4 Var5' >>>>> 16 36 6 31 37 >>>>> 0 46 35 32 40 >>>>> 24 5 59 58 14 >>>>> 24 17 52 0 6 >>>>> 11 8 14 10 38 >>>>> 13 48 39 42 13 >>>>> 23 42 20 11 58 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
