summaryrefslogtreecommitdiff
path: root/mpf/set_d.c
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2004-03-03 21:12:13 +0100
committerKevin Ryde <user42@zip.com.au>2004-03-03 21:12:13 +0100
commit4b5ef11fb92993a46af5b1ff9a3a367974a367ba (patch)
tree010682b5dca032aa79ab9b61d3d48dbe00f7843f /mpf/set_d.c
parenta289b4deb3c6a2969ffe02e46b1907a19417b4b5 (diff)
downloadgmp-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.c7
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);
}