Proposals:RandomNumbers

From KitwarePublic
Jump to navigationJump to search

Proposal

Resolve platform dependancies with current random number generation. Many registration algorithms depend on random sampling, exactly where I came across the problem.

Discussions

It would be great to standardize the random number generator to be sufficiently random, fast and generate the same sequences (from a given seed) across platforms. The discussion culminated with a post: http://www.itk.org/mailman/private/insight-developers/2005-January/006220.html I'm not sure any action happened on the suggestions.

More information on mailing list under "random number generator".


Mersenne Twister

It may be worth following the thread http://www.itk.org/mailman/private/insight-developers/2005-January/006189.html A stable portable may also be obtained from http://www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html


Boost library

The Boost site has a good library for random generators:

http://www.boost.org/libs/random/index.html

Among others, it contains an implementation of the Mersenne Twister. So it may be a helpful source for writing an itkMersenneTwister class, or something like that.

In a previous email to the ITK users mailing list I described some tests to check the actual 'randomness' of two random generators, vnl_sample (which is currently used in ITK) and vnl_random (which is in a more recent version of VXL):

http://public.kitware.com/pipermail/insight-users/2005-March/012341.html

It appeared that vnl_random is much better. What I didn't mention in this email, is that I also tested the MersenneTwister from the Boost library. It gave similar results as vnl_random.

So, I would say that the MersenneTwister indeed is a good option.

Current Status