Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision 73acad1fa2634cb4ec77d8c98bdcd1a8b9c031ed authored by Giampaolo Rodolà on 10 February 2011, 18:42:36 UTC, committed by Giampaolo Rodolà on 10 February 2011, 18:42:36 UTC
1 parent 1fbd8e1
Tip revision: 73acad1fa2634cb4ec77d8c98bdcd1a8b9c031ed authored by Giampaolo Rodolà on 10 February 2011, 18:42:36 UTC
get rid of asyncore.dispatcher's debug attribute, which is no longer used (assuming it ever was).
get rid of asyncore.dispatcher's debug attribute, which is no longer used (assuming it ever was).
Tip revision: 73acad1
pymath.c
#include "Python.h"
#ifdef X87_DOUBLE_ROUNDING
/* On x86 platforms using an x87 FPU, this function is called from the
Py_FORCE_DOUBLE macro (defined in pymath.h) to force a floating-point
number out of an 80-bit x87 FPU register and into a 64-bit memory location,
thus rounding from extended precision to double precision. */
double _Py_force_double(double x)
{
volatile double y;
y = x;
return y;
}
#endif
#ifdef HAVE_GCC_ASM_FOR_X87
/* inline assembly for getting and setting the 387 FPU control word on
gcc/x86 */
unsigned short _Py_get_387controlword(void) {
unsigned short cw;
__asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
return cw;
}
void _Py_set_387controlword(unsigned short cw) {
__asm__ __volatile__ ("fldcw %0" : : "m" (cw));
}
#endif
#ifndef HAVE_HYPOT
double hypot(double x, double y)
{
double yx;
x = fabs(x);
y = fabs(y);
if (x < y) {
double temp = x;
x = y;
y = temp;
}
if (x == 0.)
return 0.;
else {
yx = y/x;
return x*sqrt(1.+yx*yx);
}
}
#endif /* HAVE_HYPOT */
#ifndef HAVE_COPYSIGN
double
copysign(double x, double y)
{
/* use atan2 to distinguish -0. from 0. */
if (y > 0. || (y == 0. && atan2(y, -1.) > 0.)) {
return fabs(x);
} else {
return -fabs(x);
}
}
#endif /* HAVE_COPYSIGN */
#ifndef HAVE_ROUND
double
round(double x)
{
double absx, y;
absx = fabs(x);
y = floor(absx);
if (absx - y >= 0.5)
y += 1.0;
return copysign(y, x);
}
#endif /* HAVE_ROUND */
Computing file changes ...