diff --git a/arb_hypgeom/ci.c b/arb_hypgeom/ci.c
index 522b6fb2..11381e91 100644
--- a/arb_hypgeom/ci.c
+++ b/arb_hypgeom/ci.c
@@ -9,6 +9,7 @@
(at your option) any later version. See .
*/
+#include "flint/double_extras.h"
#include "arb_hypgeom.h"
#define LOG2 0.69314718055994531
diff --git a/arb_hypgeom/erf.c b/arb_hypgeom/erf.c
index 2f7ad2a6..15dfd9d8 100644
--- a/arb_hypgeom/erf.c
+++ b/arb_hypgeom/erf.c
@@ -9,6 +9,7 @@
(at your option) any later version. See .
*/
+#include "flint/double_extras.h"
#include "arb_hypgeom.h"
#define LOG2 0.69314718055994530942
diff --git a/arb_hypgeom/gamma_fmpq.c b/arb_hypgeom/gamma_fmpq.c
index ee750d0d..2bba139b 100644
--- a/arb_hypgeom/gamma_fmpq.c
+++ b/arb_hypgeom/gamma_fmpq.c
@@ -9,6 +9,7 @@
(at your option) any later version. See .
*/
+#include "flint/double_extras.h"
#include "arb_hypgeom.h"
#include "hypgeom.h"
diff --git a/arb_hypgeom/gamma_upper_fmpq_step_bsplit.c b/arb_hypgeom/gamma_upper_fmpq_step_bsplit.c
index 1813b1b5..6248302f 100644
--- a/arb_hypgeom/gamma_upper_fmpq_step_bsplit.c
+++ b/arb_hypgeom/gamma_upper_fmpq_step_bsplit.c
@@ -46,6 +46,9 @@ mag_geom_choose_N(const mag_t M, const mag_t C, const mag_t tol)
mag_t t, u;
slong N;
+ if (mag_is_finite(M) && mag_is_zero(C))
+ return 1;
+
/* N = log(M / ((1 - C) tol)) / log(1/C) */
mag_init(t);
mag_init(u);
diff --git a/arb_hypgeom/si.c b/arb_hypgeom/si.c
index fdfd31e7..cf49d3c1 100644
--- a/arb_hypgeom/si.c
+++ b/arb_hypgeom/si.c
@@ -9,6 +9,7 @@
(at your option) any later version. See .
*/
+#include "flint/double_extras.h"
#include "arb_hypgeom.h"
#define LOG2 0.69314718055994531