| Home | Libraries | People | FAQ | More

## Class template discard_block

boost::random::discard_block

## Synopsis

    // In header: <boost/random/discard_block.hpp>

    template<typename UniformRandomNumberGenerator, unsigned int p,
             unsigned int r>
    class discard_block {
    public:
      // types
      typedef UniformRandomNumberGenerator base_type;
      typedef base_type::result_type       result_type;

      // construct/copy/destruct
      discard_block();
      discard_block(const base_type &);
      template<typename T> discard_block(T);
      template<typename It> discard_block(It &, It);

      // public member functions
      void seed();
      template<typename T> void seed(T);
      template<typename It> void seed(It &, It);
      const base_type & base() const;
      result_type operator()();
      result_type min() const;
      result_type max() const;

      // public static functions
      static bool validation(result_type);
      static const bool has_fixed_range;
      static const unsigned int total_block;
      static const unsigned int returned_block;
    };

## Description

The class template discard_block is a model of pseudo-random number generator . It modifies another generator by discarding parts of its output. Out of every block of `r` results, the first `p` will be returned and the rest discarded.

Requires: 0 < p <= r

### `discard_block` public construct/copy/destruct

1.     discard_block();

2.     discard_block(const base_type & rng);

3.     template<typename T> discard_block(T s);

4.     template<typename It> discard_block(It & first, It last);

### `discard_block` public member functions

1.     void seed();

2.     template<typename T> void seed(T s);

3.     template<typename It> void seed(It & first, It last);

4.     const base_type & base() const;

5.     result_type operator()();

6.     result_type min() const;

7.     result_type max() const;

### `discard_block` public static functions

1.     static bool validation(result_type x);