From 2d20cd31f25c3949218dbb9a3a6350be5c961319 Mon Sep 17 00:00:00 2001 From: "Paul P.H. Wilson" Date: Thu, 16 Mar 2023 14:37:05 -0500 Subject: [PATCH] initialize Discrete distribution with sequence of integers --- include/openmc/distribution.h | 1 + src/distribution.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/openmc/distribution.h b/include/openmc/distribution.h index 815ffa21a5..86aa4a3819 100644 --- a/include/openmc/distribution.h +++ b/include/openmc/distribution.h @@ -39,6 +39,7 @@ class Discrete : public Distribution { public: explicit Discrete(pugi::xml_node node); Discrete(const double* x, const double* p, int n); + Discrete(const double* p, int n); //! Sample a value from the distribution //! \param seed Pseudorandom number seed pointer diff --git a/src/distribution.cpp b/src/distribution.cpp index 4b4ebd69d7..ce2a85705c 100644 --- a/src/distribution.cpp +++ b/src/distribution.cpp @@ -41,6 +41,19 @@ Discrete::Discrete(const double* x, const double* p, int n) this->init_alias(x_vec, p_vec); } +Discrete::Discrete(const double* p, int n) +{ + std::vector p_vec(p, p + n); + std::vector x_vec(n); + + for (int i=0; iinit_alias(x_vec, p_vec); +} + void Discrete::init_alias(vector& x, vector& p) { x_ = x;