diff options
author | Kevin Ryde <user42@zip.com.au> | 2004-03-03 21:12:13 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2004-03-03 21:12:13 +0100 |
commit | 4b5ef11fb92993a46af5b1ff9a3a367974a367ba (patch) | |
tree | 010682b5dca032aa79ab9b61d3d48dbe00f7843f /mpf/set_d.c | |
parent | a289b4deb3c6a2969ffe02e46b1907a19417b4b5 (diff) | |
download | gmp-4b5ef11fb92993a46af5b1ff9a3a367974a367ba.tar.gz |
* mpf/set_d.c: Rate d==0 as UNLIKELY. Store size before extract call,
to shorten lifespan of "negative".
Diffstat (limited to 'mpf/set_d.c')
-rw-r--r-- | mpf/set_d.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mpf/set_d.c b/mpf/set_d.c index f639496c2..0a34a1e53 100644 --- a/mpf/set_d.c +++ b/mpf/set_d.c @@ -1,6 +1,7 @@ /* mpf_set_d -- Assign a float from a double. -Copyright 1993, 1994, 1995, 1996, 2001, 2003 Free Software Foundation, Inc. +Copyright 1993, 1994, 1995, 1996, 2001, 2003, 2004 Free Software Foundation, +Inc. This file is part of the GNU MP Library. @@ -37,7 +38,7 @@ mpf_set_d (mpf_ptr r, double d) __gmp_invalid_operation (), __gmp_invalid_operation ()); - if (d == 0) + if (UNLIKELY (d == 0)) { SIZ(r) = 0; EXP(r) = 0; @@ -46,6 +47,6 @@ mpf_set_d (mpf_ptr r, double d) negative = d < 0; d = ABS (d); - EXP(r) = __gmp_extract_double (PTR(r), d); SIZ(r) = negative ? -LIMBS_PER_DOUBLE : LIMBS_PER_DOUBLE; + EXP(r) = __gmp_extract_double (PTR(r), d); } |