Care should be taken with this method not to encounter the
birthday problem, described
https://www.johndcook.com/blog/2016/01/29/random-number-generator-seed-mistakes/.
Since the `sitmo`

`threefry`

, this currently generates
one random deviate from the uniform distribution to seed the
engine `threefry`

and then run the code.

## Arguments

- shape, scale
shape and scale parameters, the latter defaulting to 1.

- n
number of observations. If

`length(n) > 1`

, the length is taken to be the number required.- ncores
Number of cores for the simulation

`rxnorm`

simulates using the threefry sitmo generator.`rxnormV`

used to simulate with the vandercorput simulator, but since it didn't satisfy the normal properties it was changed to simple be an alias of`rxnorm`

. It is no longer supported in`rxode2({})`

blocks

## Details

Therefore, a simple call to the random number generated followed by a second call to random number generated may have identical seeds. As the number of random number generator calls are increased the probability that the birthday problem will increase.

The key to avoid this problem is to either run all simulations in the
`rxode2`

environment once (therefore one seed or series of seeds
for the whole simulation), pre-generate all random variables
used for the simulation, or seed the rxode2 engine with `rxSetSeed()`

Internally each ID is seeded with a unique number so that the results do not depend on the number of cores used.

## Examples

```
# \donttest{
## Use threefry engine
# with rxweibull you have to explicitly state n
rxweibull(shape = 1, scale = 4, n = 10)
#> [1] 3.38395126 6.19722188 3.84734369 2.21973549 10.37015755 0.61922145
#> [7] 15.36768019 1.22637210 0.09650896 2.16265536
# You can parallelize the simulation using openMP
rxweibull(shape = 1, scale = 4, n = 10, ncores = 2)
#> [1] 2.36399417 1.76052260 2.00263924 0.48001680 1.10358707 0.09843464
#> [7] 2.00454395 1.69938698 3.09457548 7.49950264
rxweibull(3)
#> [1] 1.120598
## This example uses `rxweibull` directly in the model
rx <- function() {
model({
a <- rxweibull(1, 3)
})
}
et <- et(1, id = 1:2)
s <- rxSolve(rx, et)
#>
#>
#> ℹ parameter labels from comments are typically ignored in non-interactive mode
#> ℹ Need to run with the source intact to parse comments
#>
#>
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
# }
```