summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/internal/floatscan.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/internal/floatscan.c b/src/internal/floatscan.c
index f6e331d4..eef70df9 100644
--- a/src/internal/floatscan.c
+++ b/src/internal/floatscan.c
@@ -15,12 +15,20 @@
#define LD_B1B_MAX 9007199, 254740991
#define KMAX 128
-#else /* LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 */
+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
#define LD_B1B_DIG 3
#define LD_B1B_MAX 18, 446744073, 709551615
#define KMAX 2048
+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
+
+#define LD_B1B_DIG 4
+#define LD_B1B_MAX 10384593, 717069655, 257060992, 658440191
+#define KMAX 2048
+
+#else
+#error Unsupported long double representation
#endif
#define MASK (KMAX-1)