Hi Elias, It seems that there would be a substantial performance hit using C++ object management to construct your workspace. I haven't run any benchmarks before, but perhaps a quick comparison with APL2 would be useful at this point.
Let's make a little function that does something 100 times. ∇DO100[⎕]∇ ∇ [0] DO100 X;I [1] I←¯1 [2] L1:→((I←I+1)≥100)/0 [3] ⍎X [4] →L1 ∇ 2015-08-20 21.00.29.850 (GMT-7) And another little function that prints out the number of seconds something takes. ∇TIME[⎕]∇ ∇ [0] TIME X;TS [1] TS←⎕TS [2] ⍎X [3] (⍕(24 60 60 1000⊥¯4↑⎕TS-TS)÷1000),' Seconds.' ∇ 2015-08-20 21.01.09.470 (GMT-7) And an array of a million floats. A←1000 1000⍴⍳1E6 And a 100x100 boolean identity matrix B←100 100⍴101↑1=1 [IBM APL2] TIME 'DO100 ''A←⍉A''' 2.391 Seconds. TIME 'DO100 ''B←B∨.∧B''' 7.591 Seconds. TIME 'DO100 ''C←≠\B''' 0.197 Seconds. [GNU APL] TIME 'DO100 ''A←⍉A''' 54.987 Seconds. TIME 'DO100 ''B←B∨.∧B''' 13.325 Seconds TIME 'DO100 ''C←≠\B''' 59.361 Seconds. That's actually not too horrible, considering what it's having to do. Regards, Mike