diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-11-03 05:48:02 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-11-03 05:48:02 +0000 |
commit | e55f6c6280976ecd62d9284145ee24900e3c8b3e (patch) | |
tree | 3cec3894643ef5a7bbc2138b6f54950851849d88 /src/div_d.c | |
parent | bdf190b1ab91635e8748c65e018b5feb92cdbe1d (diff) | |
download | mpfr-e55f6c6280976ecd62d9284145ee24900e3c8b3e.tar.gz |
[src] Applied patch by Patrick PĂ©lissier to allocate some constant-size
MPFR numbers on the stack instead of using mpfr_init2, and replace some
MPFR_ASSERTN by MPFR_ASSERTD.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@9229 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/div_d.c')
-rw-r--r-- | src/div_d.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/div_d.c b/src/div_d.c index acc4f92e0..a0583aed5 100644 --- a/src/div_d.c +++ b/src/div_d.c @@ -28,6 +28,7 @@ mpfr_div_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode) { int inexact; mpfr_t d; + mp_limb_t tmp_man[MPFR_LIMBS_PER_DOUBLE]; MPFR_SAVE_EXPO_DECL (expo); MPFR_LOG_FUNC ( @@ -37,15 +38,14 @@ mpfr_div_d (mpfr_ptr a, mpfr_srcptr b, double c, mpfr_rnd_t rnd_mode) MPFR_SAVE_EXPO_MARK (expo); - mpfr_init2 (d, IEEE_DBL_MANT_DIG); + MPFR_TMP_INIT1(tmp_man, d, IEEE_DBL_MANT_DIG); inexact = mpfr_set_d (d, c, rnd_mode); - MPFR_ASSERTN (inexact == 0); + MPFR_ASSERTD (inexact == 0); MPFR_CLEAR_FLAGS (); inexact = mpfr_div (a, b, d, rnd_mode); MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); - mpfr_clear(d); MPFR_SAVE_EXPO_FREE (expo); return mpfr_check_range (a, inexact, rnd_mode); } |