From a9e7b9d395c19da3ee99fae73d4d0f3e3a3121f5 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Sun, 13 Jun 2004 22:58:30 +0000 Subject: Makefile.am (gfor_helper_src): Add runtime/normalize.f90. * Makefile.am (gfor_helper_src): Add runtime/normalize.f90. * configure.ac: Add checks for nextafter and nextafterf. * Makefile.in, config.h.in, configure: Regenerate. * libgfortran.h (normalize_r4_i4, normalize_r8_i8): Declare. * intrinsics/rand.c (rand): Use normalize_r4_i4. * intrinsics/random.c (random_r4): Use normalize_r4_i4. (random_r8): Use normalize_r8_i8. * runtime/normalize.c: New file. testsuite/ * gfortran.fortran-torture/execute/random_2.f90: New test. From-SVN: r83070 --- libgfortran/intrinsics/rand.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'libgfortran/intrinsics/rand.c') diff --git a/libgfortran/intrinsics/rand.c b/libgfortran/intrinsics/rand.c index c4782fc..d9add00 100644 --- a/libgfortran/intrinsics/rand.c +++ b/libgfortran/intrinsics/rand.c @@ -77,17 +77,10 @@ prefix(irand) (GFC_INTEGER_4 *i) } -/* Return a REAL in the range [0,1). Cast to double to use the full - range of pseudo-random numbers returned by irand(). */ +/* Return a random REAL in the range [0,1). */ GFC_REAL_4 prefix(rand) (GFC_INTEGER_4 *i) { - GFC_REAL_4 val; - - do - val = (GFC_REAL_4)((double)(prefix(irand) (i) - 1) / (double) GFC_RAND_M1); - while (val == 1.0); - - return val; + return normalize_r4_i4 (i - 1, GFC_RAND_M1); } -- cgit v1.1