summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-12-06 09:04:03 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-12-06 09:04:03 +0000
commit0ca799d43c24ec0ce26d59e4fabcc5a092eec9c7 (patch)
treecd2c1ec91ad57702c5b466ae2012cf957431b3d3 /bignum.c
parentcb4d9ccf0322f5cec3e6fc16abc2925d50f14595 (diff)
19991206
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/bignum.c b/bignum.c
index 05df7c1683..870e4129c5 100644
--- a/bignum.c
+++ b/bignum.c
@@ -1255,20 +1255,17 @@ rb_big_abs(x)
*/
VALUE
-rb_big_rand(max)
+rb_big_rand(max, rand)
VALUE max;
+ double rand;
{
- struct RBignum *v;
+ VALUE v;
long len;
- len = RBIGNUM(max)->len;
- v = RBIGNUM(bignew(len,1));
+ len = RBIGNUM(v)->len;
+ v = bignew(len,1);
while (len--) {
-#ifdef HAVE_RANDOM
- BDIGITS(v)[len] = random();
-#else
- BDIGITS(v)[len] = rand();
-#endif
+ BDIGITS(v)[len] = ((USHORT)~0) * rand;
}
return rb_big_mod((VALUE)v, max);