thrust::random::normal_distribution
Defined in thrust/random/normal_distribution.h
-
template<typename RealType = double>
class normal_distribution : public detail::normal_distribution_base::type<double> A
normal_distribution
random number distribution produces floating point Normally distributed random numbers.The following code snippet demonstrates examples of using a
normal_distribution
with a random number engine to produce random values drawn from the Normal distribution with a given mean and variance:#include <thrust/random/linear_congruential_engine.h> #include <thrust/random/normal_distribution.h> int main() { // create a minstd_rand object to act as our source of randomness thrust::minstd_rand rng; // create a normal_distribution to produce floats from the Normal distribution // with mean 2.0 and standard deviation 3.5 thrust::random::normal_distribution<float> dist(2.0f, 3.5f); // write a random number to standard output std::cout << dist(rng) << std::endl; // write the mean of the distribution, just in case we forgot std::cout << dist.mean() << std::endl; // 2.0 is printed // and the standard deviation std::cout << dist.stddev() << std::endl; // 3.5 is printed return 0; }
- Template Parameters
RealType – The type of floating point number to produce.
Public Types
-
typedef RealType result_type
The type of the floating point number produced by this
normal_distribution
.
Public Functions
-
explicit normal_distribution(RealType mean = 0.0, RealType stddev = 1.0)
This constructor creates a new
normal_distribution
from two values defining the half-open interval of the distribution.- Parameters
mean – The mean (expected value) of the distribution. Defaults to
0.0
.stddev – The standard deviation of the distribution. Defaults to
1.0
.
-
explicit normal_distribution(const param_type &parm)
This constructor creates a new
normal_distribution
from aparam_type
object encapsulating the range of the distribution.- Parameters
parm – A
param_type
object encapsulating the parameters (i.e., the mean and standard deviation) of the distribution.
-
void reset()
Calling this member function guarantees that subsequent uses of this
normal_distribution
do not depend on values produced by any random number generator prior to invoking this function.
-
template<typename UniformRandomNumberGenerator>
result_type operator()(UniformRandomNumberGenerator &urng) This method produces a new Normal random integer drawn from this
normal_distribution's
range using aUniformRandomNumberGenerator
as a source of randomness.- Parameters
urng – The
UniformRandomNumberGenerator
to use as a source of randomness.
-
template<typename UniformRandomNumberGenerator>
result_type operator()(UniformRandomNumberGenerator &urng, const param_type &parm) This method produces a new Normal random integer as if by creating a new
normal_distribution
from the givenparam_type
object, and calling itsoperator()
method with the givenUniformRandomNumberGenerator
as a source of randomness.- Parameters
urng – The
UniformRandomNumberGenerator
to use as a source of randomness.parm – A
param_type
object encapsulating the parameters of thenormal_distribution
to draw from.
-
result_type mean() const
This method returns the value of the parameter with which this
normal_distribution
was constructed.- Returns
The mean (expected value) of this
normal_distribution's
output.
-
result_type stddev() const
This method returns the value of the parameter with which this
normal_distribution
was constructed.- Returns
The standard deviation of this
uniform_real_distribution's
output.
-
param_type param() const
This method returns a
param_type
object encapsulating the parameters with which thisnormal_distribution
was constructed.- Returns
A
param_type
object encapsulating the parameters (i.e., the mean and standard deviation) of thisnormal_distribution
.
-
void param(const param_type &parm)
This method changes the parameters of this
normal_distribution
using the values encapsulated in a givenparam_type
object.- Parameters
parm – A
param_type
object encapsulating the new parameters (i.e., the mean and variance) of thisnormal_distribution
.
-
result_type min() const
This method returns the smallest floating point number this
normal_distribution
can potentially produce.- Returns
The lower bound of this
normal_distribution's
half-open interval.
-
result_type max() const
This method returns the smallest number larger than largest floating point number this
uniform_real_distribution
can potentially produce.- Returns
The upper bound of this
normal_distribution's
half-open interval.