I have used COLT before with great results. I highly recommend checking it out.

On Sat, Jul 4, 2009 at 4:50 PM, John McManus <[log in to unmask]> wrote:
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 (http://acs.lbl.gov/~hoschek/colt/).

Colt and others are listed at (http://math.nist.gov/javanumerics/).

John



-----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.

Sean