aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext/random
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2012-11-02 10:45:25 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2012-11-02 10:45:25 +0000
commit5bcb3b4d80d9d973acafe9d5a1c12d151b4b99fa (patch)
treed54af44b8ee5ba85ab8df357749ea2eb1793fdb2 /libstdc++-v3/include/ext/random
parente570b479ae5a8b733348724368f13c5d465fc3e6 (diff)
downloadgcc-5bcb3b4d80d9d973acafe9d5a1c12d151b4b99fa.zip
gcc-5bcb3b4d80d9d973acafe9d5a1c12d151b4b99fa.tar.gz
gcc-5bcb3b4d80d9d973acafe9d5a1c12d151b4b99fa.tar.bz2
re PR libstdc++/55169 (std::discrete_distribution::operator(generator&) makes unnecessary copy of parameter vector)
2012-11-02 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/55169 * include/bits/random.h: Remove all uses of param(). (chi_squared_distribution<>::__generate_impl(_ForwardIterator, _ForwardIterator, _UniformRandomNumberGenerator&): Declare * include/bits/random.tcc: ... define. * include/ext/random: Remove all uses of param(). From-SVN: r193092
Diffstat (limited to 'libstdc++-v3/include/ext/random')
-rw-r--r--libstdc++-v3/include/ext/random53
1 files changed, 26 insertions, 27 deletions
diff --git a/libstdc++-v3/include/ext/random b/libstdc++-v3/include/ext/random
index adf8a24..79ee599 100644
--- a/libstdc++-v3/include/ext/random
+++ b/libstdc++-v3/include/ext/random
@@ -510,7 +510,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _UniformRandomNumberGenerator>
result_type
operator()(_UniformRandomNumberGenerator& __urng)
- { return this->operator()(__urng, this->param()); }
+ { return this->operator()(__urng, _M_param); }
template<typename _UniformRandomNumberGenerator>
result_type
@@ -522,7 +522,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -540,6 +540,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ this->__generate_impl(__f, __t, __urng, __p); }
/**
+ * @brief Return true if two beta distributions have the same
+ * parameters and the sequences that would be generated
+ * are equal.
+ */
+ friend bool
+ operator==(const beta_distribution& __d1,
+ const beta_distribution& __d2)
+ { return __d1._M_param == __d2._M_param; }
+
+ /**
* @brief Inserts a %beta_distribution random number distribution
* @p __x into the output stream @p __os.
*
@@ -580,17 +590,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
/**
- * @brief Return true if two beta distributions have the same
- * parameters and the sequences that would be generated
- * are equal.
- */
- template<typename _RealType>
- inline bool
- operator==(const __gnu_cxx::beta_distribution<_RealType>& __d1,
- const __gnu_cxx::beta_distribution<_RealType>& __d2)
- { return __d1.param() == __d2.param(); }
-
- /**
* @brief Return true if two beta distributions are different.
*/
template<typename _RealType>
@@ -809,7 +808,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _UniformRandomNumberGenerator>
result_type
operator()(_UniformRandomNumberGenerator& __urng)
- { return this->operator()(__urng, this->param()); }
+ { return this->operator()(__urng, _M_param); }
template<typename _UniformRandomNumberGenerator>
result_type
@@ -821,7 +820,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { return this->__generate_impl(__f, __t, __urng, this->param()); }
+ { return this->__generate_impl(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -1073,7 +1072,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -1098,7 +1097,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const rice_distribution& __d1,
const rice_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_ndx == __d2._M_ndx
&& __d1._M_ndy == __d2._M_ndy); }
@@ -1296,7 +1295,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -1321,7 +1320,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const nakagami_distribution& __d1,
const nakagami_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_gd == __d2._M_gd); }
/**
@@ -1532,7 +1531,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -1557,7 +1556,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const pareto_distribution& __d1,
const pareto_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_ud == __d2._M_ud); }
/**
@@ -1774,7 +1773,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -1799,7 +1798,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const k_distribution& __d1,
const k_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_gd1 == __d2._M_gd1
&& __d1._M_gd2 == __d2._M_gd2); }
@@ -2006,7 +2005,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -2031,7 +2030,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const arcsine_distribution& __d1,
const arcsine_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_ud == __d2._M_ud); }
/**
@@ -2241,7 +2240,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
__generate(_ForwardIterator __f, _ForwardIterator __t,
_UniformRandomNumberGenerator& __urng)
- { this->__generate(__f, __t, __urng, this->param()); }
+ { this->__generate(__f, __t, __urng, _M_param); }
template<typename _ForwardIterator,
typename _UniformRandomNumberGenerator>
@@ -2266,7 +2265,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const hoyt_distribution& __d1,
const hoyt_distribution& __d2)
- { return (__d1.param() == __d2.param()
+ { return (__d1._M_param == __d2._M_param
&& __d1._M_ad == __d2._M_ad
&& __d1._M_ed == __d2._M_ed); }