These are almost the same timings. 4.5x speed improvement from tacit. I'm using 
AMD A8 apu.  results were from j632  You are right that I should precalculate 
the data so as to better compare explicit vs implicit.

The focus of the test for me was to see the difference between the convenient 
explicit unpacking ('a b c' =.) and "manual unpacking" in an implicit 
expression.  The +:,-: are just some dummy work.  

Though the . approach is impressively fast: 42M triples processed per second!

The vocabulary page on . could use a link to a math refresher, and maybe a 2nd 
pass on the english to english translation.



j6-64
   ts
,&'/sec '@":@%@(6!:2) , ,&'MB'@":@(%&1000000)@(7!:2)@:]

 10 ts '( -:@>@{.  + >@(1&{) + +:@>@{:)"1 D'
11.679/sec 1.05472MB
   10 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 D'
2.34412/sec 1.06189MB

thinking that this tests the code parsing engine:
   D5 =. 1e2 3 $ ;/ i.37
  1e4 ts '( -:@>@{.  + >@(1&{) + +:@>@{:)"1 D5'
10838.7/sec 0.007168MB
   1e4 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 D5'
2071.46/sec 0.014336MB

it appears that there is a (slightly) wider performance advantage in parsing 
tacit vs explicit code.



----- Original Message -----
From: Dan Bron <[email protected]>
To: [email protected]
Cc: 
Sent: Monday, November 4, 2013 7:30:50 PM
Subject: Re: [Jprogramming] weird syntax error

Sorry, I meant to call out specifically, with the second set of timings,
that I'd separated the calculations from the separation of the data.  That
is, including  1e5 3 $ ;/ i.37  in your measurements was hiding some of the
differences between the tacit and explicit approaches.

-Dan

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Dan Bron
Sent: Monday, November 04, 2013 7:25 PM
To: [email protected]
Subject: Re: [Jprogramming] weird syntax error

I can't reproduce your results on my machine.  Here's a run on mine:

   JVERSION
Installer: j602a_win64.exe
Engine: j602/2008-03-03/16:45
Library: 6.02.023

   ts =: [: ;:^:_1 ('/sec';'MB') ,&.>~ ('0';'0.3') 8!:0 %@:(6!:2) , 1e_6 *
7!:2@:]

   10 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 ] 1e5 3 $
;/ i.37'
1/sec 7.722MB
   10 ts '( -:@>@{:  + >@(1&{) + +:@>@{:)"1 ] 1e5 3 $ ;/ i.37'
3/sec 7.713MB
  
   D=:1e5 3 $ ;/ i.37
   10 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 D'
1/sec 1.062MB
   10 ts '( -:@>@{:  + >@(1&{) + +:@>@{:)"1 D'
5/sec 1.055MB
  
  
   D2=:1e5 3 $ i.37  NB.  Boxes superfluous
   10 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 D2'
1/sec 1.062MB
   10 ts '( -:@>@{:  + >@(1&{) + +:@>@{:)"1 D2'
4/sec 1.055MB
  
   NB.  More direct approach
   10 ts '0.5 1 2 +/@:*"1  D2'
16/sec 1.053MB
   10 ts '0.5 1 2 +/ .* |:D2'
117/sec 9.441MB
  
   NB.  Define D more naturally for use-case
   D3=:|:D2  
   10 ts '0.5 1 2 +/ . * D3'
429/sec 5.246MB

-Dan


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Pascal Jasmin
Sent: Monday, November 04, 2013 5:04 PM
To: [email protected]
Subject: Re: [Jprogramming] weird syntax error

sorry, I found it right after sending, but here is another stumper

also,
 ts '(3 : '' ( -: a) + b + (+: c) [ ''a b c'' =. y'')"1 ] 1e5 3 $ ;/ i.37'


needs to be:
 ts '(3 : '' ( -: a) + b + (+: c) [ ''''a b c'''' =. y'')"1 ] 1e5 3 $ ;/
i.37'

2.17296/sec 4.3856MB



and just fyi, the point of why I was doing that, the equivalent tacit form
timing:

   ts '( -:@>@{:  + >@(1&{) + +:@>@{:)"1 ] 1e5 3 $ ;/ i.37'
9.2746/sec 4.38099MB



----- Original Message -----
From: Michael Dykman <[email protected]>
To: J Programming <[email protected]>
Cc: 
Sent: Monday, November 4, 2013 4:56:01 PM
Subject: Re: [Jprogramming] weird syntax error

double your quotes when inside quotes.

t =. 3 : ' ( -: a) + b + (+: c) [ ''a b c'' =. y'


On Mon, Nov 4, 2013 at 4:53 PM, Pascal Jasmin <[email protected]>wrote:

> I'm likely doing something silly, but I just don't see the mistake:
>
>  (-: a)+b++:c [ 'a b c' =. ;/ 1 2 3
> 8.5
>    t =. 3 : ' ( -: a) + b + (+: c) [ 'a b c' =. y'
> |syntax error
> |   (-:a)    +b+(+:c)[
>
> is it trying to form a train with [ as the rh most verb?
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



--
- michael dykman
- [email protected]

May the Source be with you.


----------------------------------------------------------------------
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to