From 08345b400c4b7fefb67817d92198c1e2cabf8cf5 Mon Sep 17 00:00:00 2001 From: fredrik Date: Tue, 1 May 2018 11:02:49 +0200 Subject: [PATCH] Airy functions: fix precision loss for huge input and high precision --- acb_hypgeom/airy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/acb_hypgeom/airy.c b/acb_hypgeom/airy.c index 47246266..1028acc3 100644 --- a/acb_hypgeom/airy.c +++ b/acb_hypgeom/airy.c @@ -227,7 +227,7 @@ acb_hypgeom_airy(acb_t ai, acb_t aip, acb_t bi, acb_t bip, const acb_t z, slong zmag = fmpz_get_d(ARF_EXPREF(re)); else zmag = fmpz_get_d(ARF_EXPREF(im)); - zmag = (zmag + 1) * (1.0 / LOG2); + zmag = 3.0 * zmag + 1; n = wp / (-zmag) + 1; } @@ -246,7 +246,7 @@ acb_hypgeom_airy(acb_t ai, acb_t aip, acb_t bi, acb_t bip, const acb_t z, slong { x = fmpz_get_d(ARF_EXPREF(re)); y = fmpz_get_d(ARF_EXPREF(im)); - zmag = (FLINT_MAX(x, y) - 2) * (1.0 / LOG2); + zmag = (FLINT_MAX(x, y) - 2) * LOG2; n = asymp_pick_terms(wp, zmag); n = FLINT_MAX(n, 1); }