views:

52

answers:

2

How do I use the random number generators in Parallel Colt from incanter?

I've listed these dependencies in my project.clj file:

:dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [incanter/core "1.2.3"] [incanter/parallelcolt "0.9.4"]]

And then I tried (import cern.jet.random.tdouble Normal) and I get a class java.lang.ClassNotFoundException.

What am I doing wrong here?

+4  A: 

You don't need to call Parallel Colt directly to generate random numbers in Incanter. There are two different methods.

First, there is the original random number generator functions in incanter.stats:

sample-normal sample-poisson sample-uniform sample-t sample-net-binomial sample-binomial etc..

Each function takes the number of values to generate, as its first argument, as well as optional args for setting the parameters of the distribution to draw from. For instance, to draw 100 values from a normal distribution with a mean of -2 and a standard deviation of sqrt of 0.5, do this:

(use '[incanter core stats]) (sample-normal 100 :mean -2 :sd (sqrt 0.5))

The second method for generating random numbers is to use functions in the incanter.distributions namespace.

(require '[incanter.distributions :as dist]) (dist/draw (dist/normal-distribution -2 (sqrt 0.5)))

David

liebke
+3  A: 

liebke may have addressed your domain-specific need here but re importing:

1) Make sure you run lein deps

2) The syntax for import is (import [cern.jet.random.tdouble Normal]) or (import cern.jet.random.tdouble.Normal)

Justin Kramer
Thanks I forgot to run lein deps, and that's why nothing was working.
Ranjit