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.

Reply via email to