Effective work with std.experimental.ndslice and and mir.ndslice.array requires half of std.math be an exactly aliases to LLVM intrinsics (for LDC).

To enable vectorization for mir.ndslice.algorithm I created internal math module [1] in Mir. But this is weird, because third side packages like DCV [2] requires to use the module too. Also, some optimisation for std.complex and future std.exprimental.color would be very ugly without proposed change.

Proposed change is very simple:
Each math function listed in [1] should be a template for DMD/GDC and an alias for LDC in std.math.

If some one has strong arguments against it, please let me know now.

[1] https://github.com/libmir/mir/blob/master/source/mir/internal/math.d
[2] https://github.com/ljubobratovicrelja/dcv

Best regards,
Ilya

Reply via email to