From 369d3ee696446f8815bcbb001daafd61dc65c655 Mon Sep 17 00:00:00 2001 From: vlefevre Date: Thu, 19 Mar 2015 00:32:47 +0000 Subject: [src/sum.c] In the final rounding, forgot to handle the possible exponent change in the negative case with corr == 2. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/new-sum@9341 280ebfd0-de03-0410-8827-d642c229c3f4 --- src/sum.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/sum.c b/src/sum.c index 14fd1b50c..a47114aa7 100644 --- a/src/sum.c +++ b/src/sum.c @@ -996,6 +996,13 @@ sum_aux (mpfr_ptr sum, mpfr_ptr *const x, unsigned long n, mpfr_rnd_t rnd, if (i < sn) mpn_com (sump + i, sump + i, sn - i); + else if (MPFR_UNLIKELY (MPFR_LIMB_MSB (sump[sn-1]) == 0)) + { + /* Happens on 01111...111, whose complement is + 10000...000, and com(x) - 1 is 01111...111. */ + sump[sn-1] |= MPFR_LIMB_HIGHBIT; + e--; + } } } -- cgit v1.2.1