summaryrefslogtreecommitdiff
path: root/round_prec.c
diff options
context:
space:
mode:
authorpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2003-11-05 12:11:47 +0000
committerpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2003-11-05 12:11:47 +0000
commit3e4ced245d9e603cfc806e64ab56b9b2b7223287 (patch)
tree07d2403dc7906d32a852d032df4b348aed7616b5 /round_prec.c
parentc1ff1a575e238532d7329dd5ebb15f5f48581868 (diff)
downloadmpfr-3e4ced245d9e603cfc806e64ab56b9b2b7223287.tar.gz
Optimize mpfr_prec_round.
Optimize mpfr_set (Case of both src & dest have the same precision). Start optimizing mpfr_sub1. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2535 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'round_prec.c')
-rw-r--r--round_prec.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/round_prec.c b/round_prec.c
index 42376ac26..d938ffb84 100644
--- a/round_prec.c
+++ b/round_prec.c
@@ -72,12 +72,12 @@ mpfr_round_raw_generic(mp_limb_t *yp, mp_limb_t *xp, mp_prec_t xprec,
lomask = -1;
himask = -1;
}
- MPFR_ASSERTN(nw >= 1);
+ MPFR_ASSERTD(nw >= 1);
if (xprec <= yprec)
{ /* No rounding is necessary. */
/* if yp=xp, maybe an overlap: MPN_COPY_DECR is ok when src <= dst */
- MPFR_ASSERTN(nw >= xsize);
+ MPFR_ASSERTD(nw >= xsize);
if (inexp)
*inexp = 0;
if (flag)
@@ -100,7 +100,7 @@ mpfr_round_raw_generic(mp_limb_t *yp, mp_limb_t *xp, mp_prec_t xprec,
k = xsize - nw;
if (!rw)
k--;
- MPFR_ASSERTN(k >= 0);
+ MPFR_ASSERTD(k >= 0);
sb = xp[k] & lomask; /* First non-significant bits */
if (rnd_mode == GMP_RNDN)
{
@@ -172,7 +172,7 @@ mpfr_prec_round (mpfr_ptr x, mp_prec_t prec, mp_rnd_t rnd_mode)
MPFR_SET_ALLOC_SIZE(x, nw); /* new number of allocated limbs */
}
- if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
+ if (MPFR_UNLIKELY( MPFR_IS_SINGULAR(x) ))
{
if (MPFR_IS_NAN(x))
MPFR_RET_NAN;
@@ -185,7 +185,7 @@ mpfr_prec_round (mpfr_ptr x, mp_prec_t prec, mp_rnd_t rnd_mode)
TMP_MARK(marker);
tmp = TMP_ALLOC (nw * BYTES_PER_MP_LIMB);
xp = MPFR_MANT(x);
- carry = mpfr_round_raw (tmp, xp, MPFR_PREC(x), MPFR_SIGN(x) < 0,
+ carry = mpfr_round_raw (tmp, xp, MPFR_PREC(x), MPFR_IS_NEG(x),
prec, rnd_mode, &inexact);
MPFR_PREC(x) = prec;