diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-01-09 21:46:15 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-01-09 21:46:15 +0000 |
commit | 7612ce1b90a07b3f77f8a8b7c37157912173cc64 (patch) | |
tree | 071ae27fb0364c32c692468f7a6d919dabbf0426 /src/sqr.c | |
parent | 57c5423e9b09732882590ac379e11e9e8db1379f (diff) | |
download | mpfr-7612ce1b90a07b3f77f8a8b7c37157912173cc64.tar.gz |
[src/sqr.c] deal with RNDF in sqr_1, sqr_2 and sqr_3
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/faithful@11175 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/sqr.c')
-rw-r--r-- | src/sqr.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -82,7 +82,7 @@ mpfr_sqr_1 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p) rounding: MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin in the cases "goto rounding" above. */ - if (rb == 0 && sb == 0) + if ((rb == 0 && sb == 0) || (rnd_mode == MPFR_RNDF)) { MPFR_ASSERTD(ax >= __gmpfr_emin); return 0; /* idem than MPFR_RET(0) but faster */ @@ -183,7 +183,7 @@ mpfr_sqr_2 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p) rounding: MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin in the cases "goto rounding" above. */ - if (rb == 0 && sb == 0) + if ((rb == 0 && sb == 0) || (rnd_mode == MPFR_RNDF)) { MPFR_ASSERTD(ax >= __gmpfr_emin); return 0; /* idem than MPFR_RET(0) but faster */ @@ -322,7 +322,7 @@ mpfr_sqr_3 (mpfr_ptr a, mpfr_srcptr b, mpfr_rnd_t rnd_mode, mpfr_prec_t p) rounding: MPFR_EXP (a) = ax; /* Don't use MPFR_SET_EXP since ax might be < __gmpfr_emin in the cases "goto rounding" above. */ - if (rb == 0 && sb == 0) + if ((rb == 0 && sb == 0) || (rnd_mode == MPFR_RNDF)) { MPFR_ASSERTD(ax >= __gmpfr_emin); return 0; /* idem than MPFR_RET(0) but faster */ |