Reference:Rand.inc
A collection of macros for generating random numbers, as well as 4 predefined random number streams: RdmA, RdmB, RdmC,
and RdmD
. There are macros for creating random numbers in a flat distribution (all numbers equally likely) in various ranges, and a variety of other distributions.
Flat Distributions
SRand(Stream)
: Signed rand(), returns random numbers in the range [-1, 1].
Parameters:
Stream
= Random number stream.
RRand(Min, Max, Stream)
: Returns random numbers in the range [Min, Max].
Parameters:
Min
= The lower end of the output range.Max
= The upper end of the output range.Stream
= Random number stream.
VRand(Stream)
: Returns random vectors in a box from < 0, 0, 0> to < 1, 1, 1>
Parameters:
Stream
= Random number stream.
VRand_In_Box(PtA, PtB, Stream)
: Like VRand(), this macro returns a random vector in a box, but this version lets you specify the two corners of the box.
Parameters:
PtA
= Lower-left-bottom corner of box.PtB
= Upper-right-top corner of box.Stream
= Random number stream.
VRand_In_Sphere(Stream)
: Returns a random vector in a unit-radius sphere located at the origin.
Parameters:
Stream
= Random number stream.
VRand_On_Sphere(Stream)
: Returns a random vector on the surface of a unit-radius sphere located at the origin.
Parameters:
Stream
= Random number stream.
VRand_In_Obj(Object, Stream)
: This macro takes a solid object and returns a random point that is inside it. It does this by randomly sampling the bounding box of the object, and can be quite slow if the object occupies a small percentage of the volume of its bounding box (because it will take more attempts to find a point inside the object). This macro is best used on finite, solid objects (non-solid objects, such as meshes and bezier patches, do not have a defined inside, and will not work).
Parameters:
Object
= The object the macro chooses the points from.Stream
= Random number stream.
Other Distributions
Continuous Symmetric Distributions
Rand_Cauchy(Mu, Sigma, Stream)
: Cauchy distribution.
Parameters:
Mu
= Mean.Sigma
= Standard deviation.Stream
= Random number stream.
Rand_Student(N, Stream)
: Student's distribution.
Parameters:
N
= degrees of freedom.Stream
= Random number stream.
Rand_Normal(Mu, Sigma, Stream)
: Normal distribution.
Parameters:
Mu
= Mean.Sigma
= Standard deviation.Stream
= Random number stream.
Rand_Gauss(Mu, Sigma, Stream)
: Gaussian distribution. Like Rand_Normal(), but a bit faster.
Parameters:
Mu
= Mean.Sigma
= Standard deviation.Stream
= Random number stream.
Continuous Skewed Distributions
Rand_Spline(Spline, Stream)
: This macro takes a spline describing the desired distribution. The T value of the spline is the output value, and the .y value its chance of occuring.
Parameters:
Spline
= A spline determining the distribution.Stream
= Random number stream.
Rand_Gamma(Alpha, Beta, Stream)
: Gamma distribution.
Parameters:
Alpha
= Shape parameter > 0.Beta
= Scale parameter > 0.Stream
= Random number stream.
Rand_Beta(Alpha, Beta, Stream)
: Beta variate.
Parameters:
Alpha
= Shape Gamma1.Beta
= Scale Gamma2.Stream
= Random number stream.
Rand_Chi_Square(N, Stream)
: Chi Square random variate.
Parameters:
N
= Degrees of freedom (integer).Stream
= Random number stream.
Rand_F_Dist(N, M, Stream)
: F-distribution.
Parameters:
N, M
= Degrees of freedom.Stream
= Random number stream.
Rand_Tri(Min, Max, Mode, Stream)
: Triangular distribution
Parameters:
Min, Max, Mode
: Min < Mode < Max.Stream
= Random number stream.
Rand_Erlang(Mu, K, Stream)
: Erlang variate.
Parameters:
Mu
= Mean >= 0.K
= Number of exponential samples.Stream
= Random number stream.
Rand_Exp(Lambda, Stream)
: Exponential distribution.
Parameters:
Lambda
= rate = 1/mean.Stream
= Random number stream.
Rand_Lognormal(Mu, Sigma, Stream)
: Lognormal distribution.
Parameters:
Mu
= Mean.Sigma
= Standard deviation.Stream
= Random number stream.
Rand_Pareto(Alpha, Stream)
: Pareto distribution.
Parameters:
Alpha
= ?Stream
= Random number stream.
Rand_Weibull(Alpha, Beta, Stream)
: Weibull distribution.
Parameters:
Alpha
= ?Beta
= ?Stream
= Random number stream.
Discrete Distributions
Rand_Bernoulli(P, Stream)
and Prob(P, Stream)
: Bernoulli distribution. Output is true with probability equal to the value of P and false with a probability of 1 - P.
Parameters:
P
= probability range (0-1).Stream
= Random number stream.
Rand_Binomial(N, P, Stream)
: Binomial distribution.
Parameters:
N
= Number of trials.P
= Probability (0-1)Stream
= Random number stream.
Rand_Geo(P, Stream)
: Geometric distribution.
Parameters:
P
= Probability (0-1).Stream
= Random number stream.
Rand_Poisson(Mu, Stream)
: Poisson distribution.
Parameters:
Mu
= Mean.Stream
= Random number stream.