}
for (i=0 ; i<n ; i++) {
item = PyTuple_GET_ITEM(p, i);
- px = PyFloat_AsDouble(item);
- if (px == -1.0 && PyErr_Occurred()) {
- goto error_exit;
+ if (PyFloat_CheckExact(item)) {
+ px = PyFloat_AS_DOUBLE(item);
+ } else {
+ px = PyFloat_AsDouble(item);
+ if (px == -1.0 && PyErr_Occurred()) {
+ goto error_exit;
+ }
}
item = PyTuple_GET_ITEM(q, i);
- qx = PyFloat_AsDouble(item);
- if (qx == -1.0 && PyErr_Occurred()) {
- goto error_exit;
+ if (PyFloat_CheckExact(item)) {
+ qx = PyFloat_AS_DOUBLE(item);
+ } else {
+ qx = PyFloat_AsDouble(item);
+ if (qx == -1.0 && PyErr_Occurred()) {
+ goto error_exit;
+ }
}
x = fabs(px - qx);
diffs[i] = x;
}
for (i=0 ; i<n ; i++) {
item = PyTuple_GET_ITEM(args, i);
- x = PyFloat_AsDouble(item);
- if (x == -1.0 && PyErr_Occurred()) {
- goto error_exit;
+ if (PyFloat_CheckExact(item)) {
+ x = PyFloat_AS_DOUBLE(item);
+ } else {
+ x = PyFloat_AsDouble(item);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto error_exit;
+ }
}
x = fabs(x);
coordinates[i] = x;