mcg59#

Description#

The 59-bit multiplicative congruential pseudorandom number generator MCG(1313, 259) from NAG Numerical Libraries [NAG].

API#

Syntax#

namespace oneapi::mkl::rng::device {
  template<std::int32_t VecSize = 1>
  class mcg59 {
  public:
    static constexpr std::uint32_t default_seed = 1;
    static constexpr std::int32_t vec_size = VecSize;

    mcg59() : mcg59(default_seed) {}
    mcg59(std::uint32_t seed, std::uint64_t offset = 0);
    mcg59(std::initializer_list<std::uint32_t> seed, std::uint64_t offset = 0);
  };
}

Include Files#

  • oneapi/mkl/rng/device.hpp

Template Parameters#

Name

Type

Description

VecSize

std::int32_t

Describes the size of vector that will be produced by generate function by this engine. VecSize values may be 1, 2, 3, 4, 8, 16 as sycl::vec class size. By default VecSize = 1, for this case, a single random number is returned by the generate function.

Constructors Input Parameters#

Name

Type

Description

seed

std::uint32_t std::initializer_list<std::uint32_t>

Initial conditions of the engine state.

offset

std::uint64_t

Number of skipped elements.

See VS Notes for detailed descriptions.