summaryrefslogtreecommitdiff
path: root/mul.c
diff options
context:
space:
mode:
authorpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-03-23 13:04:37 +0000
committerpelissip <pelissip@280ebfd0-de03-0410-8827-d642c229c3f4>2005-03-23 13:04:37 +0000
commitae78097ba337250cd8e9bea9ae036d4b246b4ca3 (patch)
treee894513708f449ee0a3b8fd944ce57ac9194ca09 /mul.c
parent0c1f2aedff32e28589612ec2ab853bd162d171b2 (diff)
downloadmpfr-ae78097ba337250cd8e9bea9ae036d4b246b4ca3.tar.gz
Don't use Mulder at n+1 for MPFR_MUL_THRESHOLD+1
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@3401 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'mul.c')
-rw-r--r--mul.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mul.c b/mul.c
index 9d2ecdf80..a939988d2 100644
--- a/mul.c
+++ b/mul.c
@@ -366,7 +366,8 @@ mpfr_mul (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mp_rnd_t rnd_mode)
We may lost 1 bit due to RNDN, 1 due to final shift. */
if (MPFR_UNLIKELY (MPFR_PREC (a) > p - 5))
{
- if (MPFR_UNLIKELY (MPFR_PREC (a) > p - 5 + BITS_PER_MP_LIMB))
+ if (MPFR_UNLIKELY (MPFR_PREC (a) > p - 5 + BITS_PER_MP_LIMB
+ || bn <= MPFR_MUL_THRESHOLD+1))
{
/* MulHigh can't produce a roundable result. */
MPFR_LOG_MSG (("mpfr_mulhigh can't be used (%lu VS %lu)\n",