summaryrefslogtreecommitdiff
path: root/src/mpfr-mini-gmp.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2014-01-17 07:22:48 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2014-01-17 07:22:48 +0000
commitb79b39da0a7e11491b0b48453eb01784cf4aa3da (patch)
tree4897f8b15e836ae776b7fde2955d4c9dbe45b9a6 /src/mpfr-mini-gmp.c
parentdd36bc8f4acebbc891952073628b895ddd444388 (diff)
downloadmpfr-b79b39da0a7e11491b0b48453eb01784cf4aa3da.tar.gz
more progress for the mini-gmp interface
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@8755 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/mpfr-mini-gmp.c')
-rw-r--r--src/mpfr-mini-gmp.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mpfr-mini-gmp.c b/src/mpfr-mini-gmp.c
index 993f0509a..f0dcbdaa7 100644
--- a/src/mpfr-mini-gmp.c
+++ b/src/mpfr-mini-gmp.c
@@ -38,9 +38,9 @@ gmp_randinit_default (gmp_randstate_t state)
#ifdef WANT_gmp_randseed_ui
void
-gmp_randseed_ui (gmp_randstate_t state, const mpz_t seed)
+gmp_randseed_ui (gmp_randstate_t state, unsigned long int seed)
{
- srand48 (mpz_get_ui (seed));
+ srand48 (seed);
}
#endif
@@ -167,7 +167,9 @@ mpz_realloc2 (mpz_t X, mp_bitcnt_t N)
if (n > X->_mp_alloc)
{
- X->_mp_d = gmp_default_realloc (X->_mp_d, X->_mp_alloc, n);
+ X->_mp_d = gmp_default_realloc (X->_mp_d,
+ X->_mp_alloc * sizeof (mp_limb_t),
+ n * sizeof (mp_limb_t));
X->_mp_alloc = n;
}
}
@@ -226,8 +228,10 @@ mpn_divrem (mp_limb_t *qp, mp_size_t qn, mp_limb_t *np,
MPFR_ASSERTN(q->_mp_size == qn || q->_mp_size == qn + 1);
mpn_copyi (qp, q->_mp_d, qn);
ret = (q->_mp_size == qn) ? 0 : q->_mp_d[qn];
- MPFR_ASSERTN(r->_mp_size == dn);
- mpn_copyi (np, r->_mp_d, dn);
+ if (r->_mp_size > 0)
+ mpn_copyi (np, r->_mp_d, r->_mp_size);
+ if (r->_mp_size < dn)
+ mpn_zero (np + r->_mp_size, dn - r->_mp_size);
mpz_clear (q);
mpz_clear (r);
return ret;