arb_asinh: use more accurate formula for x < 0

This commit is contained in:
Fredrik Johansson 2015-12-14 02:10:20 +01:00
parent f1475df2a3
commit 6faf488f7b

View file

@ -39,8 +39,18 @@ arb_asinh(arb_t z, const arb_t x, slong prec)
arb_mul(t, x, x, prec + 4);
arb_sqrt1pm1(t, t, prec + 4);
arb_add(t, t, x, prec + 4);
arb_log1p(z, t, prec);
if (arf_sgn(arb_midref(x)) >= 0)
{
arb_add(t, t, x, prec + 4);
arb_log1p(z, t, prec);
}
else
{
arb_sub(t, t, x, prec + 4);
arb_log1p(z, t, prec);
arb_neg(z, z);
}
arb_clear(t);
}