When I re-run this, I show the two tacit versions as being basically the same - since arguments of this size lead to paging, my earlier message probably reflected some issue with that: (10) 6!:2 'idMatt2 &.> 36000 38000 40000 42000 44000 46000 48000 50000' 24.692 (10) 6!:2 'idMatt1 &.> 36000 38000 40000 42000 44000 46000 48000 50000' 23.3431 idMatt2 ,~ $ >: {. 1: idMatt1 (2 $ ]) $ 1 {.~ >
On Wed, Nov 21, 2012 at 2:12 AM, bob therriault <bobtherria...@mac.com>wrote: > Hi Roger, > > Running J 701 on my iPad and on my laptop gets similar results to yours. > > Running J 6.02 on the laptop still consistently shows the differences I > posted, so my guess is now that J 7.01 handles 1: better than J 602 > > (sheepishly) cheers, bob > > > On 2012-11-20, at 9:04 PM, Roger Hui wrote: > > > I think you need to take more care in doing benchmarks. What I got just > > now: > > > > 10 timer 'idMate1 9000' > > 0.110233 > > 10 timer 'idMatt1 9000' > > 0.125659 > > 10 timer 'idMatt2 9000' > > 0.106581 > > 10 timer 'idMatt3 9000' > > 0.120995 > > > > > > > > On Tue, Nov 20, 2012 at 5:48 PM, bob therriault <bobtherria...@mac.com > >wrote: > > > >> Wow, would not have expected that , Devon :) > >> > >> After testing a substantially reduced challenge on my laptop (Devon, you > >> have some serious metal behind your J installation!) > >> idMate1=: 3 : '(2$y)$(>:y){.1' NB. Explicit and fast > >> (10) 6!:2 'idMate1 &.> 9000 ' > >> 0.120056 > >> idMatt1=: (2$])$1{.~>: NB. Tacit and fast > >> (10) 6!:2 'idMatt1 &.> 9000 ' > >> 0.11531 > >> idMatt2=: ,~ $ >: {. 1: NB. Tacit and slow > >> (10) 6!:2 'idMatt2 &.> 9000 ' > >> 0.510053 > >> > >> I am guessing that the 1: is the culprit and that these verbs may be > used > >> rarely enough that they don't get the benefit of special code > >> > >> idMatt3=: ,~ $ 1{.~ >: NB. Same as idMatt2 without use > of 1: > >> (10) 6!:2 'idMatt3 9000 ' > >> 0.114926 > >> > >> Thanks for the insight Devon, as I await Roger's clarification if I have > >> guessed wrong. :) > >> > >> Cheers, bob > >> > >> On 2012-11-20, at 5:12 PM, Devon McCormick wrote: > >> > >>> Here's what I get for timings for some of these methods: > >>> > >>> NB. Various ways to create ] x ] identity mat. > >>> idMat0=: =@:i. > >>> idMat1=: 3 : '(2$y)$(>:y){.1' NB.* faster, scales better > >>> idMat2=: ,~ $ >: {. 1: > >>> > >>> (10) 6!:2 'idMat0 &.> 36000 38000 40000 42000 44000 46000 48000 50000' > >>> 21.7756 > >>> (10) 6!:2 'idMat1 &.> 36000 38000 40000 42000 44000 46000 48000 50000' > >>> 9.55495 > >>> (10) 6!:2 'idMat2 &.> 36000 38000 40000 42000 44000 46000 48000 50000' > >>> 23.0792 > >>> > >>> If you need a *:5e4 identity matrix, you're in trouble. > >>> > >>> > >>> On Tue, Nov 20, 2012 at 6:04 PM, bob therriault <bobtherria...@mac.com > >>> wrote: > >>> > >>>> Devon, > >>>> > >>>> I like that, or another tacit option > >>>> > >>>> idMat1=: ,~ $ >: {. 1: > >>>> idMat1 6 > >>>> 1 0 0 0 0 0 > >>>> 0 1 0 0 0 0 > >>>> 0 0 1 0 0 0 > >>>> 0 0 0 1 0 0 > >>>> 0 0 0 0 1 0 > >>>> 0 0 0 0 0 1 > >>>> > >>>> Cheers, bob > >>>> > >>>> On 2012-11-20, at 1:33 PM, Devon McCormick wrote: > >>>> > >>>>> I used to have a named verb "idMat" in my own utilities library that > >> was > >>>>> defined this way: > >>>>> idMat=: =@:i. > >>>>> > >>>>> but testing this on large arguments led me to formulate this > >>>>> idMat=: 3 : '(2$y)$(>:y){.1' NB.* faster and scales better > >>>>> > >>>>> or, the same thing tacitly: > >>>>> idMat=: (2 $ ]) $ 1 {.~ >: > >>>>> > >>>>> > >>>>> On Tue, Nov 20, 2012 at 2:29 PM, Don & Cathy Kelly <d...@shaw.ca> > >> wrote: > >>>>> > >>>>>> A key point that dawned on me, after reading all the helpful > comments > >>>> and > >>>>>> suggestions that have come in, is that I don't need a verb- just a > >> noun > >>>> - so > >>>>>> y=: 2 3 4 2 2 3 (it also works for an n,n array) > >>>>>> > >>>>>> ] u=:=i.# y > >>>>>> > >>>>>> 1 0 0 0 0 0 > >>>>>> 0 1 0 0 0 0 > >>>>>> 0 0 1 0 0 0 > >>>>>> 0 0 0 1 0 0 > >>>>>> 0 0 0 0 1 0 > >>>>>> 0 0 0 0 0 1 > >>>>>> > >>>>>> and I can use u*y for different 'y''s ( as long as the # is the > >>>> same) > >>>>>> to get the desired diagonal elements with off diagonal elements 0 > >>>>>> I want this because I want to add to the diagonal elements of a > >> matrix. > >>>>>> This is for a Newton Raphson based power system load flow. > >>>>>> > >>>>>> Thanks to all, > >>>>>> Don > >>>>>> > >>>>>> > >>>>>> > >>>>>> On 20/11/2012 8:24 AM, Roger Hui wrote: > >>>>>> > >>>>>>> http://www.jsoftware.com/**jwiki/Essays/Identity%20Matrix< > >>>> http://www.jsoftware.com/jwiki/Essays/Identity%20Matrix>: 34 > different > >>>> ways > >>>>>>> to generate the identity matrix of order n; the first is =@i. and > the > >>>> last > >>>>>>> is _&q:@p:@i. > >>>>>>> ------------------------------**------------------------------** > >>>>>>> ---------- > >>>>>>> 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> > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Devon McCormick, CFA > >>>>> ^me^ at acm. > >>>>> org is my > >>>>> preferred e-mail > >>>>> > ---------------------------------------------------------------------- > >>>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>> > >>> > >>> > >>> -- > >>> Devon McCormick, CFA > >>> ^me^ at acm. > >>> org is my > >>> preferred e-mail > >>> ---------------------------------------------------------------------- > >>> 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 > -- Devon McCormick, CFA ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm