math libraries
Ilya Yaroshenko via Digitalmars-d
digitalmars-d at puremagic.com
Thu Feb 12 14:11:47 PST 2015
Hi!
1. core.stdc.math - C math (sin(double), sinf(float),
sinl(real)). This functions are linked to libm.
2. core.stdc.tgmath - C math overloads (single name for
float/double/real). See also
http://www.cplusplus.com/reference/ctgmath/ . This functions are
link to libm.
3. core.math - Builtin mathematical intrinsics. They can be
executed at compile time.
4. std.math - Standart math module. Some functions can be
executed at compile time. Many functions defined only for `real`.
Work for `double` and `float` in progress.
Best Regards,
Ilya
On Thursday, 12 February 2015 at 20:56:34 UTC, Luc Bourhis wrote:
> What is the difference between (i) core.math, (ii) std.math,
> (iii) core.stdc.math and (iv) core.stdc.tgmath? (iv) falls back
> on (iii) as far as I can tell. (i) and (ii) seem to emit the
> same old x87 instructions, like fsin e.g., even for double and
> float. What's the difference?
>
> So that leaves only core.stdc.math which may use fast SSE2
> scalar instructions. It looks like it may do so, from a glance
> at the assembly with GDB. Could somebody shine some light?
More information about the Digitalmars-d
mailing list