Class template uniform_real_distribution

| Home | Libraries | People | FAQ | More

## Class template uniform_real_distribution

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

## Synopsis

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

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

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

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

## Description

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`).