summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/npymath/npy_math_private.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/numpy/core/src/npymath/npy_math_private.h b/numpy/core/src/npymath/npy_math_private.h
index 2f99101fc..722d03f94 100644
--- a/numpy/core/src/npymath/npy_math_private.h
+++ b/numpy/core/src/npymath/npy_math_private.h
@@ -361,6 +361,41 @@ do { \
typedef npy_uint64 ldouble_man_t;
typedef npy_uint64 ldouble_exp_t;
typedef npy_uint32 ldouble_sign_t;
+#elif defined(HAVE_LDOUBLE_IEEE_QUAD_LE)
+ /*
+ * IEEE quad precision, Little Endian. Bit representation is
+ * | s |eeeeeeeeeee|mmmmmmmm................mmmmmmm|
+ * |1 bit| 15 bits | 112 bits |
+ * | a[1] | a[0] |
+ */
+ typedef npy_uint64 IEEEl2bitsrep_part;
+
+ union IEEEl2bitsrep {
+ npy_longdouble e;
+ IEEEl2bitsrep_part a[2];
+ };
+
+ #define LDBL_MANL_INDEX 0
+ #define LDBL_MANL_MASK 0xFFFFFFFFFFFFFFFF
+ #define LDBL_MANL_SHIFT 0
+
+ #define LDBL_MANH_INDEX 1
+ #define LDBL_MANH_MASK 0x0000FFFFFFFFFFFF
+ #define LDBL_MANH_SHIFT 0
+
+ #define LDBL_EXP_INDEX 1
+ #define LDBL_EXP_MASK 0x7FFF000000000000
+ #define LDBL_EXP_SHIFT 48
+
+ #define LDBL_SIGN_INDEX 1
+ #define LDBL_SIGN_MASK 0x8000000000000000
+ #define LDBL_SIGN_SHIFT 63
+
+ #define LDBL_NBIT 0
+
+ typedef npy_uint64 ldouble_man_t;
+ typedef npy_uint64 ldouble_exp_t;
+ typedef npy_uint32 ldouble_sign_t;
#endif
#ifndef HAVE_LDOUBLE_DOUBLE_DOUBLE_BE