tsum4=:4 : '>{:trsm^:(a:~:{.)^:_ x;~}.&.|:(,:[EMAIL PROTECTED])y'
trsm=: 3 : 0
'y0 y1'=. y
e=.((e.#]),:~[{~]i.e.#[)/ y0
w=.(y1((([,-.~)[EMAIL PROTECTED]){])~ ~.{.y0)+(#y1){. ({.y0)+//.y1{~{:y0
e;w
)
This evolved to
tsum5=: 4 : '>{.trsm1^:(a:~:{:)^:_ x;}.y'
trsm1=: 3 : 0
'y0 y1'=.y
z=.y0((-&#)[EMAIL PROTECTED]@])y1
(y0+/@,: y1+//.y0{~z) ; y1([{~]i.e.#[) z
)
NB. tsum3 from
http://www.jsoftware.com/pipermail/programming/2008-March/010070.html
Some performance results.
n4 =: 2e4 [EMAIL PROTECTED] 25
p4 =: p: inv 1+i.2e4
n4 (tsum3 -:tsum4) p4
1
n4 (tsum3 -:tsum5) p4
1
NB. ts=: 6!:2 , 7!:[EMAIL PROTECTED]
NB. scores=: 5 ts&> ]
scores 'n4 tsum3 p4';'n4 tsum4 p4';'n4 tsum5 p4'
0.016517373 1671104
0.010196401 2482368
0.0053659542 1695296
Relative performance:
dspl rnkng scores 'n4 tsum3 p4';'n4 tsum4 p4';'n4 tsum5 p4'
+-----+-----+-----+----+----+
|verb |place|rlprf|rlt |rls |
+-----+-----+-----+----+----+
|tsum3| 2 |3.23 |3.31|1.00|
+-----+-----+-----+----+----+
|tsum4| 1 |2.42 |1.75|1.42|
+-----+-----+-----+----+----+
|tsum5| 0 |1.00 |1.00|1.02|
+-----+-----+-----+----+----+
m=: _1+2^20
n20=: m [EMAIL PROTECTED] 20
p20a=: p: inv >: i.m
p20b=: 0,2#i.<.-:m NB. complete binary tree
n20 (tsum3 -:tsum4) p20a
1
n20 (tsum3 -:tsum5) p20a
1
scores 'n20 tsum3 p20a';'n20 tsum4 p20a';'n20 tsum5 p20a'
1.2801371 94034560
1.1564694 1.300336e8
0.59123502 96477632
dspl rnkng scores 'n20 tsum3 p20a';'n20 tsum4 p20a';'n20 tsum5 p20a'
+-----+-----+-----+----+----+
|verb |place|rlprf|rlt |rls |
+-----+-----+-----+----+----+
|tsum3| 1 |2.10 |2.15|1.00|
+-----+-----+-----+----+----+
|tsum4| 2 |3.05 |1.95|1.60|
+-----+-----+-----+----+----+
|tsum5| 0 |1.00 |1.00|1.03|
+-----+-----+-----+----+----+
n20 (tsum3 -:tsum4) p20b
1
n20 (tsum3 -:tsum5) p20b
1
scores 'n20 tsum3 p20b';'n20 tsum4 p20b';'n20 tsum5 p20b'
4.6031481 1.6362957e8
1.6110058 1.3842061e8
0.94681087 1.0067123e8
dspl rnkng scores 'n20 tsum3 p20b';'n20 tsum4 p20b';'n20 tsum5 p20b'
+-----+-----+-----+----+----+
|verb |place|rlprf|rlt |rls |
+-----+-----+-----+----+----+
|tsum3| 2 |7.58 |4.86|1.56|
+-----+-----+-----+----+----+
|tsum4| 1 |2.24 |1.70|1.32|
+-----+-----+-----+----+----+
|tsum5| 0 |1.00 |1.00|1.00|
+-----+-----+-----+----+----+
p4x=:0,}:i.#n4 NB. extreme case
n4 (tsum3 -:tsum5) p4x
1
n4 (tsum3 -:tsum4) p4x
1
scores 'n4 tsum3 p4x';'n4 tsum4 p4x';'n4 tsum5 p4x'
0.52918958 4612864
0.091789114 5251456
0.073304202 3546880
dspl rnkng scores 'n4 tsum3 p4x';'n4 tsum4 p4x';'n4 tsum5 p4x'
+-----+-----+-----+----+----+
|verb |place|rlprf|rlt |rls |
+-----+-----+-----+----+----+
|tsum3| 2 |8.71 |6.94|1.25|
+-----+-----+-----+----+----+
|tsum4| 1 |1.78 |1.22|1.46|
+-----+-----+-----+----+----+
|tsum5| 0 |1.00 |1.00|1.00|
+-----+-----+-----+----+----+
R.E. Boss
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm