dpnp.random.Philox4x3210

class dpnp.random.Philox4x3210(seed=None, *, counter=None, key=None, device=None, sycl_queue=None)[source]

A Philox4x32-10 counter-based bit generator on the device.

The generator of Salmon et al. (2011), with a 64-bit key and a 128-bit counter, as implemented by the oneMKL device RNG API. It is not the same as numpy.random.Philox, which is Philox4x64-10.

Parameters:
seed{None, int, array_like[ints], SeedSequence}, optional

The entropy the key is derived from, unless key is given. See dpnp.random.BitGenerator.

Default: None.

counter{None, int}, optional

The initial 128-bit counter.

Default: None, which starts from 0.

key{None, int}, optional

The 64-bit key. Mutually exclusive with seed.

Default: None, which derives the key from seed.

device{None, string, SyclDevice, SyclQueue, Device}, optional

See dpnp.random.BitGenerator.

Default: None.

sycl_queue{None, SyclQueue}, optional

See dpnp.random.BitGenerator.

Default: None.

Notes

Every call that produces n values takes ceil(n / 8) blocks of 2**64 counter values, one for each work-item of the kernel, and every work-item draws as many values as its rejection samplers need from its own block. The values therefore depend only on the state and the output size, and are the same on every device.