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

2 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -0,0 +1 @@

1+

Resolve potential name clash with libm's sinpi(). Patch by Dmitrii Pasechnik.

Original file line numberDiff line numberDiff line change

@@ -100,7 +100,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798;

100100

}

101101
102102

static double

103-

sinpi(double x)

103+

m_sinpi(double x)

104104

{

105105

double y, r;

106106

int n;

@@ -328,7 +328,7 @@ m_tgamma(double x)

328328

integer. */

329329

if (absx > 200.0) {

330330

if (x < 0.0) {

331-

return 0.0/sinpi(x);

331+

return 0.0/m_sinpi(x);

332332

}

333333

else {

334334

errno = ERANGE;

@@ -352,7 +352,7 @@ m_tgamma(double x)

352352

}

353353

z = z * lanczos_g / y;

354354

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);

356356

r -= z * r;

357357

if (absx < 140.0) {

358358

r /= pow(y, absx - 0.5);

@@ -423,7 +423,7 @@ m_lgamma(double x)

423423

r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1);

424424

if (x < 0.0)

425425

/* 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;

427427

if (Py_IS_INFINITY(r))

428428

errno = ERANGE;

429429

return r;