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 |