Subversion Repositories public iLand

Rev

Rev 289 | Rev 431 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 289 Rev 349
Line 52... Line 52...
52
52
53
// cool random number generator (using the mersenne-twister) by http://www-personal.umich.edu/~wagnerr/MersenneTwister.html
53
// cool random number generator (using the mersenne-twister) by http://www-personal.umich.edu/~wagnerr/MersenneTwister.html
54
#include "../3rdparty/MersenneTwister.h"
54
#include "../3rdparty/MersenneTwister.h"
55
// access the Mersenne-Twister-Random-Numbers
55
// access the Mersenne-Twister-Random-Numbers
56
MTRand &mtRand(); // static object lives in globalsettings
56
MTRand &mtRand(); // static object lives in globalsettings
57
/// nrandom returns a random number from [p1, p2]
-
 
-
 
57
/// nrandom returns a random number from [p1, p2] -> p2 is a possible result!
58
inline double nrandom(const double& p1, const double& p2)
58
inline double nrandom(const double& p1, const double& p2)
59
{
59
{
60
    return p1 + mtRand().rand(p2-p1);
60
    return p1 + mtRand().rand(p2-p1);
61
    //return p1 + (p2-p1)*(rand()/double(RAND_MAX));
61
    //return p1 + (p2-p1)*(rand()/double(RAND_MAX));
62
}
62
}
63
/// returns a random number in [0,1]
-
 
-
 
63
/// returns a random number in [0,1] (i.e.="1" is a possible result!)
64
inline double drandom()
64
inline double drandom()
65
{
65
{
66
    return mtRand().rand();
66
    return mtRand().rand();
67
    //return rand()/double(RAND_MAX);
67
    //return rand()/double(RAND_MAX);
68
}
68
}
-
 
69
/// return a random number from "from" to "to" (incl.), i.e. irandom(3,5) results in 3, 4 or 5.
69
inline int irandom(int from, int to)
70
inline int irandom(int from, int to)
70
{
71
{
71
    return from + mtRand().randInt(to-from);
72
    return from + mtRand().randInt(to-from);
72
    //return from +  rand()%(to-from);
73
    //return from +  rand()%(to-from);
73
}
74
}