Hi,

sanity checked x86_64-linux (both cases), committed to mainline.

Thanks,
Paolo.

/////////////////////////
2012-10-01  Paolo Carlini  <paolo.carl...@oracle.com>

        PR libstdc++/54757
        * include/ext/random (rice_distribution<>::operator()): Use std::hypot
        only if _GLIBCXX_USE_C99_MATH_TR1.
        * include/ext/random.tcc (rice_distribution<>::__generate_impl):
        Likewise.
Index: include/ext/random
===================================================================
--- include/ext/random  (revision 191942)
+++ include/ext/random  (working copy)
@@ -1042,7 +1042,11 @@
        {
          result_type __x = this->_M_ndx(__urng);
          result_type __y = this->_M_ndy(__urng);
+#if _GLIBCXX_USE_C99_MATH_TR1
          return std::hypot(__x, __y);
+#else
+         return std::sqrt(__x * __x + __y * __y);
+#endif
        }
 
       template<typename _UniformRandomNumberGenerator>
@@ -1054,7 +1058,11 @@
            __px(__p.nu(), __p.sigma()), __py(result_type(0), __p.sigma());
          result_type __x = this->_M_ndx(__px, __urng);
          result_type __y = this->_M_ndy(__py, __urng);
+#if _GLIBCXX_USE_C99_MATH_TR1
          return std::hypot(__x, __y);
+#else
+         return std::sqrt(__x * __x + __y * __y);
+#endif
        }
 
       template<typename _ForwardIterator,
Index: include/ext/random.tcc
===================================================================
--- include/ext/random.tcc      (revision 191942)
+++ include/ext/random.tcc      (working copy)
@@ -732,7 +732,11 @@
              __px(__p.nu(), __p.sigma()), __py(result_type(0), __p.sigma());
            result_type __x = this->_M_ndx(__px, __urng);
            result_type __y = this->_M_ndy(__py, __urng);
+#if _GLIBCXX_USE_C99_MATH_TR1
            *__f++ = std::hypot(__x, __y);
+#else
+           *__f++ = std::sqrt(__x * __x + __y * __y);
+#endif
          }
       }
 

Reply via email to