summaryrefslogtreecommitdiff
path: root/sqrt.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2001-11-16 10:04:07 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2001-11-16 10:04:07 +0000
commitd7c5add62414518abcc3aba8bcfd4f2576f553ff (patch)
tree88c350c64bfeddaa7b12aff653b9af7e9f2fa938 /sqrt.c
parente541a0e318b9cd4508b5ff3c4e408108ae10a9af (diff)
downloadmpfr-d7c5add62414518abcc3aba8bcfd4f2576f553ff.tar.gz
1 -> BITS_PER_MP_LIMB
1 << (BITS_PER_MP_LIMB - 1) -> MP_LIMB_T_HIGHBIT git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@1501 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'sqrt.c')
-rw-r--r--sqrt.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sqrt.c b/sqrt.c
index ace9166e8..de2d8cc8b 100644
--- a/sqrt.c
+++ b/sqrt.c
@@ -123,7 +123,7 @@ mpfr_sqrt (r, u, rnd_mode)
{
up = TMP_ALLOC((usize + 1)*BYTES_PER_MP_LIMB);
if (mpn_rshift(up + 1, MPFR_MANT(u), usize, 1))
- up [0] = MP_LIMB_T_ONE << (BITS_PER_MP_LIMB - 1);
+ up [0] = MP_LIMB_T_HIGHBIT;
else up[0] = 0;
usize++;
}
@@ -261,11 +261,13 @@ mpfr_sqrt (r, u, rnd_mode)
MP_LIMB_T_ONE);
}
- if (cc) {
- mpn_rshift(rp, rp, rrsize, 1);
- rp[rrsize-1] |= MP_LIMB_T_ONE << (BITS_PER_MP_LIMB - 1);
- MPFR_EXP(r)++;
- }
+ if (cc)
+ {
+ /* Is a shift necessary here? Isn't the result 1.0000...? */
+ mpn_rshift (rp, rp, rrsize, 1);
+ rp[rrsize-1] |= MP_LIMB_T_HIGHBIT;
+ MPFR_EXP(r)++;
+ }
fin:
rsize = rrsize;