[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01053] rand() / drand48()

From: ts <decoux@...>
Date: 2000-01-05 13:07:07 UTC
List: ruby-talk #1053

 I was looking at random.c when I've seen that ruby use drand48() when it's
 available. In my documentation of drand48() (debian 2.1) I've :

       The  srand48(),  seed48() and lcong48() functions are ini       tialization functions,  one  of  which  should  be  called
       before using drand48(), lrand48() or mrand49().  The funcュ
       tions erand48(), nrand48() and jrand48() do not require an
       initialization function to be called first.

 If I read it correctly a call to srand48() must be made before any call
 to drand48(). 

 Apparently in random.c, ruby never check if the initialization function
 was called. Can this be a problem for the random generator ?

 It's really easy to forget a call to srand(). For example this script make
 a call to rand() and it's transparent for the user.

pigeon% cat b.rb
#!/usr/bin/ruby
require 'cgi/session'

CGI::Session.new(CGI.new)
pigeon% 


Guy Decoux

In This Thread

Prev Next