Added a new macro, Py_IS_FINITE(X). On windows there is an intrinsic for this and it is more efficient than to use !Py_IS_INFINITE(X) && !Py_IS_NAN(X). No change on other platforms

This commit is contained in:
Kristján Valur Jónsson 2006-05-25 15:53:30 +00:00
parent 4b4e33ef14
commit f94323fbb4
3 changed files with 12 additions and 5 deletions

View file

@ -295,6 +295,15 @@ extern "C" {
#define Py_IS_INFINITY(X) ((X) && (X)*0.5 == (X))
#endif
/* Py_IS_INFINITY(X)
* Return 1 if float or double arg is an infinity, else 0.
* This some archicetcures (windows) have intrisics for this, so a special
* macro for this particular test is useful
*/
#ifndef Py_IS_FINITE
#define Py_IS_FINITE(X) (!Py_IS_INFINITY(X) && !Py_IS_NAN(X))
#endif
/* HUGE_VAL is supposed to expand to a positive double infinity. Python
* uses Py_HUGE_VAL instead because some platforms are broken in this
* respect. We used to embed code in pyport.h to try to worm around that,