From f92ea393f23a602ef56227e057091fd4a6f811d3 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Mon, 20 Jun 2022 06:39:55 -0500 Subject: [PATCH] Using np.random.choice in Mixture class --- openmc/stats/univariate.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index ae89cb79fa..5528bdb303 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -1135,12 +1135,9 @@ class Mixture(Univariate): def sample(self, n_samples=1, seed=None): np.random.seed(seed) - xi = np.random.rand(n_samples) - idx = np.zeros_like(xi, dtype=int) - for i, c in enumerate(self.cdf()[:-1]): - idx[xi >= c] = i + idx = np.random.choice(self.distribution, n_samples, p=self.probability) - out = np.zeros_like(xi) + out = np.zeros_like(idx) for i in np.unique(idx): n_dist_samples = np.count_nonzero(idx == i) samples = self.distribution[i].sample(n_dist_samples)