Skip to content

Commit 438e9fc

Browse files
authored
bpo-41513: Improve order of adding fractional values. Improve variable names. (GH-22368)
1 parent d986d16 commit 438e9fc

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Modules/mathmodule.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -2502,8 +2502,8 @@ exactly equal) was verified for 1 billion random inputs with n=5. [7]
25022502
static inline double
25032503
vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
25042504
{
2505-
const double T27 = 134217729.0; /* ldexp(1.0, 27)+1.0) */
2506-
double x, csum = 1.0, oldcsum, scale, frac=0.0, frac_mid=0.0, frac_lo=0.0;
2505+
const double T27 = 134217729.0; /* ldexp(1.0, 27) + 1.0) */
2506+
double x, scale, oldcsum, csum = 1.0, frac1 = 0.0, frac2 = 0.0, frac3 = 0.0;
25072507
double t, hi, lo, h;
25082508
int max_e;
25092509
Py_ssize_t i;
@@ -2539,18 +2539,18 @@ vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
25392539
assert(fabs(csum) >= fabs(x));
25402540
oldcsum = csum;
25412541
csum += x;
2542-
frac += (oldcsum - csum) + x;
2542+
frac1 += (oldcsum - csum) + x;
25432543

25442544
x = 2.0 * hi * lo;
25452545
assert(fabs(csum) >= fabs(x));
25462546
oldcsum = csum;
25472547
csum += x;
2548-
frac_mid += (oldcsum - csum) + x;
2548+
frac2 += (oldcsum - csum) + x;
25492549

25502550
assert(csum + lo * lo == csum);
2551-
frac_lo += lo * lo;
2551+
frac3 += lo * lo;
25522552
}
2553-
h = sqrt(csum - 1.0 + (frac_lo + frac_mid + frac));
2553+
h = sqrt(csum - 1.0 + (frac1 + frac2 + frac3));
25542554

25552555
x = h;
25562556
t = x * T27;
@@ -2562,21 +2562,21 @@ vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
25622562
assert(fabs(csum) >= fabs(x));
25632563
oldcsum = csum;
25642564
csum += x;
2565-
frac += (oldcsum - csum) + x;
2565+
frac1 += (oldcsum - csum) + x;
25662566

25672567
x = -2.0 * hi * lo;
25682568
assert(fabs(csum) >= fabs(x));
25692569
oldcsum = csum;
25702570
csum += x;
2571-
frac_mid += (oldcsum - csum) + x;
2571+
frac2 += (oldcsum - csum) + x;
25722572

25732573
x = -lo * lo;
25742574
assert(fabs(csum) >= fabs(x));
25752575
oldcsum = csum;
25762576
csum += x;
2577-
frac_lo += (oldcsum - csum) + x;
2577+
frac3 += (oldcsum - csum) + x;
25782578

2579-
x = csum - 1.0 + (frac_lo + frac_mid + frac);
2579+
x = csum - 1.0 + (frac1 + frac2 + frac3);
25802580
return (h + x / (2.0 * h)) / scale;
25812581
}
25822582
/* When max_e < -1023, ldexp(1.0, -max_e) overflows.
@@ -2591,9 +2591,9 @@ vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
25912591
assert(fabs(csum) >= fabs(x));
25922592
oldcsum = csum;
25932593
csum += x;
2594-
frac += (oldcsum - csum) + x;
2594+
frac1 += (oldcsum - csum) + x;
25952595
}
2596-
return max * sqrt(csum - 1.0 + frac);
2596+
return max * sqrt(csum - 1.0 + frac1);
25972597
}
25982598

25992599
#define NUM_STACK_ELEMS 16

0 commit comments

Comments
 (0)