summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2015-02-27 10:01:18 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2015-02-27 10:01:18 +0000
commitf3d957fbf2fd3e48ec18d33373b697e086ccfecb (patch)
tree0bca518d2eb20ab30e0c8c09c266451eb0dc72b8
parent18f11f38f1d2f7bf89a167213048eb11e037a5f2 (diff)
downloadmpfr-f3d957fbf2fd3e48ec18d33373b697e086ccfecb.tar.gz
[src/next.c] Avoid an unnecessary loop when the exponent decreases.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@9327 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/next.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/next.c b/src/next.c
index 0a36084f4..8703fa8e5 100644
--- a/src/next.c
+++ b/src/next.c
@@ -57,11 +57,9 @@ mpfr_nexttozero (mpfr_ptr x)
MPFR_SET_ZERO(x);
else
{
- mp_size_t i;
MPFR_SET_EXP (x, exp - 1);
- xp[0] = MPFR_LIMB_MAX << sh;
- for (i = 1; i < xn; i++)
- xp[i] = MPFR_LIMB_MAX;
+ /* The following is valid whether xn = 1 or xn > 1. */
+ xp[xn-1] |= MPFR_LIMB_HIGHBIT;
}
}
}