July 2009


Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
John McManus <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Sat, 4 Jul 2009 19:50:03 -0400
text/plain (46 lines)
At least a few years ago, RePast used to include the Colt package, which includes routines from CERN, Cornell and maybe others. I still use this for statistical distributions, especially when I want to generate random numbers from a given distribution (

Colt and others are listed at (


-----Original Message-----
From: MASON Multiagent Simulation Toolkit [mailto:[log in to unmask]] On Behalf Of Sean Luke
Sent: Saturday, July 04, 2009 10:08 AM
To: [log in to unmask]
Subject: Re: probability distributions

t.n.a. wrote:

> I'm not sure how I would go about transforming uniform distribution
> random numbers to a specific distribution...I could do it for simple,
> streight-lined artificial distributions, but for distributions like
> gamma, it'd turn into a project of it's own...

Actually, it's not nearly as hard as it sounds -- it depends on the 
distribution though.  There are a lot of standard algorithms (Knuth 
might be good to check out).

CERN's numerics library, which I think Repast is using, has got some 
transformations in it.  We could start there.

> Thinking about it, it seems to me that it would be good enough to
> track down one or two good libraries supporting a wide variety of
> probability distributions and do the following:
> - package them together with mason if the licences are compatible and/or
> - update the mason documentation so that it links heavily to the
> selected libraries and explains how to use them

The primary issue license wise is: we're hesitant to include LGPL 
because it has some serious compatibility problems with Java and 
BSD-style licenses (like our own).  GPL is out entirely.  So if we can 
find a BSD-style it'd be best.  Else we could just roll our own.  For 
example, I might just implement some algorithms directly in 
MersenneTwisterFast, which would be the most convenient scenario probably.

Let me know shat you find.