... committed this follow up. See Audit trail for details.

Paolo.

//////////////////
2013-02-04  Manuel López-Ibáñez  <m...@gcc.gnu.org>
            Paolo Carlini  <paolo.carl...@oracle.com>

        PR libstdc++/56202 (again)
        * include/bits/random.tcc (binomial_distribution<>::
        _M_waiting(_UniformRandomNumberGenerator&, _IntType)): Fix thinko
        in previous commit.

        * include/bits/random.h: Fix comment typo.
Index: include/bits/random.h
===================================================================
--- include/bits/random.h       (revision 195721)
+++ include/bits/random.h       (working copy)
@@ -3770,7 +3770,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    * @brief A discrete binomial random number distribution.
    *
    * The formula for the binomial probability density function is
-   * @f$p(i|t,p) = \binom{n}{i} p^i (1 - p)^{t - i}@f$ where @f$t@f$
+   * @f$p(i|t,p) = \binom{t}{i} p^i (1 - p)^{t - i}@f$ where @f$t@f$
    * and @f$p@f$ are the parameters of the distribution.
    */
   template<typename _IntType = int>
Index: include/bits/random.tcc
===================================================================
--- include/bits/random.tcc     (revision 195722)
+++ include/bits/random.tcc     (working copy)
@@ -1657,13 +1657,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
        do
          {
+           if (__t == __x)
+             return __x;
            const double __e = -std::log(1.0 - __aurng());
-           if (__t == __x)
-             {
-               if (__e)
-                 return __x;
-               continue;
-             }
            __sum += __e / (__t - __x);
            __x += 1;
          }

Reply via email to