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

Reply via email to