summaryrefslogtreecommitdiff
path: root/src/mpc.h
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2011-01-18 12:40:20 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2011-01-18 12:40:20 +0000
commit3237c68dfc83a83a1271755ed0cda374aebe0069 (patch)
treee785ad170d0e061c2a5017adfcc214e8f4ae718d /src/mpc.h
parent1e2626822cbd2464f318a5f65df8e8a6469e7b14 (diff)
downloadmpc-3237c68dfc83a83a1271755ed0cda374aebe0069.tar.gz
add_si: replaced macro by function, since the macro evaluated its argument
twice git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@881 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src/mpc.h')
-rw-r--r--src/mpc.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/mpc.h b/src/mpc.h
index a6cae48..d19036d 100644
--- a/src/mpc.h
+++ b/src/mpc.h
@@ -146,6 +146,7 @@ extern "C" {
__MPC_DECLSPEC int mpc_add __MPC_PROTO ((mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t));
__MPC_DECLSPEC int mpc_add_fr __MPC_PROTO ((mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t));
+__MPC_DECLSPEC int mpc_add_si __MPC_PROTO ((mpc_ptr, mpc_srcptr, long int, mpc_rnd_t));
__MPC_DECLSPEC int mpc_add_ui __MPC_PROTO ((mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t));
__MPC_DECLSPEC int mpc_sub __MPC_PROTO ((mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t));
__MPC_DECLSPEC int mpc_sub_fr __MPC_PROTO ((mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t));
@@ -259,8 +260,6 @@ __MPC_DECLSPEC size_t mpc_out_str __MPC_PROTO ((FILE *, int, size_t, mpc_srcptr,
#define mpc_realref(x) ((x)->re)
#define mpc_imagref(x) ((x)->im)
-#define mpc_add_si(x, y, z, rnd) \
- ( (z) >= 0 ? mpc_add_ui ((x), (y), (unsigned long int) (z), (rnd)) : mpc_sub_ui ((x), (y), (unsigned long int) (-(z)), (rnd)) )
#define mpc_cmp_si(x, y) \
( mpc_cmp_si_si ((x), (y), 0l) )
#define mpc_ui_sub(x, y, z, r) mpc_ui_ui_sub (x, y, 0ul, z, r)