philox4x32x10
Description
A Philox4x32-10 counter-based pseudorandom number generator [Salmon11].
API
Syntax
namespace oneapi::mkl::rng::device {
template<std::int32_t VecSize = 1>
class philox4x32x10 {
public:
static constexpr std::uint64_t default_seed = 1;
static constexpr std::int32_t vec_size = VecSize;
philox4x32x10() : philox4x32x10(default_seed) {}
philox4x32x10(std::uint64_t seed, std::uint64_t offset = 0);
philox4x32x10(std::initializer_list<std::uint64_t> seed, std::uint64_t offset = 0);
philox4x32x10(std::uint64_t seed, std::initializer_list<std::uint64_t> offset);
philox4x32x10(std::initializer_list<std::uint64_t> seed, std::initializer_list<std::uint64_t> offset);
};
}
Include Files
oneapi/mkl/rng/device.hpp
Template Parameters
Name |
Type |
Description |
---|---|---|
VecSize |
std::int32_t |
Describes the size of the vector that will be produced by the generate function with this engine. VecSize values can be 1, 2, 3, 4, 8, or 16 as the sycl:vec class size. By default, VecSize = 1; for this case, the generate function returns a single random number. |
Constructors Input Parameters
Name |
Type |
Description |
---|---|---|
seed |
std::uint64_t std::initializer_list<std::uint64_t> |
Initial conditions of the engine state. |
offset |
std::uint64_t std::initializer_list<std::uint64_t> |
Number of skipped elements, for initializer_list offset is calculated as: num_to_skip[0]+ num_to_skip [1]*264+ num_to_skip [2] * 2128+ … +num_to_skip[n-1]*264 * (n-1). |
See VS Notes for detailed descriptions.