Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

Class template discard_block



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

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

  // construct/copy/destruct
  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;


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);