Eps


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