aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-08-15 09:08:31 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-08-15 09:08:31 +0000
commit64c23908ee23536e7333664003e9d60bf6e0f091 (patch)
tree2311f301fa23d72396f9e541b8979901c08a6ad8
parentbbddd5d0c275d744b9b1f0fc3c5078d0fd12840a (diff)
downloadgcc-64c23908ee23536e7333664003e9d60bf6e0f091.zip
gcc-64c23908ee23536e7333664003e9d60bf6e0f091.tar.gz
gcc-64c23908ee23536e7333664003e9d60bf6e0f091.tar.bz2
random.tcc (mersenne_twister<>::operator()): Revert last change (per gcc-patches/2006-08/msg00484.html).
2006-08-15 Paolo Carlini <pcarlini@suse.de> * include/tr1/random.tcc (mersenne_twister<>::operator()): Revert last change (per gcc-patches/2006-08/msg00484.html). From-SVN: r116151
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/tr1/random.tcc9
2 files changed, 10 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index bf29f81..3998b7e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-15 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/random.tcc (mersenne_twister<>::operator()): Revert
+ last change (per gcc-patches/2006-08/msg00484.html).
+
2006-08-14 Paolo Carlini <pcarlini@suse.de>
* include/tr1/random (class poisson_distribution<>): Add.
diff --git a/libstdc++-v3/include/tr1/random.tcc b/libstdc++-v3/include/tr1/random.tcc
index 42b53a0..5051a96 100644
--- a/libstdc++-v3/include/tr1/random.tcc
+++ b/libstdc++-v3/include/tr1/random.tcc
@@ -285,13 +285,13 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
{
const _UIntType __upper_mask = (~_UIntType()) << __r;
const _UIntType __lower_mask = ~__upper_mask;
- const _UIntType __fx[2] = { 0, __a };
for (int __k = 0; __k < (__n - __m); ++__k)
{
_UIntType __y = ((_M_x[__k] & __upper_mask)
| (_M_x[__k + 1] & __lower_mask));
- _M_x[__k] = _M_x[__k + __m] ^ (__y >> 1) ^ __fx[__y & 0x01];
+ _M_x[__k] = (_M_x[__k + __m] ^ (__y >> 1)
+ ^ ((__y & 0x01) ? __a : 0));
}
for (int __k = (__n - __m); __k < (__n - 1); ++__k)
@@ -299,12 +299,13 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
_UIntType __y = ((_M_x[__k] & __upper_mask)
| (_M_x[__k + 1] & __lower_mask));
_M_x[__k] = (_M_x[__k + (__m - __n)] ^ (__y >> 1)
- ^ __fx[__y & 0x01]);
+ ^ ((__y & 0x01) ? __a : 0));
}
_UIntType __y = ((_M_x[__n - 1] & __upper_mask)
| (_M_x[0] & __lower_mask));
- _M_x[__n - 1] = _M_x[__m - 1] ^ (__y >> 1) ^ __fx[__y & 0x01];
+ _M_x[__n - 1] = (_M_x[__m - 1] ^ (__y >> 1)
+ ^ ((__y & 0x01) ? __a : 0));
_M_p = 0;
}