diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-14 10:52:17 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-14 10:52:17 +0000 |
commit | e926ef5233cc9f1035d3d51068abe9df8b5429da (patch) | |
tree | bad49abdc709d3d53e01ea86153bd1bd05cfcf15 /random.c | |
parent | 68cab8a24bcc81494ffc6335056097731a27dcde (diff) | |
download | ruby-e926ef5233cc9f1035d3d51068abe9df8b5429da.tar.gz |
* random.c (rb_genrand_int32, rb_genrand_real), intern.h: Export.
* string.c (rb_str_tmp_new), intern.h: New function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'random.c')
-rw-r--r-- | random.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -146,8 +146,8 @@ next_state() } /* generates a random number on [0,0xffffffff]-interval */ -static unsigned long -genrand_int32(void) +unsigned long +rb_genrand_int32(void) { unsigned long y; @@ -164,10 +164,10 @@ genrand_int32(void) } /* generates a random number on [0,1) with 53-bit resolution*/ -static double -genrand_real(void) +double +rb_genrand_real(void) { - unsigned long a=genrand_int32()>>5, b=genrand_int32()>>6; + unsigned long a=rb_genrand_int32()>>5, b=rb_genrand_int32()>>6; return(a*67108864.0+b)*(1.0/9007199254740992.0); } /* These real versions are due to Isaku Wada, 2002/01/09 added */ @@ -361,7 +361,7 @@ limited_rand(unsigned long limit) val = 0; for (i = SIZEOF_LONG/4-1; 0 <= i; i--) { if (mask >> (i * 32)) { - val |= genrand_int32() << (i * 32); + val |= rb_genrand_int32() << (i * 32); val &= mask; if (limit < val) goto retry; @@ -399,7 +399,7 @@ limited_big_rand(struct RBignum *limit) lim = BIG_GET32(limit, i); mask = mask ? 0xffffffff : make_mask(lim); if (mask) { - rnd = genrand_int32() & mask; + rnd = rb_genrand_int32() & mask; if (boundary) { if (lim < rnd) goto retry; @@ -470,7 +470,7 @@ rb_f_rand(argc, argv, obj) limit = (struct RBignum *)rb_big_minus((VALUE)limit, INT2FIX(1)); if (FIXNUM_P((VALUE)limit)) { if (FIX2LONG((VALUE)limit) == -1) - return rb_float_new(genrand_real()); + return rb_float_new(rb_genrand_real()); return LONG2NUM(limited_rand(FIX2LONG((VALUE)limit))); } return limited_big_rand(limit); @@ -488,7 +488,7 @@ rb_f_rand(argc, argv, obj) } if (max == 0) { - return rb_float_new(genrand_real()); + return rb_float_new(rb_genrand_real()); } if (max < 0) max = -max; val = limited_rand(max-1); |