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