|
e. Improved |
initial writing: 2004-01-15 last updated: 2004-10-26 |
The dyad e. is now faster and leaner
(as are other members of the i. family of facilities).
The following benchmarks demonstrate the improvement.
xb6=: 1e6 6 ?@$ 2 [ yb6=: 5e5 6 ?@$ 2
xc2=: a.{~ 1e6 2?@$ #a. [ yc2=: a.{~ 5e5 2?@$ #a.
xc6=: a.{~ 1e6 6?@$ #a. [ yc6=: a.{~ 5e5 6?@$ #a.
xu=: u: 1e6 ?@$ 65536 [ yu =: u: 5e5 ?@$ 65536
xi5=: 1e6 ?@$ 1e5 [ yi5=: 5e5 ?@$ 1e5
xi6=: 1e6 ?@$ 1e6 [ yi6=: 5e5 ?@$ 1e6
xi9=: 1e6 ?@$ 1e9 [ yi9=: 5e5 ?@$ 1e9
xd =: 0.01*1e6 ?@$ 1e6 [ yd =: 0.01*5e5 ?@$ 1e6
xbx=: ":&.>?1e6$2e5 [ ybx=: ":&.>?5e5$2e5
ts=: 6!:2 , 7!:2@] NB. time and space
ts 'Expression'
| Expression | J 5.03 | J 5.02 | Ratio | |||
| xb6 e.yb6 Boolean table | 0.3550303 5.243648e6 | 0.4062659 8.389440e6 | 1.14 1.60 | |||
| xc2 e.yc2 literal table | 0.0332989 1.180352e6 | 0.0965637 5.243648e6 | 2.90 4.44 | |||
| xc6 e.yc6 literal table | 1.0059639 5.243648e6 | 1.0335719 8.389440e6 | 1.03 1.60 | |||
| xu e.yu Unicode list | 0.0332559 1.180352e6 | 0.0933937 5.243648e6 | 2.81 4.44 | |||
| xi5 e.yi5 integer list | 0.0825823 1.180352e6 | 0.1567783 8.389376e6 | 1.90 7.11 | |||
| xi6 e.yi6 integer list | 0.1898973 2.097856e6 | 0.2546452 8.389376e6 | 1.34 4.00 | |||
| xi9 e.yi9 integer list | 0.5774994 5.243584e6 | 0.6632033 8.389376e6 | 1.15 1.60 | |||
| xd e.yd real list | 1.1078422 5.243584e6 | 1.1294243 8.389376e6 | 1.02 1.60 | |||
| xbx e.ybx boxed list | 3.2511353 5.243584e6 | 3.2240441 8.389376e6 | 0.99 1.60 |