diff options
author | hanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-06-15 17:26:03 +0000 |
---|---|---|
committer | hanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4> | 2000-06-15 17:26:03 +0000 |
commit | 9acbbafef971e86766aa45a826f68008b435ee40 (patch) | |
tree | f67ab5fd8c13c1272bd11bef14b9d30fc2ba0cb4 /trunc.c | |
parent | 61a79fef618714447ba1c6a98678af56f77bbe1f (diff) | |
download | mpfr-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.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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; } |