mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
130 lines
3 KiB
D
130 lines
3 KiB
D
/*
|
|
COMPILABLE_MATH_TEST
|
|
REQUIRED_ARGS:
|
|
PERMUTE_ARGS:
|
|
TEST_OUTPUT:
|
|
---
|
|
log()
|
|
1.70475L
|
|
log2()
|
|
2.45943L
|
|
log10()
|
|
0.740363L
|
|
round()
|
|
6.0L
|
|
floor()
|
|
5.0F
|
|
5.0
|
|
5.0L
|
|
ceil()
|
|
6.0F
|
|
6.0
|
|
6.0L
|
|
trunc()
|
|
5.0L
|
|
exp()
|
|
244.692L
|
|
expm1()
|
|
243.692L
|
|
exp2()
|
|
45.2548L
|
|
fmin()
|
|
-3.2L
|
|
fmax()
|
|
5.2L
|
|
copysign()
|
|
-2.5F
|
|
-2.5
|
|
-2.5L
|
|
pow()
|
|
9.88212F
|
|
9.88212
|
|
9.88212L
|
|
9.88212
|
|
fma()
|
|
-12.84L
|
|
---
|
|
*/
|
|
|
|
// https://issues.dlang.org/show_bug.cgi?id=5227
|
|
|
|
import std.math;
|
|
|
|
pragma(msg, "log()");
|
|
enum logf = log(5.5f); //pragma(msg, logf);
|
|
enum logd = log(5.5 ); //pragma(msg, logd);
|
|
enum logr = log(5.5L); pragma(msg, logr);
|
|
|
|
pragma(msg, "log2()");
|
|
enum log2f = log2(5.5f); //pragma(msg, log2f);
|
|
enum log2d = log2(5.5 ); //pragma(msg, log2d);
|
|
enum log2r = log2(5.5L); pragma(msg, log2r);
|
|
|
|
pragma(msg, "log10()");
|
|
enum log10f = log10(5.5f); //pragma(msg, log10f);
|
|
enum log10d = log10(5.5 ); //pragma(msg, log10d);
|
|
enum log10r = log10(5.5L); pragma(msg, log10r);
|
|
|
|
pragma(msg, "round()");
|
|
enum roundf = round(5.5f); //pragma(msg, roundf);
|
|
enum roundd = round(5.5 ); //pragma(msg, roundd);
|
|
enum roundr = round(5.5L); pragma(msg, roundr);
|
|
|
|
pragma(msg, "floor()");
|
|
enum floorf = floor(5.5f); pragma(msg, floorf);
|
|
enum floord = floor(5.5 ); pragma(msg, floord);
|
|
enum floorr = floor(5.5L); pragma(msg, floorr);
|
|
|
|
pragma(msg, "ceil()");
|
|
enum ceilf = ceil(5.5f); pragma(msg, ceilf);
|
|
enum ceild = ceil(5.5 ); pragma(msg, ceild);
|
|
enum ceilr = ceil(5.5L); pragma(msg, ceilr);
|
|
|
|
pragma(msg, "trunc()");
|
|
enum truncf = trunc(5.5f); //pragma(msg, truncf);
|
|
enum truncd = trunc(5.5 ); //pragma(msg, truncd);
|
|
enum truncr = trunc(5.5L); pragma(msg, truncr);
|
|
|
|
pragma(msg, "exp()");
|
|
enum expf = exp(5.5f); //pragma(msg, expf);
|
|
enum expd = exp(5.5 ); //pragma(msg, expd);
|
|
enum expr = exp(5.5L); pragma(msg, expr);
|
|
|
|
pragma(msg, "expm1()");
|
|
enum expm1f = expm1(5.5f); //pragma(msg, expm1f);
|
|
enum expm1d = expm1(5.5 ); //pragma(msg, expm1d);
|
|
enum expm1r = expm1(5.5L); pragma(msg, expm1r);
|
|
|
|
pragma(msg, "exp2()");
|
|
enum exp2f = exp2(5.5f); //pragma(msg, exp2f);
|
|
enum exp2d = exp2(5.5 ); //pragma(msg, exp2d);
|
|
enum exp2r = exp2(5.5L); pragma(msg, exp2r);
|
|
|
|
|
|
|
|
pragma(msg, "fmin()");
|
|
enum fminf = fmin(-3.2f, 5.2f); //pragma(msg, fminf);
|
|
enum fmind = fmin(-3.2 , 5.2 ); //pragma(msg, fmind);
|
|
enum fminr = fmin(-3.2L, 5.2L); pragma(msg, fminr);
|
|
|
|
pragma(msg, "fmax()");
|
|
enum fmaxf = fmax(-3.2f, 5.2f); //pragma(msg, fmaxf);
|
|
enum fmaxd = fmax(-3.2 , 5.2 ); //pragma(msg, fmaxd);
|
|
enum fmaxr = fmax(-3.2L, 5.2L); pragma(msg, fmaxr);
|
|
|
|
pragma(msg, "copysign()");
|
|
enum csf = copysign(2.5f, -3.0f); pragma(msg, csf); static assert(csf == -2.5);
|
|
enum csd = copysign(2.5 , -3.0 ); pragma(msg, csd); static assert(csd == -2.5);
|
|
enum csr = copysign(2.5L, -3.0L); pragma(msg, csr); static assert(csr == -2.5);
|
|
|
|
pragma(msg, "pow()");
|
|
enum powf = pow(2.5f, 2.5f); pragma(msg, powf);
|
|
enum powd = pow(2.5 , 2.5 ); pragma(msg, powd);
|
|
enum powr = pow(2.5L, 2.5L); pragma(msg, powr);
|
|
enum powctfe = 2.5 ^^ 2.5; pragma(msg, powctfe);
|
|
|
|
|
|
pragma(msg, "fma()");
|
|
enum fmaf = fma(-3.2f, 5.2f, 3.8f); //pragma(msg, fmaf);
|
|
enum fmad = fma(-3.2 , 5.2 , 3.8 ); //pragma(msg, fmad);
|
|
enum fmar = fma(-3.2L, 5.2L, 3.8L); pragma(msg, fmar);
|