bpo-36106: Resolve sinpi name clash with libm (IEEE-754 violation). (… · python/cpython@f57cd82 (original) (raw)

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1 +Resolve potential name clash with libm's sinpi(). Patch by Dmitrii Pasechnik.
Original file line number Diff line number Diff line change
@@ -100,7 +100,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798;
100 100 }
101 101
102 102 static double
103 -sinpi(double x)
103 +m_sinpi(double x)
104 104 {
105 105 double y, r;
106 106 int n;
@@ -328,7 +328,7 @@ m_tgamma(double x)
328 328 integer. */
329 329 if (absx > 200.0) {
330 330 if (x < 0.0) {
331 -return 0.0/sinpi(x);
331 +return 0.0/m_sinpi(x);
332 332 }
333 333 else {
334 334 errno = ERANGE;
@@ -352,7 +352,7 @@ m_tgamma(double x)
352 352 }
353 353 z = z * lanczos_g / y;
354 354 if (x < 0.0) {
355 -r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
355 +r = -pi / m_sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
356 356 r -= z * r;
357 357 if (absx < 140.0) {
358 358 r /= pow(y, absx - 0.5);
@@ -423,7 +423,7 @@ m_lgamma(double x)
423 423 r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1);
424 424 if (x < 0.0)
425 425 /* Use reflection formula to get value for negative x. */
426 -r = logpi - log(fabs(sinpi(absx))) - log(absx) - r;
426 +r = logpi - log(fabs(m_sinpi(absx))) - log(absx) - r;
427 427 if (Py_IS_INFINITY(r))
428 428 errno = ERANGE;
429 429 return r;