# Template Class philox4x32_10_engine

- Defined in File rocrand.hpp

## Class Documentation

template<unsigned long long DefaultSeed = ROCRAND_PHILOX4x32_DEFAULT_SEED>
class philox4x32_10_engine

  Pseudorandom number engine based Philox algorithm.

  It generates random numbers of type `unsigned` `int` on the interval [0; 2^32 - 1]. Random numbers are generated in sets of four.

  Public Types

  typedef unsigned int result_type

    Type of values generated by the random number engine.

  typedef rocrand_ordering order_type

    Pseudo-random number engine ordering type. Represents the ordering of the results of a random number engine.

    See also: order()

  typedef unsigned long long offset_type

    Pseudo-random number engine offset type. Offset represents a number of the random number engine’s states that should be skipped before first value is generated.

    See also: offset()

  typedef unsigned long long seed_type

    Pseudo-random number engine seed type definition.

    See also: seed()

  Public Functions

  inline philox4x32_10_engine(seed_type seed_value = DefaultSeed, offset_type offset_value = 0, order_type order_value = ROCRAND_ORDERING_PSEUDO_DEFAULT)

    Constructs the pseudo-random number engine.

    See also: rocrand_create_generator()

    Parameters:

      - seed_value – - seed value to use in the initialization of the internal state, see also seed()

      - offset_value – - number of internal states that should be skipped, see also offset()

      - order_value – - ordering of the sequences generated by the engine, see also order()

  inline philox4x32_10_engine(rocrand_generator &generator)

    Constructs the pseudo-random number engine.

    The pseudo-random number engine will be created using `generator`. The constructed engine take ownership over `generator`, and sets passed reference to `NULL`. The lifetime of `generator` is now bound to the lifetime of the engine.

    Parameters:

      generator – - rocRAND generator

  inline ~philox4x32_10_engine() noexcept(false)

    Destructs the engine.

    See also: rocrand_destroy_generator()

  inline void stream(hipStream_t value)

    Sets the random number engine’s `hipStream` for kernel launches.

    Parameters:

      value – - new `hipStream` to use

  inline void order(order_type value)

    Sets the order of a random number engine.

    The order refers to the ordering of the sequences generated by the engine.

    - This operation resets the engine’s internal state.

    - This operation does not change the engine’s seed.

    See also: rocrand_set_ordering()

    Parameters:

      value – - New ordering

  inline void offset(offset_type value)

    Sets the offset of a random number engine.

    Offset represents a number of the random number engine’s states that should be skipped before first value is generated.

    - This operation resets the engine’s internal state.

    - This operation does not change the engine’s seed or the number of dimensions.

    See also: rocrand_set_offset()

    Parameters:

      value – - New absolute offset

  inline void seed(seed_type value)

    Sets the seed of the pseudo-random number engine.

    The seed is used to construct the initial state of an engine.

    - This operation resets the engine’s internal state.

    - This operation does not change the engine’s offset.

    See also: rocrand_set_seed()

    Parameters:

      value – - New seed value

  template<class Generator>
  inline void operator()(result_type *output, size_t size)

    Fills `output` with uniformly distributed random integer values.

    Generates `size` random integer values uniformly distributed on the interval [0, 2^32 - 1], and stores them into the device memory referenced by `output` pointer.

    The device memory pointed by `output` must have been previously allocated and be large enough to store at least `size` values of `IntType` type.

    See also: rocrand_generate()

    Parameters:

      - output – - Pointer to device memory to store results

      - size – - Number of values to generate

  inline result_type min() const

    Returns the smallest possible value that can be generated by the engine.

  inline result_type max() const

    Returns the largest possible value that can be generated by the engine.

  Public Static Functions

  static inline constexpr rocrand_rng_type type()

    Returns type of the rocRAND pseudo-random number generator associated with the engine.

  Public Static Attributes

  static constexpr seed_type default_seed = DefaultSeed

    The default seed equal to `DefaultSeed`.