diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-02-12 10:26:54 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-02-12 10:26:54 +0000 |
commit | 60f3a59f296b3411cff8860e648a0d0a253b4a8b (patch) | |
tree | e64325ea4529758d77ed863a9c506b0ec5d31584 | |
parent | f80e0faf19690e5c92ca8b3eb5e920855e39c758 (diff) | |
download | gcc-60f3a59f296b3411cff8860e648a0d0a253b4a8b.zip gcc-60f3a59f296b3411cff8860e648a0d0a253b4a8b.tar.gz gcc-60f3a59f296b3411cff8860e648a0d0a253b4a8b.tar.bz2 |
random.tcc (__transform): Remove.
2013-02-12 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.tcc (__transform): Remove.
(__normalize): Add.
(discrete_distribution<>::param_type::_M_initialize): Adjust.
(piecewise_constant_distribution<>::param_type::_M_initialize):
Likewise.
(piecewise_linear_distribution<>::param_type::_M_initialize):
Likewise.
From-SVN: r195970
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/random.tcc | 27 |
2 files changed, 23 insertions, 14 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 56dddcd..8dfc294 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2013-02-12 Paolo Carlini <paolo.carlini@oracle.com> + + * include/bits/random.tcc (__transform): Remove. + (__normalize): Add. + (discrete_distribution<>::param_type::_M_initialize): Adjust. + (piecewise_constant_distribution<>::param_type::_M_initialize): + Likewise. + (piecewise_linear_distribution<>::param_type::_M_initialize): + Likewise. + 2013-02-11 Benjamin Kosnik <bkoz@redhat.com> * src/c++11/Makefile.am (hashtable_c++0x.lo, hashtable_c++0x.o): diff --git a/libstdc++-v3/include/bits/random.tcc b/libstdc++-v3/include/bits/random.tcc index acd4582..5b562b9 100644 --- a/libstdc++-v3/include/bits/random.tcc +++ b/libstdc++-v3/include/bits/random.tcc @@ -79,13 +79,13 @@ namespace std _GLIBCXX_VISIBILITY(default) } template<typename _InputIterator, typename _OutputIterator, - typename _UnaryOperation> + typename _Tp> _OutputIterator - __transform(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _UnaryOperation __unary_op) + __normalize(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, const _Tp& __factor) { for (; __first != __last; ++__first, ++__result) - *__result = __unary_op(*__first); + *__result = *__first / __factor; return __result; } @@ -2802,8 +2802,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const double __sum = std::accumulate(_M_prob.begin(), _M_prob.end(), 0.0); // Now normalize the probabilites. - __detail::__transform(_M_prob.begin(), _M_prob.end(), _M_prob.begin(), - std::bind2nd(std::divides<double>(), __sum)); + __detail::__normalize(_M_prob.begin(), _M_prob.end(), _M_prob.begin(), + __sum); // Accumulate partial sums. _M_cp.reserve(_M_prob.size()); std::partial_sum(_M_prob.begin(), _M_prob.end(), @@ -2955,8 +2955,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const double __sum = std::accumulate(_M_den.begin(), _M_den.end(), 0.0); - __detail::__transform(_M_den.begin(), _M_den.end(), _M_den.begin(), - std::bind2nd(std::divides<double>(), __sum)); + __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(), + __sum); _M_cp.reserve(_M_den.size()); std::partial_sum(_M_den.begin(), _M_den.end(), @@ -3189,14 +3189,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } // Now normalize the densities... - __detail::__transform(_M_den.begin(), _M_den.end(), _M_den.begin(), - std::bind2nd(std::divides<double>(), __sum)); + __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(), + __sum); // ... and partial sums... - __detail::__transform(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), - std::bind2nd(std::divides<double>(), __sum)); + __detail::__normalize(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), __sum); // ... and slopes. - __detail::__transform(_M_m.begin(), _M_m.end(), _M_m.begin(), - std::bind2nd(std::divides<double>(), __sum)); + __detail::__normalize(_M_m.begin(), _M_m.end(), _M_m.begin(), __sum); + // Make sure the last cumulative probablility is one. _M_cp[_M_cp.size() - 1] = 1.0; } |