DerivedSeed

struct DerivedSeed

A MixMaxRandom seed derived from a run seed plus the identity of the call site (seed type, job, channel, and stream index), so that every RNG stream in a run is independently and reproducibly seeded from a single top-level seed.

Public Types

enum SeedType

Values:

enumerator none
enumerator first_survey_generate
enumerator first_survey_unweight
enumerator second_survey_generate
enumerator second_survey_unweight
enumerator generator_generate
enumerator generator_unweight
enumerator combine_select
enumerator lhe_complete
enumerator unweight_pass
enumerator madnis_generate
enumerator madnis_unweight
enumerator madnis_sample_buffer
enumerator global_init

Public Functions

DerivedSeed(const std::optional<std::uint64_t> &seed = std::nullopt, SeedType seed_type = none, std::size_t job_index = 0, std::size_t channel_index = 0, std::size_t stream_index = 0)

Public Members

std::array<std::uint32_t, 4> seed_parts

Public Static Attributes

static constexpr std::size_t max_channel_count
static constexpr std::size_t max_job_count
static constexpr std::size_t max_stream_count