View source code Display the source code in std/random.d from which this page was generated on github. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

std.random.uniform - multiple declarations

Function uniform

Returns a uniformly selected member of enum E. If no random number generator is passed, uses the default rndGen.

Prototypes

auto uniform(E, UniformRandomNumberGenerator)(
  UniformRandomNumberGenerator urng
)
if (is(E == enum) && isUniformRNG!UniformRandomNumberGenerator);

auto uniform(E)()
if (is(E == enum));

Parameters

NameDescription
urng (optional) random number generator to use; if not specified, defaults to rndGen

Returns

Random variate drawn with equal probability from any of the possible values of the enum E.

Example

enum Fruit { apple, mango, pear }
auto randFruit = uniform!Fruit();

Function uniform

Generates a uniformly-distributed number in the range [T.min, T.max] for any integral or character type T. If no random number generator is passed, uses the default rndGen.

Prototypes

auto uniform(T, UniformRandomNumberGenerator)(
  UniformRandomNumberGenerator urng
)
if (!is(T == enum) && (isIntegral!T || isSomeChar!T) && isUniformRNG!UniformRandomNumberGenerator);

auto uniform(T)()
if (!is(T == enum) && (isIntegral!T || isSomeChar!T));

Parameters

NameDescription
urng (optional) random number generator to use; if not specified, defaults to rndGen

Returns

Random variate drawn from the uniform distribution across all possible values of the integral or character type T.

Function uniform

Generates a number between a and b. The boundaries parameter controls the shape of the interval (open vs. closed on either side). Valid values for boundaries are "[]", "(]", "[)", and "()". The default interval is closed to the left and open to the right. The version that does not take urng uses the default generator rndGen.

Prototypes

auto uniform(string boundaries, T1, T2)(
  T1 a,
  T2 b
)
if (!is(CommonType!(T1, T2) == void));

auto uniform(string boundaries, T1, T2, UniformRandomNumberGenerator)(
  T1 a,
  T2 b,
  UniformRandomNumberGenerator urng
)
if (isFloatingPoint!(CommonType!(T1, T2)) && isUniformRNG!UniformRandomNumberGenerator);

Parameters

NameDescription
a lower bound of the uniform distribution
b upper bound of the uniform distribution
urng (optional) random number generator to use; if not specified, defaults to rndGen

Returns

A single random variate drawn from the uniform distribution between a and b, whose type is the common type of these parameters

Example

auto gen = Random(unpredictableSeed);
// Generate an integer in [0, 1023]
auto a = uniform(0, 1024, gen);
// Generate a float in [0, 1)
auto a = uniform(0.0f, 1.0f, gen);

Authors

Andrei Alexandrescu Masahiro Nakagawa (Xorshift random generator) Joseph Rushton Wakeling (Algorithm D for random sampling)

License

Boost License 1.0.

Comments