summaryrefslogtreecommitdiff
path: root/trunc.c
diff options
context:
space:
mode:
authorhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2000-06-15 17:26:03 +0000
committerhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2000-06-15 17:26:03 +0000
commit9acbbafef971e86766aa45a826f68008b435ee40 (patch)
treef67ab5fd8c13c1272bd11bef14b9d30fc2ba0cb4 /trunc.c
parent61a79fef618714447ba1c6a98678af56f77bbe1f (diff)
downloadmpfr-9acbbafef971e86766aa45a826f68008b435ee40.tar.gz
Minor patch (put to 0 the nonsignificant bits).
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@617 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'trunc.c')
-rw-r--r--trunc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/trunc.c b/trunc.c
index 8b112e40e..a6f927f2b 100644
--- a/trunc.c
+++ b/trunc.c
@@ -75,7 +75,7 @@ FUNC_NAME (r, u)
{
mp_ptr rp, up;
mp_size_t size, asize;
- mp_size_t prec;
+ mp_size_t prec, rw;
#ifdef _MPFR_FLOOR_OR_CEIL
mp_size_t ignored_n;
#endif
@@ -144,6 +144,10 @@ FUNC_NAME (r, u)
#endif
MPN_COPY_INCR (rp, up, asize);
+ /* Put to 0 the remaining bits */
+ rw = r->_mp_prec & (BITS_PER_MP_LIMB - 1);
+ rp[asize] &= ~((((mp_limb_t)1)<<(BITS_PER_MP_LIMB - rw)) - (mp_limb_t)1);
+
r->_mp_exp = exp;
r->_mp_size = size >= 0 ? asize : -asize;
}