<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div>monte-carlo is a haskell library providing a monad and associated monad transformer for computing with quasi-random numbers. &nbsp;It provides a high-level interface to the distributions supported by the GNU Scientific Library (currently just uniform, normal, exponential, Poisson, Levy, but others are easy to add). &nbsp;You can see examples of the library in action at&nbsp;<a href="http://github.com/patperry/hs-monte-carlo/tree/master/examples/">http://github.com/patperry/hs-monte-carlo/tree/master/examples/</a>&nbsp;. &nbsp; Hackage documentation is at&nbsp;<a href="http://hackage.haskell.org/package/monte-carlo">http://hackage.haskell.org/package/monte-carlo</a>&nbsp;.</div><div><br></div><div>A few blog posts describe an older version of the library, but beware the API has changed slightly, and these examples require some modification:</div><div><br></div><div><a href="http://ptrckprry.com/blog/2008/08/26/a-monte-carlo-monad-for-haskell/">http://ptrckprry.com/blog/2008/08/26/a-monte-carlo-monad-for-haskell/</a> (see examples/Pi.lhs)</div><div><a href="http://ptrckprry.com/blog/2008/12/31/monte-carlo-poker-odds/">http://ptrckprry.com/blog/2008/12/31/monte-carlo-poker-odds/</a>&nbsp;(see examples/Poker.hs)</div><div><br></div><div>The changes since the last release are listed below. &nbsp;I welcome feedback, bug reports, and contributions.</div><div><br></div><div><br></div><div>Patrick</div><div><br></div><div><br></div><div>Changes since version 0.2.</div><div><div><br></div><div>* Add strict versions of sampleSubset, sampleIntSubset, and shuffleInt.</div><div><br></div><div>* Port to vector-0.6.0.</div><div><br></div><div>* Add Exponential and Levy alpha-Stable distributions.</div><div><br></div><div>* Add Summary.Bool for indicators.</div><div><br></div><div>* Move Summary to Data.Summary</div><div><br></div><div>* Introduce `repeatMC`, which produces an infinite (lazy) stream of values, and</div><div>&nbsp;&nbsp;`replicateMC`, which produces a lazy list of specified length.</div><div><br></div><div>* Remove `repeatMC/repeatMCWith`.</div><div><br></div><div>* Build fix for 6.8.2 from Robert Gunst.</div><div><br></div><div>* The function `sample`, `sampleWithWeights`, `sampleSubset`, and</div><div>&nbsp;&nbsp;`shuffle` no longer require that you explicitly pass in the length.</div><div><br></div><div>* The pure RNG is now a newtype, so you can't use the functions from</div><div>&nbsp;&nbsp;GLS.Random.Gen on it anymore.</div><div>&nbsp;&nbsp;</div><div>* The internals of the monad have been cleaned up. &nbsp;IO is used internally</div><div>&nbsp;&nbsp;instead of `seq` calls and `unsafePerformIO` everywhere. &nbsp;This results in</div><div>&nbsp;&nbsp;a modest performance boost.</div></div><div><br></div></body></html>