f7 beats f3 - by a little - for floating-point arguments on my machine: dd=: -:/:~?5e6$100 (f7-:f3) dd 1 ts 'f3 dd' 0.390561 1.09054e8 ts 'f7 dd' 0.28919 1.09577e8
On 7/31/07, Henry Rich <[EMAIL PROTECTED]> wrote: > > Continuing f3: > f5=: [EMAIL PROTECTED] - (# +/\@(|.!.0))@(#;.1)@(1,2~:/\]) > > Another idea is > > f7=: ;@:(<@([EMAIL PROTECTED]);.1) @ (1,2~:/\]) > > which beats f2 but not f3. If the interpreter had the > same optimization for ;@:<@([EMAIL PROTECTED]);.n that it has for > #;.n , maybe f7 would be a contendah. > > Students should note that ;@:(<@([EMAIL PROTECTED]);.1) is a lot > faster than ;@:(<@[EMAIL PROTECTED];.1) . > > Henry Rich > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Roger Hui > > Sent: Tuesday, July 31, 2007 11:28 AM > > To: Programming forum > > Subject: Re: RE: [Jprogramming] simple verb > > > > Another alternative. Actually an alternative for i.~ for this data > > whose speed relative to i.~ depends on the kind of data. > > > > f2=: [EMAIL PROTECTED] - i.~ > > f3=: [EMAIL PROTECTED] - (# +/[EMAIL PROTECTED]:@(0&,))@(#;.1)@(1,2~:/\]) > > > > c=: 1e5 [EMAIL PROTECTED] 10 > > x=: c#i.#c > > y=: 0.5 * x > > > > (f2 -: f3) x > > 1 > > (f2 -: f3) y > > 1 > > > > ts=: 6!:2 , 7!:[EMAIL PROTECTED] > > > > ts 'f2 x' > > 0.0192337 6.29222e6 > > ts 'f3 x' > > 0.0444705 7.86509e6 > > > > ts 'f2 y' > > 0.150214 6.29222e6 > > ts 'f3 y' > > 0.0593807 7.86509e6 > > > > #;.1@(1,2~:/\]) is an alternative to #/.~ which may be > > faster or slower depending on the kind of data. > > (Slower on "easy" data; faster on "hard" data.) > > > > (#/.~ -: #;.1@(1,2~:/\])) x > > 1 > > (#/.~ -: #;.1@(1,2~:/\])) y > > 1 > > ts '#/.~ x' > > 0.00797168 1.04941e6 > > ts '#;.1@(1,2~:/\]) x' > > 0.0135623 1.05043e6 > > ts '#/.~ y' > > 0.144353 6.29229e6 > > ts '#;.1@(1,2~:/\]) y' > > 0.0258773 1.05043e6 > > > > > > > > ----- Original Message ----- > > From: Henry Rich <[EMAIL PROTECTED]> > > Date: Tuesday, July 31, 2007 6:24 > > Subject: RE: [Jprogramming] simple verb > > To: 'Programming forum' <[email protected]> > > > > > Another solution is > > > > > > ([EMAIL PROTECTED] - i.~) 4 4 4 2 2 1 3 3 3 3 > > > 0 1 2 0 1 0 0 1 2 3 > > > > > > JfC shows Roger's solution for scrambled inputs. > > > > > > Henry Rich > > > > > > > -----Original Message----- > > > > From: [EMAIL PROTECTED] > > > > [mailto:[EMAIL PROTECTED] On Behalf Of R.E. Boss > > > > Sent: Tuesday, July 31, 2007 8:59 AM > > > > To: 'Programming forum' > > > > Subject: RE: [Jprogramming] simple verb > > > > > > > > Alternative: > > > > > > > > (0:`+ @.[)/\.&.|. 0,2=/\4 4 4 2 2 1 3 3 3 3 > > > > 0 1 2 0 1 0 0 1 2 3 > > > > > > > > Works alsof or scrambled: > > > > > > > > (0:`+ @.[)/\.&.|. 0,2=/\3 1 4 3 3 4 3 2 4 2 > > > > 0 0 0 0 1 0 0 0 0 0 > > > > > > > > > > > > R.E. Boss > > > > > > > > > > > > > > > > > -----Oorspronkelijk bericht----- > > > > > Van: [EMAIL PROTECTED] [mailto:programming- > > > > > [EMAIL PROTECTED] Namens Mike Day > > > > > Verzonden: dinsdag 31 juli 2007 12:27 > > > > > Aan: Programming forum > > > > > CC: [EMAIL PROTECTED] > > > > > Onderwerp: Re: [Jprogramming] simple verb > > > > > > > > > > Damien > > > > > > > > > > This works, but only if the data is in the form > > > > > [x =: 3 2 1 4 # 4 2 1 3 > > > > > 4 4 4 2 2 1 3 3 3 3 > > > > > NB. and not scrambled, eg > > > > > y =: 3 1 4 3 3 4 3 2 4 2 > > > > > > > > > > ;@((<@[EMAIL PROTECTED])/.~)x NB. developed > > > from your solution > > > > > 0 1 2 0 1 0 0 1 2 3 > > > > > > > > > > Is that what you need or do you also need a > > > > > result for scrambled x? > > > > > > > > > > Mike > > > > > > > > > > Damien wrote: > > > > > > Hi, > > > > > > > > > > > > I have a problem to create a verb. I think it is quite > > > easy, but > > > > > > unfortunately I can not. > > > > > > > > > > > > My Input (example) : 4 4 4 2 2 1 3 > > > 3 3 3 > > > > > > As output, I would : 0 > > > 1 2 0 1 0 0 1 2 3 > > > > > > > > > > > > I would like a verb which counts the iteration number for > > > > same element. > > > > > > It is equivalent to : (i. 3) , ( i. 2) , ( i. 1) , ( i. 4) > > > > > > I can do the line above because of the parenthesis. > > > > > > I can only get the vector : 3 2 1 4 easily with #/.~, but > > > > that is all. > > > > ---------------------------------------------------------------------- > > 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
