diff --git a/include/boost/math/quadrature/naive_monte_carlo.hpp b/include/boost/math/quadrature/naive_monte_carlo.hpp index 05e9d59d1..fb4cb7ba5 100644 --- a/include/boost/math/quadrature/naive_monte_carlo.hpp +++ b/include/boost/math/quadrature/naive_monte_carlo.hpp @@ -130,11 +130,11 @@ public: { for (size_t j = 0; j < m_lbs.size(); ++j) { - x[j] = (gen()+1)*inv_denom; - while (x[j] < numeric_limits::epsilon() || x[j] > 1 - numeric_limits::epsilon()) + do { x[j] = (gen()+1)*inv_denom; } + while (x[j] < numeric_limits::epsilon() || x[j] > 1 - numeric_limits::epsilon()); } Real y = m_integrand(x); m_thread_averages.emplace(i, y); @@ -308,11 +308,11 @@ private: { for (size_t i = 0; i < m_lbs.size(); ++i) { - x[i] = (gen()+1)*inv_denom; - while (x[i] < numeric_limits::epsilon() || x[i] > 1 - numeric_limits::epsilon()) + do { x[i] = (gen()+1)*inv_denom; } + while (x[i] < numeric_limits::epsilon() || x[i] > 1 - numeric_limits::epsilon()); } Real f = m_integrand(x); ++k;