summaryrefslogtreecommitdiff
path: root/src/sqr.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-01-09 21:46:15 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-01-09 21:46:15 +0000
commit7612ce1b90a07b3f77f8a8b7c37157912173cc64 (patch)
tree071ae27fb0364c32c692468f7a6d919dabbf0426 /src/sqr.c
parent57c5423e9b09732882590ac379e11e9e8db1379f (diff)
downloadmpfr-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.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/sqr.c b/src/sqr.c
index 0cf6a4e13..3cd826567 100644
--- a/src/sqr.c
+++ b/src/sqr.c
@@ -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 */