summaryrefslogtreecommitdiff
path: root/tests/misc.c
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2003-04-23 23:22:20 +0200
committerKevin Ryde <user42@zip.com.au>2003-04-23 23:22:20 +0200
commita02f7ec54411a50035ee89a21a09ea80e9d6e0f7 (patch)
tree70cbb132420536ae127323e54d6729ffeffd46d1 /tests/misc.c
parent364a7b22bc9097ff46f34b3f5b39844d26bd8fab (diff)
downloadgmp-a02f7ec54411a50035ee89a21a09ea80e9d6e0f7.tar.gz
* tests/misc.c, tests/tests.h (tests_infinity_d): New function.
* tests/misc.c (mpz_erandomb ,mpz_errandomb): Use gmp_urandomm_ui.
Diffstat (limited to 'tests/misc.c')
-rw-r--r--tests/misc.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/tests/misc.c b/tests/misc.c
index 36fb70b8c..a0abe3514 100644
--- a/tests/misc.c
+++ b/tests/misc.c
@@ -313,7 +313,7 @@ mpz_pow2abs_p (mpz_srcptr z)
void
mpz_erandomb (mpz_ptr rop, gmp_randstate_t rstate, unsigned long nbits)
{
- mpz_urandomb (rop, rstate, urandom () % nbits);
+ mpz_urandomb (rop, rstate, gmp_urandomm_ui (rstate, nbits));
}
void
@@ -327,7 +327,7 @@ mpz_erandomb_nonzero (mpz_ptr rop, gmp_randstate_t rstate, unsigned long nbits)
void
mpz_errandomb (mpz_ptr rop, gmp_randstate_t rstate, unsigned long nbits)
{
- mpz_rrandomb (rop, rstate, urandom () % nbits);
+ mpz_rrandomb (rop, rstate, gmp_urandomm_ui (rstate, nbits));
}
void
@@ -405,3 +405,22 @@ call_rand_algs (void (*func) __GMP_PROTO ((const char *, gmp_randstate_ptr)))
mpz_clear (a);
}
+
+
+/* Return +infinity if available, or 0 if not.
+ We don't want to use libm, so INFINITY or other system values are not
+ used here. */
+double
+tests_infinity_d (void)
+{
+#if _GMP_IEEE_FLOATS
+ union ieee_double_extract x;
+ x.s.exp = 2047;
+ x.s.manl = 0;
+ x.s.manh = 0;
+ x.s.sig = 0;
+ return x.d;
+#else
+ return 0;
+#endif
+}