@@ -35,7 +35,7 @@ namespace {
35
35
// > P = fpminimax(x^(-2/3), 7, [|D...|], [1, 2]);
36
36
// > dirtyinfnorm(P/x^(-2/3) - 1, [1, 2]);
37
37
// 0x1.28...p-21
38
- constexpr double intial_approximation (double x) {
38
+ double intial_approximation (double x) {
39
39
constexpr double COEFFS[8 ] = {
40
40
0x1 .bc52aedead5c6p1 , -0x1 .b52bfebf110b3p2 , 0x1 .1d8d71d53d126p3,
41
41
-0x1 .de2db9e81cf87p2 , 0x1 .0154ca06153bdp2, -0x1 .5973c66ee6da7p0,
@@ -59,12 +59,12 @@ constexpr double intial_approximation(double x) {
59
59
// Get the error term for Newton iteration:
60
60
// h(x) = x^3 * a^2 - 1,
61
61
#ifdef LIBC_TARGET_CPU_HAS_FMA
62
- constexpr double get_error (const DoubleDouble &x_3, const DoubleDouble &a_sq) {
62
+ double get_error (const DoubleDouble &x_3, const DoubleDouble &a_sq) {
63
63
return fputil::multiply_add (x_3.hi , a_sq.hi , -1.0 ) +
64
64
fputil::multiply_add (x_3.lo , a_sq.hi , x_3.hi * a_sq.lo );
65
65
}
66
66
#else
67
- constexpr double get_error (const DoubleDouble &x_3, const DoubleDouble &a_sq) {
67
+ double get_error (const DoubleDouble &x_3, const DoubleDouble &a_sq) {
68
68
DoubleDouble x_3_a_sq = fputil::quick_mult (a_sq, x_3);
69
69
return (x_3_a_sq.hi - 1.0 ) + x_3_a_sq.lo ;
70
70
}
0 commit comments