This commit is contained in:
fredrik 2021-12-09 16:49:03 +01:00
parent cf768614ca
commit 555bc0403e
3 changed files with 6 additions and 4 deletions

View file

@ -340,11 +340,11 @@ arb_hypgeom_1f1_integration(arb_t res, const arb_t a, const arb_t b, const arb_t
arb_init(t); arb_init(t);
ok = arb_is_finite(z); ok = arb_is_finite(z);
arb_sub_ui(t, b, 1, prec); arb_sub_ui(t, a, 1, prec);
ok = ok && arb_is_positive(t); ok = ok && arb_is_nonnegative(t);
arb_sub(t, b, a, prec); arb_sub(t, b, a, prec);
arb_sub_ui(t, t, 1, prec); arb_sub_ui(t, t, 1, prec);
ok = ok && arb_is_positive(t); ok = ok && arb_is_nonnegative(t);
if (!ok) if (!ok)
{ {

View file

@ -166,7 +166,7 @@ Confluent hypergeometric functions
is used. is used.
This algorithm can be useful if the parameters are large. This will currently This algorithm can be useful if the parameters are large. This will currently
only return a finite enclosure if `b > 1` and `b - a > 1`. only return a finite enclosure if `a \ge 1` and `b - a \ge 1`.
.. function:: void arb_hypgeom_u(arb_t res, const arb_t a, const arb_t b, const arb_t z, slong prec) .. function:: void arb_hypgeom_u(arb_t res, const arb_t a, const arb_t b, const arb_t z, slong prec)

View file

@ -162,6 +162,8 @@ DOUBLE_INTERVAL_INLINE
di_t di_fast_mid(di_t x) di_t di_fast_mid(di_t x)
{ {
di_t a, b; di_t a, b;
if (x.a == -D_INF || x.b == D_INF)
return di_interval(-D_INF, D_INF);
a = di_interval(x.a, x.a); a = di_interval(x.a, x.a);
b = di_interval(x.b, x.b); b = di_interval(x.b, x.b);
return di_fast_mul_d(di_fast_add(a, b), 0.5); return di_fast_mul_d(di_fast_add(a, b), 0.5);