Skip to contents

nv_set_seed() seeds the global random state, like base R's set.seed(). Until it is set, its first use derives it from base R's RNG. nv_get_rng_state() and nv_set_rng_state() save and restore it, and local_nv_seed() and with_nv_seed() seed it for a scope.

See the Random Number Generation article for more details.

Usage

nv_set_seed(seed)

nv_get_rng_state()

nv_set_rng_state(rng_state)

local_nv_seed(seed, envir = parent.frame())

with_nv_seed(seed, code)

Arguments

seed

(integer(1))
The seed, a 32-bit integer.

rng_state

(AnvlRngState)
A random state, as nv_get_rng_state() returns.

envir

(environment)
The scope whose exit restores the global random state.

code

(any)
An expression to evaluate with the seeded global random state.

Value

nv_set_seed(), local_nv_seed() and nv_set_rng_state() return NULL, invisibly; with_nv_seed() returns the result of evaluating code. nv_get_rng_state() returns a copy of the global random state, an AnvlRngState.

Examples

nv_set_seed(42L)
nv_runif(3L)
#> AnvlArray
#>  0.5303
#>  0.3134
#>  0.9015
#> [ CPUf32{3} ] 
nv_set_seed(42L)
nv_runif(3L)
#> AnvlArray
#>  0.5303
#>  0.3134
#>  0.9015
#> [ CPUf32{3} ] 

# save the random state and continue from it later
rng_state <- nv_get_rng_state()
nv_runif(2L)
#> AnvlArray
#>  0.7277
#>  0.7879
#> [ CPUf32{2} ] 
nv_set_rng_state(rng_state)
nv_runif(2L)
#> AnvlArray
#>  0.7277
#>  0.7879
#> [ CPUf32{2} ] 

with_nv_seed(1L, nv_runif(2L))
#> AnvlArray
#>  0.7026
#>  0.2348
#> [ CPUf32{2} ]