1 /*
2 REQUIRED_ARGS:
3 PERMUTE_ARGS:
4 TEST_OUTPUT:
5 ---
6 log()
7 1.70475L
8 log2()
9 2.45943L
10 log10()
11 0.740363L
12 round()
13 6.00000L
14 floor()
15 5.00000F
16 5.00000
17 5.00000L
18 ceil()
19 6.00000F
20 6.00000
21 6.00000L
22 trunc()
23 5.00000L
24 expm1()
25 243.692L
26 exp2()
27 45.2548L
28 fmin()
29 -3.2L
30 fmax()
31 5.2L
32 copysign()
33 -2.5F
34 -2.5
35 -2.5L
36 pow()
37 9.88212F
38 9.88212
39 9.88212L
40 9.88212
41 fma()
42 -12.84L
43 ---
44 */
45 
46 // https://issues.dlang.org/show_bug.cgi?id=5227
47 
48 import std.math;
49 
50 pragma(msg, "log()");
51 enum logf = log(5.5f); //pragma(msg, logf);
52 enum logd = log(5.5 ); //pragma(msg, logd);
53 enum logr = log(5.5L); pragma(msg, logr);
54 
55 pragma(msg, "log2()");
56 enum log2f = log2(5.5f); //pragma(msg, log2f);
57 enum log2d = log2(5.5 ); //pragma(msg, log2d);
58 enum log2r = log2(5.5L); pragma(msg, log2r);
59 
60 pragma(msg, "log10()");
61 enum log10f = log10(5.5f); //pragma(msg, log10f);
62 enum log10d = log10(5.5 ); //pragma(msg, log10d);
63 enum log10r = log10(5.5L); pragma(msg, log10r);
64 
65 pragma(msg, "round()");
66 enum roundf = round(5.5f); //pragma(msg, roundf);
67 enum roundd = round(5.5 ); //pragma(msg, roundd);
68 enum roundr = round(5.5L); pragma(msg, roundr);
69 
70 pragma(msg, "floor()");
71 enum floorf = floor(5.5f); pragma(msg, floorf);
72 enum floord = floor(5.5 ); pragma(msg, floord);
73 enum floorr = floor(5.5L); pragma(msg, floorr);
74 
75 pragma(msg, "ceil()");
76 enum ceilf = ceil(5.5f); pragma(msg, ceilf);
77 enum ceild = ceil(5.5 ); pragma(msg, ceild);
78 enum ceilr = ceil(5.5L); pragma(msg, ceilr);
79 
80 pragma(msg, "trunc()");
81 enum truncf = trunc(5.5f); //pragma(msg, truncf);
82 enum truncd = trunc(5.5 ); //pragma(msg, truncd);
83 enum truncr = trunc(5.5L); pragma(msg, truncr);
84 
85 pragma(msg, "expm1()");
86 enum expm1f = expm1(5.5f); //pragma(msg, expm1f);
87 enum expm1d = expm1(5.5 ); //pragma(msg, expm1d);
88 enum expm1r = expm1(5.5L); pragma(msg, expm1r);
89 
90 pragma(msg, "exp2()");
91 enum exp2f = exp2(5.5f); //pragma(msg, exp2f);
92 enum exp2d = exp2(5.5 ); //pragma(msg, exp2d);
93 enum exp2r = exp2(5.5L); pragma(msg, exp2r);
94 
95 
96 
97 pragma(msg, "fmin()");
98 enum fminf = fmin(-3.2f, 5.2f); //pragma(msg, fminf);
99 enum fmind = fmin(-3.2 , 5.2 ); //pragma(msg, fmind);
100 enum fminr = fmin(-3.2L, 5.2L); pragma(msg, fminr);
101 
102 pragma(msg, "fmax()");
103 enum fmaxf = fmax(-3.2f, 5.2f); //pragma(msg, fmaxf);
104 enum fmaxd = fmax(-3.2 , 5.2 ); //pragma(msg, fmaxd);
105 enum fmaxr = fmax(-3.2L, 5.2L); pragma(msg, fmaxr);
106 
107 pragma(msg, "copysign()");
108 enum csf = copysign(2.5f, -3.0f); pragma(msg, csf); static assert(csf == -2.5);
109 enum csd = copysign(2.5 , -3.0 ); pragma(msg, csd); static assert(csd == -2.5);
110 enum csr = copysign(2.5L, -3.0L); pragma(msg, csr); static assert(csr == -2.5);
111 
112 pragma(msg, "pow()");
113 enum powf = pow(2.5f, 2.5f); pragma(msg, powf);
114 enum powd = pow(2.5 , 2.5 ); pragma(msg, powd);
115 enum powr = pow(2.5L, 2.5L); pragma(msg, powr);
116 enum powctfe = 2.5 ^^ 2.5; pragma(msg, powctfe);
117 
118 
119 pragma(msg, "fma()");
120 enum fmaf = fma(-3.2f, 5.2f, 3.8f); //pragma(msg, fmaf);
121 enum fmad = fma(-3.2 , 5.2 , 3.8 ); //pragma(msg, fmad);
122 enum fmar = fma(-3.2L, 5.2L, 3.8L); pragma(msg, fmar);
123 
124 
125