diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-01-17 07:22:48 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2014-01-17 07:22:48 +0000 |
commit | b79b39da0a7e11491b0b48453eb01784cf4aa3da (patch) | |
tree | 4897f8b15e836ae776b7fde2955d4c9dbe45b9a6 | |
parent | dd36bc8f4acebbc891952073628b895ddd444388 (diff) | |
download | mpfr-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
-rw-r--r-- | src/Makefile.am | 5 | ||||
-rw-r--r-- | src/mpfr-mini-gmp.c | 14 | ||||
-rw-r--r-- | src/mpfr-mini-gmp.h | 2 | ||||
-rw-r--r-- | tests/tadd.c | 4 |
4 files changed, 15 insertions, 10 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 6e02df98b..f3cf788d7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,7 +16,7 @@ EXTRA_DIST = round_raw_generic.c jyn_asympt.c x86/core2/mparam.h \ amd/amdfam10/mparam.h powerpc32/mparam.h hppa/mparam.h \ mips/mparam.h -include_HEADERS = mpfr.h mpf2mpfr.h mpfr-mini-gmp.h +include_HEADERS = mpfr.h mpf2mpfr.h BUILT_SOURCES = mparam.h @@ -58,7 +58,8 @@ sub_d.c d_sub.c mul_d.c div_d.c d_div.c li2.c rec_sqrt.c min_prec.c \ buildopt.c digamma.c bernoulli.c isregular.c set_flt.c get_flt.c \ scale2.c set_z_exp.c ai.c gammaonethird.c ieee_floats.h \ grandom.c fpif.c set_float128.c get_float128.c rndna.c nrandom.c \ -random_deviate.h random_deviate.c erandom.c mpfr-mini-gmp.c +random_deviate.h random_deviate.c erandom.c mpfr-mini-gmp.c \ +mpfr-mini-gmp.h libmpfr_la_LIBADD = @LIBOBJS@ 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; diff --git a/src/mpfr-mini-gmp.h b/src/mpfr-mini-gmp.h index ed73a3f5c..4b4970bb8 100644 --- a/src/mpfr-mini-gmp.h +++ b/src/mpfr-mini-gmp.h @@ -56,7 +56,7 @@ void gmp_randinit_default (gmp_randstate_t); #ifndef gmp_randseed_ui #define WANT_gmp_randseed_ui -void gmp_randseed_ui (gmp_randstate_t, const mpz_t); +void gmp_randseed_ui (gmp_randstate_t, unsigned long int); #endif #ifndef gmp_randclear diff --git a/tests/tadd.c b/tests/tadd.c index b8763343b..0abb9d0de 100644 --- a/tests/tadd.c +++ b/tests/tadd.c @@ -81,8 +81,8 @@ check (const char *xs, const char *ys, mpfr_rnd_t rnd_mode, if (mpfr_cmp_str1 (zz, zs) ) { printf ("expected sum is %s, got ", zs); - mpfr_out_str(stdout, 10, 0, zz, MPFR_RNDN); - printf ("mpfr_add failed for x=%s y=%s with rnd_mode=%s\n", + mpfr_out_str (stdout, 10, 0, zz, MPFR_RNDN); + printf ("\nmpfr_add failed for x=%s y=%s with rnd_mode=%s\n", xs, ys, mpfr_print_rnd_mode (rnd_mode)); exit (1); } |