JuliaRandom / JuliaRandom/RandomNumbers.jl
Generic gen_seed method
- Dominant language
- Julia
- Stars
- 100
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
I see that `gen_seed` is a common function for all RNGs in `RandomNumbers`. It would be useful to able to call `gen_seed(rng)` and have it return the appropriately sized tuple for that rng. This could make code more generic.
I can't see whether this is currently possible. My workaround has been:
```
Base.length(::Type{NTuple{N,T}}) where {N,T} = N
seed_length(rng) = length(seed_type(rng))
gen_seed(rng::RandomNumbers.AbstractRNG) = gen_seed(output_type(rng), seed_length(rng))
```
Not sure if `Base.length` is the right function to extend here, or if there already exists a function for this.
Contributor guide
No contributing guide indexed for this repository
Research direction
Search the RandomNumbers.jl sources for gen_seed, seed_type, output_type, and AbstractRNG to understand the existing seed API. Compare the requested gen_seed(rng) behavior with the current RNG implementations and the workaround in the issue. Done means a generic call returns an appropriately sized tuple for each RNG and the relevant tests cover that behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100