niederreiter¶
The niederreiter generator is a 32-bit Gray code-based quasi-random number generator.
Description
According to results of Bratley, Fox and Niederreiter [Bratley92] Niederreiter sequences have the best known theoretical asymptotic properties. The default dimension of quasi-random vectors can vary from 1 to 318 inclusive. It is also allowed to register user-defined parameters (irreducible polynomials).
Generation algorithm
The value
class niederreiter¶
Syntax
namespace oneapi::mkl::rng {
class niederreiter {
public:
static constexpr std::uint32_t default_dimensions_number = 1;
niederreiter(sycl::queue queue, std::uint32_t dimensions = default_dimensions_number);
niederreiter(sycl::queue queue, std::vector<std::uint32_t>& irred_polynomials);
niederreiter(const niederreiter& other);
niederreiter(niederreiter&& other);
niederreiter& operator=(const niederreiter& other);
niederreiter& operator=(niederreiter&& other);
~niederreiter();
};
}
Class Members
Routine |
Description |
---|---|
niederreiter(sycl::queue queue, std::uint32_t dimensions = default_dimensions_number) |
Constructor with specified number of dimensions. The value should be |
niederreiter(sycl::queue queue, std::vector<std::uint32_t>& irred_polynomials) |
Constructor for extended use-case, when it’s needed to use the number of dimensions greater than 318 or obtain another sequence. |
Copy constructor |
|
Move constructor |
|
Copy assignment operator |
|
Move assignment operator |
Constructors
niederreiter::niederreiter(sycl::queue queue, std::uint32_t dimensions = default_dimensions_number)
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.- dimensions
Number of dimensions. If
or , assume .
niederreiter::niederreiter(sycl::queue queue, std::vector<std::uint32_t>& irred_polynomials)
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.- irred_polynomials
If you want to generate quasi-random vectors of greater dimension or obtain another sequence, you can register a set of your own irreducible polynomials. The number of dimensions corresponds to the length of the vector.
niederreiter::niederreiter(const niederreiter& other)
Input Parameters
- other
Valid
niederreiter
object. Thequeue
and state of the other engine is copied and applied to the current engine.
niederreiter::niederreiter(niederreiter&& other)
Input Parameters
- other
Valid
niederreiter
object. Thequeue
and state of the other engine is moved to the current engine.
niederreiter::niederreiter& operator=(const niederreiter& other)
Input Parameters
- other
Valid
niederreiter
object. Thequeue
and state of the other engine is copied and applied to the current engine.
niederreiter::niederreiter& operator=(niederreiter&& other)
Input Parameters
- other
Valid
niederreiter
r-value object. Thequeue
and state of the other engine is moved to the current engine.
Parent topic: Engines (Basic Random Number Generators)