Vulcan Random Number Generator.
More...
#include <RNG.hpp>
|
| | RNG (uint64_t seed) |
| | Construct with explicit seed.
|
| | RNG (std::seed_seq &seq) |
| | Construct with seed sequence.
|
| | RNG (const RNG &)=delete |
| RNG & | operator= (const RNG &)=delete |
| | RNG (RNG &&)=default |
| RNG & | operator= (RNG &&)=default |
| result_type | operator() () |
| | Get raw random bits.
|
| double | gaussian () |
| | Generate standard normal N(0,1).
|
| double | gaussian (double mean, double stddev) |
| | Generate normal N(mean, stddev).
|
| double | uniform () |
| | Generate uniform [0, 1).
|
| double | uniform (double min, double max) |
| | Generate uniform [min, max).
|
| int64_t | uniform_int (int64_t min, int64_t max) |
| | Generate uniform integer [min, max].
|
| Eigen::Vector3d | gaussian3 () |
| | Fill 3-vector with independent N(0,1).
|
| template<int N> |
| Eigen::Vector< double, N > | gaussianN () |
| | Fill N-vector with independent N(0,1).
|
| Engine & | engine () |
| | Access underlying engine (for advanced use).
|
| const Engine & | engine () const |
| uint64_t | seed () const |
| | Get original seed (for logging/reproducibility).
|
| void | discard (uint64_t n) |
| | Discard n values (for stream splitting).
|
| void | reset () |
| | Reset to initial state with same seed.
|
| void | reseed (uint64_t new_seed) |
| | Reseed with new value.
|
Vulcan Random Number Generator.
Provides a convenient wrapper around std::mt19937_64 with methods for common distributions used in sensor simulation and Monte Carlo analysis.
Design principles:
- Explicit seeding required (no auto-seeding for reproducibility)
- Same seed produces identical sequence across all platforms
- Stores seed for logging/debugging
Example:
double x =
rng.gaussian();
double y =
rng.uniform(0, 10);
auto v =
rng.gaussian3();
Vulcan Random Number Generator.
Definition RNG.hpp:37
Definition Distributions.hpp:14
◆ Engine
◆ result_type
◆ RNG() [1/4]
| vulcan::rng::RNG::RNG |
( |
uint64_t | seed | ) |
|
|
inlineexplicit |
Construct with explicit seed.
- Parameters
-
| seed | Seed value (logged for reproducibility) |
◆ RNG() [2/4]
| vulcan::rng::RNG::RNG |
( |
std::seed_seq & | seq | ) |
|
|
inlineexplicit |
Construct with seed sequence.
Provides better initialization of MT19937's large state.
- Parameters
-
◆ RNG() [3/4]
| vulcan::rng::RNG::RNG |
( |
const RNG & | | ) |
|
|
delete |
◆ RNG() [4/4]
| vulcan::rng::RNG::RNG |
( |
RNG && | | ) |
|
|
default |
◆ discard()
| void vulcan::rng::RNG::discard |
( |
uint64_t | n | ) |
|
|
inline |
Discard n values (for stream splitting).
- Parameters
-
| n | Number of values to skip |
◆ engine() [1/2]
| Engine & vulcan::rng::RNG::engine |
( |
| ) |
|
|
inline |
Access underlying engine (for advanced use).
- Returns
- Reference to MT19937_64 engine
◆ engine() [2/2]
| const Engine & vulcan::rng::RNG::engine |
( |
| ) |
const |
|
inline |
◆ gaussian() [1/2]
| double vulcan::rng::RNG::gaussian |
( |
| ) |
|
|
inline |
Generate standard normal N(0,1).
- Returns
- Random sample from N(0,1)
◆ gaussian() [2/2]
| double vulcan::rng::RNG::gaussian |
( |
double | mean, |
|
|
double | stddev ) |
|
inline |
Generate normal N(mean, stddev).
- Parameters
-
| mean | Distribution mean |
| stddev | Distribution standard deviation |
- Returns
- Random sample from N(mean, stddev²)
◆ gaussian3()
| Eigen::Vector3d vulcan::rng::RNG::gaussian3 |
( |
| ) |
|
|
inline |
Fill 3-vector with independent N(0,1).
- Returns
- 3D vector of independent standard normal samples
◆ gaussianN()
template<int N>
| Eigen::Vector< double, N > vulcan::rng::RNG::gaussianN |
( |
| ) |
|
|
inline |
Fill N-vector with independent N(0,1).
- Template Parameters
-
- Returns
- N-dimensional vector of independent standard normal samples
◆ operator()()
Get raw random bits.
- Returns
- Random 64-bit value
◆ operator=() [1/2]
| RNG & vulcan::rng::RNG::operator= |
( |
const RNG & | | ) |
|
|
delete |
◆ operator=() [2/2]
| RNG & vulcan::rng::RNG::operator= |
( |
RNG && | | ) |
|
|
default |
◆ reseed()
| void vulcan::rng::RNG::reseed |
( |
uint64_t | new_seed | ) |
|
|
inline |
Reseed with new value.
- Parameters
-
◆ reset()
| void vulcan::rng::RNG::reset |
( |
| ) |
|
|
inline |
Reset to initial state with same seed.
Resets both the engine and distribution caches for full reproducibility.
◆ seed()
| uint64_t vulcan::rng::RNG::seed |
( |
| ) |
const |
|
inline |
Get original seed (for logging/reproducibility).
- Returns
- Seed used to initialize this RNG
- Note
- Returns 0 if constructed with seed_seq
◆ uniform() [1/2]
| double vulcan::rng::RNG::uniform |
( |
| ) |
|
|
inline |
Generate uniform [0, 1).
- Returns
- Random sample from U[0, 1)
◆ uniform() [2/2]
| double vulcan::rng::RNG::uniform |
( |
double | min, |
|
|
double | max ) |
|
inline |
Generate uniform [min, max).
- Parameters
-
| min | Minimum value (inclusive) |
| max | Maximum value (exclusive) |
- Returns
- Random sample from U[min, max)
◆ uniform_int()
| int64_t vulcan::rng::RNG::uniform_int |
( |
int64_t | min, |
|
|
int64_t | max ) |
|
inline |
Generate uniform integer [min, max].
- Parameters
-
| min | Minimum value (inclusive) |
| max | Maximum value (inclusive) |
- Returns
- Random integer from [min, max]
The documentation for this class was generated from the following file: