aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-08-22 22:57:53 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-08-22 22:57:53 +0000
commit53fdb339085978c4cf051feca17e65d3e7de45e7 (patch)
treeade2726bfd9742ea1d0e6f215b5e2f8f3327f311
parenta25ce4dbf97245d64ec5f32787eebee6beafec76 (diff)
downloadgcc-53fdb339085978c4cf051feca17e65d3e7de45e7.zip
gcc-53fdb339085978c4cf051feca17e65d3e7de45e7.tar.gz
gcc-53fdb339085978c4cf051feca17e65d3e7de45e7.tar.bz2
random.tcc (subtract_with_carry_01<>:: seed(_Gen&, false_type)): Fix _M_carry initialization.
2006-08-22 Paolo Carlini <pcarlini@suse.de> * include/tr1/random.tcc (subtract_with_carry_01<>:: seed(_Gen&, false_type)): Fix _M_carry initialization. * testsuite/tr1/5_numerical_facilities/random/ subtract_with_carry/cons/default.cc: Qualify 1 as 1UL. * testsuite/tr1/5_numerical_facilities/random/ subtract_with_carry/cons/gen1.cc: Likewise. From-SVN: r116334
-rw-r--r--libstdc++-v3/ChangeLog10
-rw-r--r--libstdc++-v3/include/tr1/random.tcc10
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc2
4 files changed, 21 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8fcab06..9883347 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,15 @@
2006-08-22 Paolo Carlini <pcarlini@suse.de>
+ * include/tr1/random.tcc (subtract_with_carry_01<>::
+ seed(_Gen&, false_type)): Fix _M_carry initialization.
+
+ * testsuite/tr1/5_numerical_facilities/random/
+ subtract_with_carry/cons/default.cc: Qualify 1 as 1UL.
+ * testsuite/tr1/5_numerical_facilities/random/
+ subtract_with_carry/cons/gen1.cc: Likewise.
+
+2006-08-22 Paolo Carlini <pcarlini@suse.de>
+
* include/tr1/random (class subtract_with_carry_01<>): Add.
* include/tr1/random.tcc (subtract_with_carry_01<>::
seed(unsigned long), subtract_with_carry_01<>::
diff --git a/libstdc++-v3/include/tr1/random.tcc b/libstdc++-v3/include/tr1/random.tcc
index 2880aad5..cbeb57d 100644
--- a/libstdc++-v3/include/tr1/random.tcc
+++ b/libstdc++-v3/include/tr1/random.tcc
@@ -484,7 +484,15 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
_M_x[__i][__n - 1] = __mod<_UInt32Type, 1, 0,
_Shift<_UInt32Type, __w % 32>::__value>(__gen());
}
- _M_carry = (_M_x[long_lag - 1][0] == 0) ? 1 : 0;
+
+ _M_carry = 1;
+ for (int __j = 0; __j < __n; ++__j)
+ if (_M_x[long_lag - 1][__j] != 0)
+ {
+ _M_carry = 0;
+ break;
+ }
+
_M_p = 0;
// Initialize the array holding the negative powers of 2.
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
index 4663541..b87871d 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
@@ -32,7 +32,7 @@ test01()
subtract_with_carry<unsigned long, (1UL << 24), 10, 24> x;
VERIFY( x.min() == 0 );
- VERIFY( x.max() == ((1<<24)-1) );
+ VERIFY( x.max() == ((1UL << 24) - 1) );
VERIFY( x() == 15039276 );
}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
index cacde1b..5091445 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
@@ -40,7 +40,7 @@ test01()
subtract_with_carry<unsigned long, (1UL << 24), 10, 24> x(gen);
VERIFY( x.min() == 0 );
- VERIFY( x.max() == ((1 << 24) - 1) );
+ VERIFY( x.max() == ((1UL << 24) - 1) );
}
int main()