| Index: src/third_party/fdlibm/fdlibm.cc
|
| diff --git a/src/third_party/fdlibm/fdlibm.cc b/src/third_party/fdlibm/fdlibm.cc
|
| index 90099f141b46ef1de4da7c4df4c9b87deb4da781..b8bc243f4df74e61fec5330d34c2cfc592ddcbb3 100644
|
| --- a/src/third_party/fdlibm/fdlibm.cc
|
| +++ b/src/third_party/fdlibm/fdlibm.cc
|
| @@ -126,7 +126,7 @@ static const double PIo2[] = {
|
| };
|
|
|
|
|
| -int __kernel_rem_pio2(double* x, double* y, int e0, int nx) {
|
| +INLINE(int __kernel_rem_pio2(double* x, double* y, int e0, int nx)) {
|
| static const int32_t jk = 3;
|
| double fw;
|
| int32_t jx = nx - 1;
|
| @@ -135,12 +135,12 @@ int __kernel_rem_pio2(double* x, double* y, int e0, int nx) {
|
| int32_t q0 = e0 - 24 * (jv + 1);
|
| int32_t m = jx + jk;
|
|
|
| - double f[10];
|
| + double f[20];
|
| for (int i = 0, j = jv - jx; i <= m; i++, j++) {
|
| f[i] = (j < 0) ? zero : static_cast<double>(two_over_pi[j]);
|
| }
|
|
|
| - double q[10];
|
| + double q[20];
|
| for (int i = 0; i <= jk; i++) {
|
| fw = 0.0;
|
| for (int j = 0; j <= jx; j++) fw += x[j] * f[jx + i - j];
|
| @@ -151,7 +151,7 @@ int __kernel_rem_pio2(double* x, double* y, int e0, int nx) {
|
|
|
| recompute:
|
|
|
| - int32_t iq[10];
|
| + int32_t iq[20];
|
| double z = q[jz];
|
| for (int i = 0, j = jz; j > 0; i++, j--) {
|
| fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
|
| @@ -242,7 +242,7 @@ recompute:
|
| fw *= twon24;
|
| }
|
|
|
| - double fq[10];
|
| + double fq[20];
|
| for (int i = jz; i >= 0; i--) {
|
| fw = 0.0;
|
| for (int k = 0; k <= jk && k <= jz - i; k++) fw += PIo2[k] * q[i + k];
|
|
|