| 249 | /* Setup the umath part of the module */ |
| 250 | |
| 251 | int initumath(PyObject *m) |
| 252 | { |
| 253 | PyObject *d, *s, *s2; |
| 254 | int UFUNC_FLOATING_POINT_SUPPORT = 1; |
| 255 | |
| 256 | #ifdef NO_UFUNC_FLOATING_POINT_SUPPORT |
| 257 | UFUNC_FLOATING_POINT_SUPPORT = 0; |
| 258 | #endif |
| 259 | |
| 260 | /* Add some symbolic constants to the module */ |
| 261 | d = PyModule_GetDict(m); |
| 262 | |
| 263 | if (InitOperators(d) < 0) { |
| 264 | return -1; |
| 265 | } |
| 266 | |
| 267 | PyDict_SetItemString(d, "pi", s = PyFloat_FromDouble(NPY_PI)); |
| 268 | Py_DECREF(s); |
| 269 | PyDict_SetItemString(d, "e", s = PyFloat_FromDouble(NPY_E)); |
| 270 | Py_DECREF(s); |
| 271 | PyDict_SetItemString(d, "euler_gamma", s = PyFloat_FromDouble(NPY_EULER)); |
| 272 | Py_DECREF(s); |
| 273 | |
| 274 | #define ADDCONST(str) PyModule_AddIntConstant(m, #str, UFUNC_##str) |
| 275 | #define ADDSCONST(str) PyModule_AddStringConstant(m, "UFUNC_" #str, UFUNC_##str) |
| 276 | |
| 277 | ADDCONST(ERR_IGNORE); |
| 278 | ADDCONST(ERR_WARN); |
| 279 | ADDCONST(ERR_CALL); |
| 280 | ADDCONST(ERR_RAISE); |
| 281 | ADDCONST(ERR_PRINT); |
| 282 | ADDCONST(ERR_LOG); |
| 283 | ADDCONST(ERR_DEFAULT); |
| 284 | |
| 285 | ADDCONST(SHIFT_DIVIDEBYZERO); |
| 286 | ADDCONST(SHIFT_OVERFLOW); |
| 287 | ADDCONST(SHIFT_UNDERFLOW); |
| 288 | ADDCONST(SHIFT_INVALID); |
| 289 | |
| 290 | ADDCONST(FPE_DIVIDEBYZERO); |
| 291 | ADDCONST(FPE_OVERFLOW); |
| 292 | ADDCONST(FPE_UNDERFLOW); |
| 293 | ADDCONST(FPE_INVALID); |
| 294 | |
| 295 | ADDCONST(FLOATING_POINT_SUPPORT); |
| 296 | |
| 297 | ADDSCONST(PYVALS_NAME); |
| 298 | |
| 299 | #undef ADDCONST |
| 300 | #undef ADDSCONST |
| 301 | PyModule_AddIntConstant(m, "UFUNC_BUFSIZE_DEFAULT", (long)NPY_BUFSIZE); |
| 302 | |
| 303 | PyModule_AddObject(m, "PINF", PyFloat_FromDouble(NPY_INFINITY)); |
| 304 | PyModule_AddObject(m, "NINF", PyFloat_FromDouble(-NPY_INFINITY)); |
| 305 | PyModule_AddObject(m, "PZERO", PyFloat_FromDouble(NPY_PZERO)); |
| 306 | PyModule_AddObject(m, "NZERO", PyFloat_FromDouble(NPY_NZERO)); |
| 307 | PyModule_AddObject(m, "NAN", PyFloat_FromDouble(NPY_NAN)); |
| 308 |
no test coverage detected