diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-08-21 11:33:33 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-08-21 11:33:33 +0000 |
commit | ab5c3e2e0a6e4a25e5d9514f89a6422c6a231410 (patch) | |
tree | bc35208df81e9d63dc70b053c29a4749e330512d /src | |
parent | 7d5fc3260c1cac1e172eee9eab35bae276132790 (diff) | |
download | mpfr-ab5c3e2e0a6e4a25e5d9514f89a6422c6a231410.tar.gz |
[src] Cleaner use of MPFR_SET_SIGN.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@9187 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src')
-rw-r--r-- | src/add.c | 6 | ||||
-rw-r--r-- | src/exceptions.c | 2 | ||||
-rw-r--r-- | src/fma.c | 10 | ||||
-rw-r--r-- | src/hypot.c | 2 | ||||
-rw-r--r-- | src/mul.c | 2 |
5 files changed, 12 insertions, 10 deletions
@@ -69,8 +69,10 @@ mpfr_add (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode) except (-0) + (-0) = -0. */ MPFR_SET_SIGN(a, (rnd_mode != MPFR_RNDD ? - ((MPFR_IS_NEG(b) && MPFR_IS_NEG(c)) ? -1 : 1) : - ((MPFR_IS_POS(b) && MPFR_IS_POS(c)) ? 1 : -1))); + (MPFR_IS_NEG(b) && MPFR_IS_NEG(c) ? + MPFR_SIGN_NEG : MPFR_SIGN_POS) : + (MPFR_IS_POS(b) && MPFR_IS_POS(c) ? + MPFR_SIGN_POS : MPFR_SIGN_NEG))); MPFR_SET_ZERO(a); MPFR_RET(0); /* 0 + 0 is exact */ } diff --git a/src/exceptions.c b/src/exceptions.c index 5dafa2c62..92451a9e8 100644 --- a/src/exceptions.c +++ b/src/exceptions.c @@ -409,7 +409,7 @@ mpfr_overflow (mpfr_ptr x, mpfr_rnd_t rnd_mode, int sign) MPFR_SET_INF(x); inex = 1; } - MPFR_SET_SIGN(x,sign); + MPFR_SET_SIGN(x, sign); __gmpfr_flags |= MPFR_FLAGS_INEXACT | MPFR_FLAGS_OVERFLOW; return sign > 0 ? inex : -inex; } @@ -75,11 +75,11 @@ mpfr_fma_singular (mpfr_ptr s, mpfr_srcptr x, mpfr_srcptr y, mpfr_srcptr z, { int sign_p; sign_p = MPFR_MULT_SIGN( MPFR_SIGN(x) , MPFR_SIGN(y) ); - MPFR_SET_SIGN(s,(rnd_mode != MPFR_RNDD ? - ((MPFR_IS_NEG_SIGN(sign_p) && MPFR_IS_NEG(z)) - ? -1 : 1) : - ((MPFR_IS_POS_SIGN(sign_p) && MPFR_IS_POS(z)) - ? 1 : -1))); + MPFR_SET_SIGN(s, (rnd_mode != MPFR_RNDD ? + (MPFR_IS_NEG_SIGN(sign_p) && MPFR_IS_NEG(z) ? + MPFR_SIGN_NEG : MPFR_SIGN_POS) : + (MPFR_IS_POS_SIGN(sign_p) && MPFR_IS_POS(z) ? + MPFR_SIGN_POS : MPFR_SIGN_NEG))); MPFR_SET_ZERO(s); MPFR_RET(0); } diff --git a/src/hypot.c b/src/hypot.c index 1eab34d35..aabc1941c 100644 --- a/src/hypot.c +++ b/src/hypot.c @@ -111,7 +111,7 @@ mpfr_hypot (mpfr_ptr z, mpfr_srcptr x, mpfr_srcptr y, mpfr_rnd_t rnd_mode) else { MPFR_SET_EXP (z, Ex); - MPFR_SET_SIGN (z, 1); + MPFR_SET_SIGN (z, MPFR_SIGN_POS); MPFR_RNDRAW_GEN (inexact, z, MPFR_MANT (x), N, rnd_mode, 1, goto addoneulp, if (MPFR_UNLIKELY (++ MPFR_EXP (z) > @@ -56,7 +56,7 @@ mpfr_mul3 (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode) { if (MPFR_IS_INF(c) || MPFR_NOTZERO(c)) { - MPFR_SET_SIGN(a,sign_product); + MPFR_SET_SIGN(a, sign_product); MPFR_SET_INF(a); MPFR_RET(0); /* exact */ } |