I think I forgot to reply to the list, also.<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Doug Williams</b> &lt;<a href="mailto:m.douglas.williams@gmail.com">
m.douglas.williams@gmail.com</a>&gt;<br>Date: Aug 15, 2007 6:47 AM<br>Subject: Re: [plt-scheme] Error in SRFI 27<br>To: Matthew Flatt &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;<br><br></span>In the science collection I wrappered SRFI 27 for random number generation, provided contracts for the calls, and a added accessors that gave a more PLT Scheme look-and-feel.&nbsp; But, I used SRFI 27 for portability - primarily so other Scheme code could be ported in more easily.&nbsp; As for speed, faster is better, but it isn&#39;t everything.&nbsp; The main characteristics I need from SRFI 27 is that it is repeatable - I will get the same sequence of random numbers by default, but I can randomize the stream when needed.&nbsp; Both modes are important for my simulations.
<br>I&#39;m not sure if you are meaning that the implementation would speed up or if it would slow down if you backported your changes.&nbsp; But, if SRFI used the native PLT Scheme random source (or vice versa) [and kept the characteristics I mentioned above], it might simplify my wrapper to just the contracts.
<br><span class="sg"><br>Doug</span><div><span class="e" id="q_1146990a338ff39f_2"><br><br><div><span class="gmail_quote">On 8/15/07, <b class="gmail_sendername">Matthew Flatt</b> &lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
mflatt@cs.utah.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Does the speed of this random-number generator matter for your<br>purposes?<br><br>Long ago, I changed MzScheme&#39;s `random&#39; to use the same algorithm, and<br>I set things up so that MzScheme&#39;s `random&#39; could be used to implement
<br>SRFI-27. But I never went back to change the SRFI-27 implementation.<br><br>Matthew<br><br>At Tue, 14 Aug 2007 21:08:44 -0600, &quot;Doug Williams&quot; wrote:<br>&gt; There seems to have been an error introduced into SRFI 27 sometime late in
<br>&gt; the V370 development leading up to V371.&nbsp;&nbsp;The random reals generated by SRFI<br>&gt; 27 all seem to be negative numbers in the range on -1.0e-8 to<br>&gt; -1.0e-10instead of 0 to 1.&nbsp;&nbsp;The following code shows the problem.&nbsp;&nbsp;In
<br>&gt; V370 it works<br>&gt; properly giving numbers in the range 0.0 to 1.0.&nbsp;&nbsp;When run under V370.7 or<br>&gt; V371, it gives the bad numbers.<br>&gt;<br>&gt; (require (lib &quot;27.ss&quot; &quot;srfi&quot;))<br>&gt;
<br>
&gt; (let* ((r (make-random-source))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(rand (random-source-make-reals r)))<br>&gt;&nbsp;&nbsp; (do ((i 0 (+ i 1)))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= i 100) (void))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (printf &quot;random real = ~a~n&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (rand))))
<br>&gt;<br>&gt; Doug<br>&gt; _________________________________________________<br>&gt;&nbsp;&nbsp; For list-related administrative tasks:<br>&gt;&nbsp;&nbsp; <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://list.cs.brown.edu/mailman/listinfo/plt-scheme
</a><br></blockquote></div><br>
</span></div>