diff --git a/gtsam/discrete/DiscreteConditional.cpp b/gtsam/discrete/DiscreteConditional.cpp index f5ec20045..959f3f2ce 100644 --- a/gtsam/discrete/DiscreteConditional.cpp +++ b/gtsam/discrete/DiscreteConditional.cpp @@ -309,6 +309,10 @@ size_t DiscreteConditional::sample(const DiscreteValues& parentsValues, return value; // shortcut exit } } + + // Check if rng is nullptr, then assign default + rng = (rng == nullptr) ? &kRandomNumberGenerator : rng; + std::discrete_distribution distribution(p.begin(), p.end()); return distribution(*rng); } diff --git a/gtsam/discrete/TableDistribution.cpp b/gtsam/discrete/TableDistribution.cpp index 614918b74..b5a9f2c14 100644 --- a/gtsam/discrete/TableDistribution.cpp +++ b/gtsam/discrete/TableDistribution.cpp @@ -171,6 +171,10 @@ size_t TableDistribution::sample(const DiscreteValues& parentsValues, return value; // shortcut exit } } + + // Check if rng is nullptr, then assign default + rng = (rng == nullptr) ? &kRandomNumberGenerator : rng; + std::discrete_distribution distribution(p.begin(), p.end()); return distribution(*rng); }