aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-02-12 10:26:54 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-02-12 10:26:54 +0000
commit60f3a59f296b3411cff8860e648a0d0a253b4a8b (patch)
treee64325ea4529758d77ed863a9c506b0ec5d31584
parentf80e0faf19690e5c92ca8b3eb5e920855e39c758 (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--libstdc++-v3/include/bits/random.tcc27
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;
}