Class template uniform_real_distribution

boost::compute::uniform_real_distribution — Produces uniformily distributed random floating-point numbers.


// In header: <boost/compute/random/uniform_real_distribution.hpp>

template<typename RealType = float> 
class uniform_real_distribution {
  // types
  typedef RealType result_type;

  // construct/copy/destruct
  uniform_real_distribution(RealType = 0.f, RealType = 1.f);

  // public member functions
  result_type a() const;
  result_type b() const;
  template<typename OutputIterator, typename Generator> 
    void generate(OutputIterator, OutputIterator, Generator &, 
                  command_queue &);


The following example shows how to setup a uniform real distribution to produce random float values between 1 and 100.

// initialize the default random engine
boost::compute::default_random_engine engine(queue);

// setup the uniform distribution to produce floats between 1 and 100
boost::compute::uniform_real_distribution<float> distribution(1.0f, 100.0f);

// generate the random values and store them to 'vec'
distribution.generate(vec.begin(), vec.end(), engine, queue);

See Also:

default_random_engine, normal_distribution

uniform_real_distribution public construct/copy/destruct

  1. uniform_real_distribution(RealType a = 0.f, RealType b = 1.f);

    Creates a new uniform distribution producing numbers in the range [a, b).

  2. ~uniform_real_distribution();
    Destroys the uniform_real_distribution object.

uniform_real_distribution public member functions

  1. result_type a() const;
    Returns the minimum value of the distribution.
  2. result_type b() const;
    Returns the maximum value of the distribution.
  3. template<typename OutputIterator, typename Generator> 
      void generate(OutputIterator first, OutputIterator last, 
                    Generator & generator, command_queue & queue);

    Generates uniformily distributed floating-point numbers and stores them to the range [first, last).