public member function
<random>

std::discard_block_engine::discard

void discard (unsigned long long z);
Advance internal state
Advances the internal state by z notches, as if operator() was called z times, but without generating any numbers in the process.

The effects on the state sequence are the same as if the transition algorithm was applied as many times as notches advanced on subsequent elements.

Parameters

z
Number of equivalent advances.

Return value

None

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// discard_block_engine::discard
#include <iostream>
#include <chrono>
#include <random>

int main ()
{
  // obtain a seed from the system clock:
  unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();

  // ranlux24 is a standard instantitation of discard_block_engine:
  std::ranlux24 generator (seed);

  std::cout << "Random value: " << generator() << std::endl;

  generator.discard(generator.used_block);  // advance an entire block

  std::cout << "Random value: " << generator() << std::endl;

  return 0;
}

Possible output:
Random value: 6747515
Random value: 8481690


Complexity

Linear in z.

See also