diff options
Diffstat (limited to 'numpy/numarray/numpy/ieeespecial.h')
-rw-r--r-- | numpy/numarray/numpy/ieeespecial.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/numpy/numarray/numpy/ieeespecial.h b/numpy/numarray/numpy/ieeespecial.h new file mode 100644 index 000000000..0f3fff2a9 --- /dev/null +++ b/numpy/numarray/numpy/ieeespecial.h @@ -0,0 +1,124 @@ +/* 32-bit special value ranges */ + +#if defined(_MSC_VER) +#define MKINT(x) (x##UL) +#define MKINT64(x) (x##Ui64) +#define BIT(x) (1Ui64 << (x)) +#else +#define MKINT(x) (x##U) +#define MKINT64(x) (x##ULL) +#define BIT(x) (1ULL << (x)) +#endif + + +#define NEG_QUIET_NAN_MIN32 MKINT(0xFFC00001) +#define NEG_QUIET_NAN_MAX32 MKINT(0xFFFFFFFF) + +#define INDETERMINATE_MIN32 MKINT(0xFFC00000) +#define INDETERMINATE_MAX32 MKINT(0xFFC00000) + +#define NEG_SIGNAL_NAN_MIN32 MKINT(0xFF800001) +#define NEG_SIGNAL_NAN_MAX32 MKINT(0xFFBFFFFF) + +#define NEG_INFINITY_MIN32 MKINT(0xFF800000) + +#define NEG_NORMALIZED_MIN32 MKINT(0x80800000) +#define NEG_NORMALIZED_MAX32 MKINT(0xFF7FFFFF) + +#define NEG_DENORMALIZED_MIN32 MKINT(0x80000001) +#define NEG_DENORMALIZED_MAX32 MKINT(0x807FFFFF) + +#define NEG_ZERO_MIN32 MKINT(0x80000000) +#define NEG_ZERO_MAX32 MKINT(0x80000000) + +#define POS_ZERO_MIN32 MKINT(0x00000000) +#define POS_ZERO_MAX32 MKINT(0x00000000) + +#define POS_DENORMALIZED_MIN32 MKINT(0x00000001) +#define POS_DENORMALIZED_MAX32 MKINT(0x007FFFFF) + +#define POS_NORMALIZED_MIN32 MKINT(0x00800000) +#define POS_NORMALIZED_MAX32 MKINT(0x7F7FFFFF) + +#define POS_INFINITY_MIN32 MKINT(0x7F800000) +#define POS_INFINITY_MAX32 MKINT(0x7F800000) + +#define POS_SIGNAL_NAN_MIN32 MKINT(0x7F800001) +#define POS_SIGNAL_NAN_MAX32 MKINT(0x7FBFFFFF) + +#define POS_QUIET_NAN_MIN32 MKINT(0x7FC00000) +#define POS_QUIET_NAN_MAX32 MKINT(0x7FFFFFFF) + +/* 64-bit special value ranges */ + +#define NEG_QUIET_NAN_MIN64 MKINT64(0xFFF8000000000001) +#define NEG_QUIET_NAN_MAX64 MKINT64(0xFFFFFFFFFFFFFFFF) + +#define INDETERMINATE_MIN64 MKINT64(0xFFF8000000000000) +#define INDETERMINATE_MAX64 MKINT64(0xFFF8000000000000) + +#define NEG_SIGNAL_NAN_MIN64 MKINT64(0xFFF7FFFFFFFFFFFF) +#define NEG_SIGNAL_NAN_MAX64 MKINT64(0xFFF0000000000001) + +#define NEG_INFINITY_MIN64 MKINT64(0xFFF0000000000000) + +#define NEG_NORMALIZED_MIN64 MKINT64(0xFFEFFFFFFFFFFFFF) +#define NEG_NORMALIZED_MAX64 MKINT64(0x8010000000000000) + +#define NEG_DENORMALIZED_MIN64 MKINT64(0x800FFFFFFFFFFFFF) +#define NEG_DENORMALIZED_MAX64 MKINT64(0x8000000000000001) + +#define NEG_ZERO_MIN64 MKINT64(0x8000000000000000) +#define NEG_ZERO_MAX64 MKINT64(0x8000000000000000) + +#define POS_ZERO_MIN64 MKINT64(0x0000000000000000) +#define POS_ZERO_MAX64 MKINT64(0x0000000000000000) + +#define POS_DENORMALIZED_MIN64 MKINT64(0x0000000000000001) +#define POS_DENORMALIZED_MAX64 MKINT64(0x000FFFFFFFFFFFFF) + +#define POS_NORMALIZED_MIN64 MKINT64(0x0010000000000000) +#define POS_NORMALIZED_MAX64 MKINT64(0x7FEFFFFFFFFFFFFF) + +#define POS_INFINITY_MIN64 MKINT64(0x7FF0000000000000) +#define POS_INFINITY_MAX64 MKINT64(0x7FF0000000000000) + +#define POS_SIGNAL_NAN_MIN64 MKINT64(0x7FF0000000000001) +#define POS_SIGNAL_NAN_MAX64 MKINT64(0x7FF7FFFFFFFFFFFF) + +#define POS_QUIET_NAN_MIN64 MKINT64(0x7FF8000000000000) +#define POS_QUIET_NAN_MAX64 MKINT64(0x7FFFFFFFFFFFFFFF) + +typedef enum +{ + POS_QNAN_BIT, + NEG_QNAN_BIT, + POS_SNAN_BIT, + NEG_SNAN_BIT, + POS_INF_BIT, + NEG_INF_BIT, + POS_DEN_BIT, + NEG_DEN_BIT, + POS_NOR_BIT, + NEG_NOR_BIT, + POS_ZERO_BIT, + NEG_ZERO_BIT, + INDETERM_BIT, + BUG_BIT +} ieee_selects; + +#define MSK_POS_QNAN BIT(POS_QNAN_BIT) +#define MSK_POS_SNAN BIT(POS_SNAN_BIT) +#define MSK_POS_INF BIT(POS_INF_BIT) +#define MSK_POS_DEN BIT(POS_DEN_BIT) +#define MSK_POS_NOR BIT(POS_NOR_BIT) +#define MSK_POS_ZERO BIT(POS_ZERO_BIT) +#define MSK_NEG_QNAN BIT(NEG_QNAN_BIT) +#define MSK_NEG_SNAN BIT(NEG_SNAN_BIT) +#define MSK_NEG_INF BIT(NEG_INF_BIT) +#define MSK_NEG_DEN BIT(NEG_DEN_BIT) +#define MSK_NEG_NOR BIT(NEG_NOR_BIT) +#define MSK_NEG_ZERO BIT(NEG_ZERO_BIT) +#define MSK_INDETERM BIT(INDETERM_BIT) +#define MSK_BUG BIT(BUG_BIT) + |