r250#
The 32-bit generalized feedback shift register pseudorandom number generator GFSR(250,103) [Kirkpatrick81].
Description
Feedback shift register generators possess ample theoretical foundation and were initially intended for cryptographic and communication applications. The stream state is the array of 250 32-bit integers.
Generation algorithm
class r250#
Syntax
namespace oneapi::mkl::rng {
class r250 {
public:
static constexpr std::uint32_t default_seed = 1;
r250(sycl::queue queue, std::uint32_t seed = default_seed);
r250(sycl::queue queue, std::vector<std::uint32_t> seed);
r250(const r250& other);
r250(r250&& other);
r250& operator=(const r250& other);
r250& operator=(r250&& other);
~r250();
};
}
Class Members
Routine |
Description |
|---|---|
Constructor for common seed initialization of the engine |
|
Constructor for extended seed initialization of the engine |
|
Copy constructor |
|
Move constructor |
|
Copy assignment operator |
|
Move assignment operator |
Constructors
r250::r250(sycl::queue queue, std::uint32_t seed = default_seed)
Input Parameters
- queue
Valid sycl::queue object, calls of the oneapi::mkl::rng::generate() routine submits kernels in this queue to obtain random numbers from a given engine.
- seed
The initial conditions of the generator state, assume
. If , assume . Other values in state are initialized according to recurrent correlation . Then the values are interpreted as a binary matrix of size 32 x 32 and diagonal bits are set to 0, the under-diagonal bits to 0.
r250::r250(sycl::queue queue, std::vector<std::uint32_t> seed)
Input Parameters
- queue
Valid
sycl::queueobject, calls of the oneapi::mkl::rng::generate() routine submits kernels in this queue to obtain random numbers from a given engine.- seed
The initial conditions of the generator state if
r250::r250(const r250& other)
Input Parameters
- other
Valid
r250object. Thequeueand state of the other engine is copied and applied to the current engine.
r250::r250(r250&& other)
Input Parameters
- other
Valid
r250object. Thequeueand state of the other engine is moved to the current engine.
r250::r250& operator=(const r250& other)
Input Parameters
- other
Valid
r250object. Thequeueand state of the other engine is copied and applied to the current engine.
r250::r250& operator=(r250&& other)
Input Parameters
- other
Valid
r250r-value object. Thequeueand state of the other engine is moved to the current engine.
Parent topic: Engines (Basic Random Number Generators)