From 0934c5effccfc27724194fa543df703e580915cb Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Fri, 16 Jun 2006 23:04:51 +0000 Subject: [PATCH] random (uniform_real<>::uniform_real(_RealType, _RealType)): Implement. 2006-06-16 Paolo Carlini * include/tr1/random (uniform_real<>::uniform_real(_RealType, _RealType)): Implement. (uniform_real<>::min()): Likewise. (uniform_real<>::max()): Likewise. (uniform_real<>::reset()): Likewise. * include/tr1/random (class uniform_real<>): Minor cosmetic tweaks. From-SVN: r114730 --- libstdc++-v3/ChangeLog | 10 ++++++++++ libstdc++-v3/include/tr1/random | 19 +++++++++++++------ .../pb_ds/regression/hash_data_map_rand.cc | 2 +- .../pb_ds/regression/hash_no_data_map_rand.cc | 2 +- .../regression/list_update_data_map_rand.cc | 2 +- .../list_update_no_data_map_rand.cc | 2 +- .../pb_ds/regression/priority_queue_rand.cc | 2 +- .../pb_ds/regression/tree_data_map_rand.cc | 2 +- .../pb_ds/regression/tree_no_data_map_rand.cc | 2 +- .../pb_ds/regression/trie_data_map_rand.cc | 2 +- .../pb_ds/regression/trie_no_data_map_rand.cc | 2 +- 11 files changed, 32 insertions(+), 15 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b4217ec3ad6..66f3497eeff 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2006-06-16 Paolo Carlini + + * include/tr1/random (uniform_real<>::uniform_real(_RealType, + _RealType)): Implement. + (uniform_real<>::min()): Likewise. + (uniform_real<>::max()): Likewise. + (uniform_real<>::reset()): Likewise. + + * include/tr1/random (class uniform_real<>): Minor cosmetic tweaks. + 2006-06-16 Paolo Carlini * include/bits/locale_facets.tcc (time_get<>::_M_extract_via_format): diff --git a/libstdc++-v3/include/tr1/random b/libstdc++-v3/include/tr1/random index 4973b162b08..0f4ab01d50e 100644 --- a/libstdc++-v3/include/tr1/random +++ b/libstdc++-v3/include/tr1/random @@ -1595,20 +1595,27 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1) */ explicit uniform_real(_RealType __min = _RealType(0), - _RealType __max = _RealType(1)); + _RealType __max = _RealType(1)) + : _M_min(__min), _M_max(__max) + { + _GLIBCXX_DEBUG_ASSERT(_M_min <= _M_max); + } result_type - min() const; + min() const + { return _M_min; } result_type - max() const; + max() const + { return _M_max; } - void reset(); + void + reset() { } template result_type operator()(_UniformRandomNumberGenerator& __urng) - { return (__urng() * (max() - min())) + min(); } + { return (__urng() * (_M_max - _M_min)) + _M_min; } /** * Inserts a %uniform_real random number distribution @p __x into the @@ -1624,7 +1631,7 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1) friend std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const uniform_real& __x) - { return __os << __x.min() << " " << __x.max(); } + { return __os << __x._M_min << " " << __x._M_max; } /** * Extracts a %unform_real random number distribution diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc index 06c51f53d1c..1dc658a16f2 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef hash_map_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "hash_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc index 50bf33344cd..0f9dc314d2a 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef hash_set_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "hash_no_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc index d184844f1ae..d3a1cb8e9c4 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef lu_map_tl_t map_tl_t; - return rand_regression_test(100, 10, + return rand_regression_test(10, 1, "lu_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc index ae70c1ea6a3..79f1d9d1f83 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef lu_set_tl_t map_tl_t; - return rand_regression_test(100, 10, + return rand_regression_test(10, 1, "lu_no_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc index 6266e13d0ca..8830210323e 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc @@ -52,7 +52,7 @@ int main(int argc, char* a_p_argv[]) { using namespace pb_ds::test; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "tree_no_data_map_rand_regression_test", pq_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc index 4a51facf439..21e18e7a2d8 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef tree_map_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "tree_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc index 4d3c8ff510f..d2abc5f750b 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef tree_set_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "tree_no_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc index e6841970cbd..4b350e57541 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef trie_map_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "trie_data_map_rand_regression_test", map_tl_t()); } diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc index b8af58cdb8b..a64511f31d2 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc @@ -54,7 +54,7 @@ main(int argc, char* a_p_argv[]) using namespace pb_ds::test; typedef trie_set_tl_t map_tl_t; - return rand_regression_test(10000, 10000, + return rand_regression_test(1000, 1000, "trie_no_data_map_rand_regression_test", map_tl_t()); } -- 2.30.2