On Tuesday, 16 June 2015 at 13:06:58 UTC, jmh530 wrote:
On Monday, 15 June 2015 at 22:40:31 UTC, Baz wrote:
Right, my bad. This one whould work:
---
float[] test(float[] x) {
auto result = x.dup;
result.each!((ref a) => (a = exp(a)));
return result;
}
---
That works. Thanks.
I did some benchmarking and found that map tended to be faster
than each. For some large arrays, it was exceptionally faster.
Perhaps it has to do with the extra copying in the each formula?
I also did an alternative to each using foreach and they were
exactly the same speed.
Range based code is very dependant on aggressive optimisation to
get good performance. DMD does a pretty bad/patchy job of this,
LDC and and GDC will normally give you more consistently* fast
code.
*consistent as in different implementations performing very
similarly instead of seeing big differences like you have here.