@@ -68,7 +68,7 @@ namespace {
68
68
// > P;
69
69
// Error bounds:
70
70
// | output - (10^dx - 1) / dx | < 2^-52.
71
- LIBC_INLINE static constexpr double poly_approx_d (double dx) {
71
+ LIBC_INLINE static double poly_approx_d (double dx) {
72
72
// dx^2
73
73
double dx2 = dx * dx;
74
74
double c0 =
@@ -128,7 +128,7 @@ static constexpr Float128 poly_approx_f128(const Float128 &dx) {
128
128
// Compute 10^(x) using 128-bit precision.
129
129
// TODO(lntue): investigate triple-double precision implementation for this
130
130
// step.
131
- static constexpr Float128 exp10_f128 (double x, double kd, int idx1, int idx2) {
131
+ static Float128 exp10_f128 (double x, double kd, int idx1, int idx2) {
132
132
double t1 = fputil::multiply_add (kd, MLOG10_2_EXP2_M12_HI, x); // exact
133
133
double t2 = kd * MLOG10_2_EXP2_M12_MID_32; // exact
134
134
double t3 = kd * MLOG10_2_EXP2_M12_LO; // Error < 2^-144
@@ -159,7 +159,7 @@ static constexpr Float128 exp10_f128(double x, double kd, int idx1, int idx2) {
159
159
}
160
160
161
161
// Compute 10^x with double-double precision.
162
- static constexpr DoubleDouble exp10_double_double (double x, double kd,
162
+ static DoubleDouble exp10_double_double (double x, double kd,
163
163
const DoubleDouble &exp_mid) {
164
164
// Recalculate dx:
165
165
// dx = x - k * 2^-12 * log10(2)
@@ -182,7 +182,7 @@ static constexpr DoubleDouble exp10_double_double(double x, double kd,
182
182
#endif // LIBC_MATH_HAS_SKIP_ACCURATE_PASS
183
183
184
184
// When output is denormal.
185
- static constexpr double exp10_denorm (double x) {
185
+ static double exp10_denorm (double x) {
186
186
// Range reduction.
187
187
double tmp = fputil::multiply_add (x, LOG2_10, 0x1.8000'0000' 4p21);
188
188
int k = static_cast <int >(cpp::bit_cast<uint64_t >(tmp) >> 19 );
0 commit comments