diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2001-11-16 10:04:07 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2001-11-16 10:04:07 +0000 |
commit | d7c5add62414518abcc3aba8bcfd4f2576f553ff (patch) | |
tree | 88c350c64bfeddaa7b12aff653b9af7e9f2fa938 /sqrt.c | |
parent | e541a0e318b9cd4508b5ff3c4e408108ae10a9af (diff) | |
download | mpfr-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.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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; |