mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lance Norskog (JIRA)" <>
Subject [jira] [Commented] (MAHOUT-687) Random generator objects- slight refactor
Date Fri, 06 May 2011 07:59:03 GMT


Lance Norskog commented on MAHOUT-687:

bq. If you want setSeed() to work on MersenneTwisterRNG, that's easy with a different one-line
change that makes a new generator.
A deterministic random matrix or vector needs to set the seed for each multiply. This fix
would create too much garbage. (Each MersenneTwister has 2500 bytes!) Once you say you need
Commons MersenneTwister instead, because it has a setSeed(long), the rest of the patch ticks
bq. Removing Uncommons Maths is not necessarily a goal, but I'd support it. 
Other chatter on the list talked about pushing uncommons out completely. One step at a time.
bq. It's replacing seeding based on /dev/urandom or SecureRandom with a simple increasing
Oops- thought I changed that back. 
The patch is clearly not finished. If a test fails because it relies on a deterministic result,
that's easy to fix. If a test fails otherwise, probably the test does not supply enough data
points for the algorithm to function. From a quick look, LogLikelihoodTest may have this problem.

> Random generator objects- slight refactor
> -----------------------------------------
>                 Key: MAHOUT-687
>                 URL:
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Lance Norskog
>            Priority: Minor
>         Attachments: MAHOUT-687.patch
> Problems:
> * Uncommons MersenneTwisterRNG, the default RandomUtils.getRandom(), ignores setSeed
without throwing an error.
> * The project wants to move off Uncommons anyway.
> This patch uses the org.apache.commons.math.random.RandomGenerator classes instead of
org.apache.uncommons.maths.RepeatableRNG classes.
> Testcases: All math test cases pass except for org.apache.mahout.math.stats.LogLikelihoodTest.

> Other package tests fail that are mostly about testing random-oriented classes; not a
> Almost all tests that use random numbers in algorithms still pass; this is a good sign
of their stability.
> .
> Still, a lot of tests have to be fiddled to make this commit.

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message