summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-03 14:26:14 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-03 14:26:14 +0000
commit8b88dda3fb9c57a00e4b93569db5a3a2d9713070 (patch)
treea68073ec26c09be20eb5bb3e4fe2c4d7f5e263fa /libstdc++-v3/testsuite
parenta379e3a91e351e8f1e153c634b090f0e3089f829 (diff)
downloadgcc-8b88dda3fb9c57a00e4b93569db5a3a2d9713070.tar.gz
2006-10-03 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/native_type/priority_queue/native_pq_tag.hpp: Remove. * testsuite/util/statistic/sample_var.hpp: Rename to... * testsuite/util/statistic/sample_variance.hpp: ... this. * testsuite/util/statistic/res_recorder.hpp: Rename to... * testsuite/util/statistic/result_recorder.hpp: ... this. * testsuite/util/statistic/sample_mean.hpp: Format. * testsuite/util/statistic/sample_mean_confidence_checker.hpp: Same. * testsuite/util/regression/trait/priority_queue/trait.hpp: Same. * testsuite/util/regression/trait/erase_if_fn.hpp: Same. * testsuite/util/regression/trait/assoc/trait.hpp: Same. * testsuite/util/native_type/priority_queue/ native_priority_queue.hpp: Same. * testsuite/util/native_type/assoc/native_tree_tag.hpp: Same. * testsuite/util/native_type/assoc/native_hash_tag.hpp: Same. * testsuite/util/native_type/assoc/native_hash_map.hpp: Same. * testsuite/util/performance/priority_queue/timing/join_test.hpp: Same. * testsuite/util/performance/priority_queue/timing/ modify_test.hpp: Same. * testsuite/util/performance/assoc/timing/ subscript_insert_test.hpp: Same. * testsuite/util/performance/time/timing_test_base.hpp: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117397 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp2
-rw-r--r--libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp2
-rw-r--r--libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp2
-rw-r--r--libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp63
-rw-r--r--libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp118
-rw-r--r--libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp1
-rw-r--r--libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp15
-rw-r--r--libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp79
-rw-r--r--libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp8
-rw-r--r--libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp54
-rw-r--r--libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp32
-rw-r--r--libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp57
-rw-r--r--libstdc++-v3/testsuite/util/statistic/result_recorder.hpp (renamed from libstdc++-v3/testsuite/util/statistic/res_recorder.hpp)79
-rw-r--r--libstdc++-v3/testsuite/util/statistic/sample_mean.hpp14
-rw-r--r--libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp24
-rw-r--r--libstdc++-v3/testsuite/util/statistic/sample_variance.hpp (renamed from libstdc++-v3/testsuite/util/statistic/sample_var.hpp)23
16 files changed, 160 insertions, 413 deletions
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
index 889edf24e1b..d6eb835c483 100644
--- a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
@@ -134,5 +134,5 @@ namespace pb_ds
} // namespace test
} // namespace pb_ds
-#endif // #ifndef PB_DS_NATIVE_HASH_MAP_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
index 4c6c80b4275..d4a19c2bda1 100644
--- a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
@@ -55,4 +55,4 @@ namespace pb_ds
} // namespace test
} // namespace pb_ds
-#endif // #ifndef PB_DS_NATIVE_HASH_DS_TAG_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
index 079f1489bfa..e8f8e705fb6 100644
--- a/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
@@ -56,4 +56,4 @@ namespace pb_ds
} // namespace test
} // namespace pb_ds
-#endif // #ifndef PB_DS_NATIVE_TREE_DS_TAG_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp
deleted file mode 100644
index 8b0357c99d5..00000000000
--- a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the terms
-// of the GNU General Public License as published by the Free Software
-// Foundation; either version 2, or (at your option) any later
-// version.
-
-// This library is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING. If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
-
-// As a special exception, you may use this file as part of a free
-// software library without restriction. Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to
-// produce an executable, this file does not by itself cause the
-// resulting executable to be covered by the GNU General Public
-// License. This exception does not however invalidate any other
-// reasons why the executable file might be covered by the GNU General
-// Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice
-// and this permission notice appear in supporting documentation. None
-// of the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied
-// warranty.
-
-/**
- * @file native_tree_tag.hpp
- * Contains a tag for native tree-based containers
- */
-
-#ifndef PB_DS_NATIVE_PQ_DS_TAG_HPP
-#define PB_DS_NATIVE_PQ_DS_TAG_HPP
-
-namespace pb_ds
-{
-
- namespace test
- {
-
- struct native_pq_tag
- { };
-
- } // namespace test
-
-} // namespace pb_ds
-
-#endif // #ifndef PB_DS_NATIVE_PQ_DS_TAG_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
index d8a2865c0f0..88b2697c4bd 100644
--- a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
+++ b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
@@ -47,87 +47,66 @@
#ifndef PB_DS_NATIVE_PRIORITY_QUEUE_HPP
#define PB_DS_NATIVE_PRIORITY_QUEUE_HPP
-#include <ext/pb_ds/detail/standard_policies.hpp>
-#include <ext/pb_ds/detail/type_utils.hpp>
-#include <native_type/priority_queue/native_pq_tag.hpp>
-#include <io/xml.hpp>
#include <string>
#include <vector>
#include <queue>
#include <deque>
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <io/xml.hpp>
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
- template<typename Value_Type, bool Vector, class Allocator>
+ template<typename Value_Type, bool Vector, typename Allocator>
struct base_seq
{
- typedef
- std::vector<
- Value_Type,
- typename Allocator::template rebind<
- Value_Type>::other>
- type;
+ private:
+ typedef typename Allocator::template rebind<Value_Type> value_rebind;
+
+ public:
+ typedef std::vector<Value_Type, typename value_rebind::other> type;
};
- template<typename Value_Type, class Allocator>
- struct base_seq<
- Value_Type,
- false,
- Allocator>
+ template<typename Value_Type, typename Allocator>
+ struct base_seq<Value_Type, false, Allocator>
{
- typedef
- std::deque<
- Value_Type,
- typename Allocator::template rebind<
- Value_Type>::other>
- type;
- };
+ private:
+ typedef typename Allocator::template rebind<Value_Type> value_rebind;
+ public:
+ typedef std::deque<Value_Type, typename value_rebind::other> type;
+ };
} // namespace detail
-#define PB_DS_CLASS_C_DEC \
- native_priority_queue< \
- Value_Type, \
- Vector, \
- Cmp_Fn, \
- Allocator>
+ struct native_pq_tag
+ { };
+
+#define PB_DS_CLASS_C_DEC \
+ native_priority_queue<Value_Type, Vector, Cmp_Fn, Allocator>
-#define PB_DS_BASE_C_DEC \
- std::priority_queue< \
- Value_Type, \
- typename detail::base_seq<Value_Type, Vector, Allocator>::type, \
- Cmp_Fn>
+#define PB_DS_BASE_C_DEC \
+ std::priority_queue<Value_Type, typename detail::base_seq<Value_Type, Vector, Allocator>::type, Cmp_Fn>
template<typename Value_Type,
bool Vector,
- class Cmp_Fn =
- std::less<Value_Type>,
- class Allocator = std::allocator<char> >
+ typename Cmp_Fn = std::less<Value_Type>,
+ typename Allocator = std::allocator<char> >
class native_priority_queue : public PB_DS_BASE_C_DEC
{
private:
typedef PB_DS_BASE_C_DEC base_type;
+ typedef typename Allocator::template rebind<Value_Type> value_rebind;
public:
typedef Value_Type value_type;
-
- typedef
- typename Allocator::template rebind<
- value_type>::other::const_reference
- const_reference;
-
+ typedef typename value_rebind::other::const_reference const_reference;
typedef native_pq_tag container_category;
-
typedef Cmp_Fn cmp_fn;
- public:
native_priority_queue() : base_type()
{ }
@@ -140,7 +119,6 @@ namespace pb_ds
{
if (Vector)
return ("n_pq_vector");
-
return ("n_pq_deque");
}
@@ -148,44 +126,36 @@ namespace pb_ds
desc()
{
if (Vector)
- return (make_xml_tag( "type", "value", "std::priority_queue_vector"));
-
- return (make_xml_tag( "type", "value", "std::priority_queue_deque"));
+ return make_xml_tag("type", "value", "std::priority_queue_vector");
+ return make_xml_tag("type", "value", "std::priority_queue_deque");
}
void
clear()
- {
- * static_cast<base_type* >(this) = base_type();
- }
+ { *static_cast<base_type*>(this) = base_type(); }
void
erase(const_reference r_val)
{
base_type tmp;
-
Cmp_Fn cmp;
while (cmp(base_type::top(), r_val) || cmp(r_val, base_type::top()))
{
tmp.push(base_type::top());
-
base_type::pop();
}
if (!base_type::empty())
{
base_type::pop();
-
while (!base_type::empty())
{
tmp.push(base_type::top());
-
base_type::pop();
}
}
-
- * static_cast<base_type* >(this) = tmp;
+ *static_cast<base_type* >(this) = tmp;
}
template<typename Pred>
@@ -193,21 +163,17 @@ namespace pb_ds
erase_if(Pred pred)
{
base_type tmp;
-
std::size_t ersd = 0;
-
while (!base_type::empty())
{
if (!pred(base_type::top()))
tmp.push(base_type::top());
else
++ersd;
-
base_type::pop();
}
- * static_cast<base_type* >(this) = tmp;
-
+ *static_cast<base_type*>(this) = tmp;
return ersd;
}
@@ -216,27 +182,22 @@ namespace pb_ds
split(Pred pred, PB_DS_CLASS_C_DEC& other)
{
base_type tmp;
-
other.clear();
-
while (!base_type::empty())
{
if (!pred(base_type::top()))
tmp.push(base_type::top());
else
other.push(base_type::top());
-
base_type::pop();
}
-
- * static_cast<base_type* >(this) = tmp;
+ *static_cast<base_type*>(this) = tmp;
}
void
modify(const_reference r_old, const_reference r_new)
{
erase(r_old);
-
push(r_new);
}
@@ -244,37 +205,30 @@ namespace pb_ds
join(PB_DS_CLASS_C_DEC& other)
{
std::vector<value_type> a_tmp;
-
while (!base_type::empty())
{
a_tmp.push_back(base_type::top());
-
base_type::pop();
}
while (!other.empty())
{
a_tmp.push_back(other.top());
-
other.pop();
}
- * static_cast<base_type* >(this) = base_type(a_tmp.begin(), a_tmp.end());
+ *static_cast<base_type*>(this) = base_type(a_tmp.begin(), a_tmp.end());
}
Cmp_Fn
get_cmp_fn() const
- {
- return Cmp_Fn();
- }
+ { return Cmp_Fn(); }
};
#undef PB_DS_BASE_C_DEC
-
#undef PB_DS_CLASS_C_DEC
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_NATIVE_PRIORITY_QUEUE_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
index 1e067c0e9de..3b9efb02978 100644
--- a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
@@ -50,7 +50,6 @@
#include <performance/time/timing_test_base.hpp>
#include <performance/io/xml_formatter.hpp>
#include <common_type/assoc/string_form.hpp>
-#include <statistic/res_recorder.hpp>
#include <iterator>
namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
index 2e3dde281c8..d04f9041b3c 100644
--- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
@@ -128,6 +128,9 @@ namespace pb_ds
using pb_ds::test::detail::double_push_functor;
using pb_ds::test::detail::double_push_join_functor;
typedef pb_ds::test::detail::timing_test_base base_type;
+ typedef double_push_functor<It, Cntnr> psh_fnct;
+ typedef double_push_join_functor<It, Cntnr> psh_jn_fnct;
+
typedef xml_result_set_performance_formatter formatter_type;
formatter_type res(string_form<Cntnr>::name(),
string_form<Cntnr>::desc());
@@ -139,12 +142,12 @@ namespace pb_ds
It e = m_ins_b;
std::advance(e, v);
- double_push_functor<It, Cntnr> double_push_fn(b, e);
- const double double_push_res = base_type::operator()(double_push_fn);
- double_push_join_functor<It, Cntnr> double_push_join_fn(b, e);
- const double double_push_join_res = base_type::operator()(double_push_join_fn);
-
- const double effective_delta = std::max(double_push_join_res - double_push_res, base_type::min_time_res());
+ psh_fnct double_push_fn(b, e);
+ const double dbl_psh_res = base_type::operator()(double_push_fn);
+ psh_jn_fnct dbl_psh_jn_fn(b, e);
+ const double dbl_psh_jn_res = base_type::operator()(dbl_psh_jn_fn);
+ const double min_res = double(timing_test_base::min_time_res());
+ const double effective_delta = std::max(dbl_psh_jn_res - dbl_psh_res, min_res);
res.add_res(v, effective_delta / v);
}
}
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
index 4e76bb5d894..33c7e58bdd1 100644
--- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
@@ -59,6 +59,7 @@ namespace pb_ds
{
namespace detail
{
+ // Primary templates.
template<typename It, class Cntnr, class Tag>
class push_functor
{
@@ -123,6 +124,7 @@ namespace pb_ds
const value_type m_mod_val;
};
+ // Specializations.
template<typename It, class Cntnr>
class push_functor<It, Cntnr, pb_ds::binary_heap_tag>
{
@@ -149,6 +151,33 @@ namespace pb_ds
};
template<typename It, class Cntnr>
+ class push_functor<It, Cntnr, pb_ds::test::native_pq_tag>
+ {
+ public:
+ push_functor(It ins_it_b, It ins_it_e)
+ : m_ins_it_b(ins_it_b), m_ins_it_e(ins_it_e)
+ { }
+
+ void
+ operator()(std::size_t resolution)
+ {
+ typedef typename Cntnr::const_reference const_reference;
+ for (std::size_t i = 0; i < resolution; ++i)
+ {
+ Cntnr c;
+
+ for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+ c.push(const_reference(ins_it->first));
+ }
+ }
+
+ private:
+ const It m_ins_it_b;
+ const It m_ins_it_e;
+ };
+
+
+ template<typename It, class Cntnr>
class push_modify_functor<It, Cntnr, pb_ds::binary_heap_tag>
{
private:
@@ -191,32 +220,6 @@ namespace pb_ds
};
template<typename It, class Cntnr>
- class push_functor<It, Cntnr, pb_ds::test::native_pq_tag>
- {
- public:
- push_functor(It ins_it_b, It ins_it_e)
- : m_ins_it_b(ins_it_b), m_ins_it_e(ins_it_e)
- { }
-
- void
- operator()(std::size_t resolution)
- {
- typedef typename Cntnr::const_reference const_reference;
- for (std::size_t i = 0; i < resolution; ++i)
- {
- Cntnr c;
-
- for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
- c.push(const_reference(ins_it->first));
- }
- }
-
- private:
- const It m_ins_it_b;
- const It m_ins_it_e;
- };
-
- template<typename It, class Cntnr>
class push_modify_functor<It, Cntnr, pb_ds::test::native_pq_tag>
{
private:
@@ -291,8 +294,9 @@ namespace pb_ds
typedef typename Cntnr::value_type value_type;
typedef typename Cntnr::container_category container_category;
typedef typename Cntnr::const_reference const_reference;
- typedef pb_ds::test::detail::timing_test_base timing_test_base;
-
+ typedef detail::timing_test_base timing_test_base;
+ typedef detail::push_functor<It, Cntnr, container_category> psh_fnct;
+ typedef detail::push_modify_functor<It, Cntnr, container_category> psh_mod_fnct;
typedef xml_result_set_performance_formatter formatter_type;
formatter_type res_set_fmt(string_form<Cntnr>::name(),
string_form<Cntnr>::desc());
@@ -300,14 +304,12 @@ namespace pb_ds
for (size_t i = 0; m_ins_vn + i * m_ins_vs < m_ins_vm; ++i)
{
const size_t v = m_ins_vn + i * m_ins_vs;
- It b = m_ins_b;
+ It b = m_ins_b;
It e = m_ins_b;
std::advance(e, v);
- pb_ds::test::detail::push_functor<It, Cntnr, container_category>
- push_fn( b, e);
-
- const double push_res = timing_test_base::operator()(push_fn);
+ psh_fnct psh_fn(b, e);
+ const double psh_res = timing_test_base::operator()(psh_fn);
value_type val = b->first;
{
@@ -320,13 +322,12 @@ namespace pb_ds
}
}
- pb_ds::test::detail::push_modify_functor<It, Cntnr, container_category>
- push_modify_fn(b, e, val);
-
- const double push_modify_res = timing_test_base::operator()(push_modify_fn);
+ psh_mod_fnct psh_mod_fn(b, e, val);
+ const double psh_mod_res = timing_test_base::operator()(psh_mod_fn);
- const double effective_delta = std::max(push_modify_res - push_res,
- timing_test_base::min_time_res());
+ const double min_res = double(timing_test_base::min_time_res());
+ const double effective_delta = std::max(psh_mod_res - psh_res,
+ min_res);
res_set_fmt.add_res(v, effective_delta / v);
}
diff --git a/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp b/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
index c9121fe3f48..a56d2c21313 100644
--- a/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
+++ b/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
@@ -48,7 +48,7 @@
#define PB_DS_TIMING_TEST_BASE_HPP
#include <performance/time/elapsed_timer.hpp>
-#include <statistic/res_recorder.hpp>
+#include <statistic/result_recorder.hpp>
namespace pb_ds
{
@@ -81,12 +81,12 @@ namespace pb_ds
timing_test_base::operator()(Functor& fn)
{
const std::size_t resolution = get_min_resolution(fn);
- pb_ds::test::detail::res_recorder<double> rec;
+ pb_ds::test::detail::result_recorder<double> rec;
double res;
do
res = run_at_resolution(fn, resolution);
- while (rec.add_res(res) == false);
- res = rec.sample_mean() / resolution;
+ while (rec.add_result(res) == false);
+ res = rec.get_sample_mean() / resolution;
return res;
}
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
index 65a63630f6f..9f571107df0 100644
--- a/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
@@ -101,22 +101,15 @@ namespace detail
{
private:
typedef PB_DS_NATIVE_TYPE_TRAITS_C_DEC native_type_traits_base;
-
typedef PB_DS_TYPE_TRAITS_C_DEC type_traits_base;
public:
typedef typename Cntnr::key_type key_type;
-
typedef typename Cntnr::const_key_reference const_key_reference;
-
typedef typename Cntnr::value_type value_type;
-
typedef typename Cntnr::const_reference const_reference;
-
typedef typename PB_DS_NATIVE_TYPE_TRAITS_C_DEC::type native_type;
-
typedef typename native_type::key_type native_key_type;
-
typedef typename native_type::value_type native_value_type;
enum
@@ -153,73 +146,49 @@ namespace detail
static void
print_container(const Cntnr& r_c, std::ostream& r_os)
- {
- PB_DS_TYPE_TRAITS_C_DEC::print_container(r_c, r_os);
- }
-
- public:
+ { PB_DS_TYPE_TRAITS_C_DEC::print_container(r_c, r_os); }
template<typename Gen>
static key_type
generate_key(Gen& r_gen, size_t max)
- {
- return PB_DS_TYPE_TRAITS_C_DEC::generate_key(r_gen, max);
- }
+ { return PB_DS_TYPE_TRAITS_C_DEC::generate_key(r_gen, max); }
template<typename Gen>
static value_type
generate_value(Gen& r_gen, size_t max)
- {
- return PB_DS_TYPE_TRAITS_C_DEC::generate_value(r_gen, max);
- }
+ { return PB_DS_TYPE_TRAITS_C_DEC::generate_value(r_gen, max); }
static const_key_reference
extract_key(const_reference r_val)
- {
- return type_traits_base::extract_key(r_val);
- }
+ { return type_traits_base::extract_key(r_val); }
static native_key_type
native_key(const_key_reference r_key)
- {
- return native_type_traits_base::native_key(r_key);
- }
+ { return native_type_traits_base::native_key(r_key); }
static native_value_type
native_value(const_reference r_val)
- {
- return native_type_traits_base::native_value(r_val);
- }
+ { return native_type_traits_base::native_value(r_val); }
static const native_key_type&
extract_native_key(const native_value_type& r_val)
- {
- return native_type_traits_base::extract_key(r_val);
- }
+ { return native_type_traits_base::extract_key(r_val); }
static bool
cmp(const_reference r_val, const native_value_type& r_native_val)
- {
- return val_to_string(r_val) == native_val_to_string(r_native_val);
- }
+ { return val_to_string(r_val) == native_val_to_string(r_native_val); }
static std::string
val_to_string(const_reference r_val)
- {
- return to_string(r_val);
- }
+ { return to_string(r_val); }
static std::string
key_to_string(const_key_reference r_key)
- {
- return to_string(r_key);
- }
+ { return to_string(r_key); }
static std::string
native_val_to_string(const native_value_type& r_native_val)
- {
- return to_string(r_native_val);
- }
+ { return to_string(r_native_val); }
static bool
prefix_match(const_key_reference r_key, const std::string& r_native_key)
@@ -232,7 +201,6 @@ namespace detail
return native_substr == (const std::string&) r_key;
}
-
};
#undef PB_DS_TYPE_TRAITS_C_DEC
diff --git a/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp b/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
index adab6b015ec..c583848c630 100644
--- a/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
+++ b/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
@@ -52,17 +52,13 @@
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
template<typename T>
- struct regression_test_erase_if_fn : public std::unary_function<
- T,
- bool>
+ struct regression_test_erase_if_fn
+ : public std::unary_function<T, bool>
{
private:
typedef const T& const_reference;
@@ -77,35 +73,23 @@ namespace pb_ds
};
template<typename Hd, class Tl>
- struct regression_test_erase_if_fn<
- std::pair<
- Hd,
- Tl> > : public std::unary_function<
- std::pair<
- Hd,
- Tl>,
- bool>
+ struct regression_test_erase_if_fn<std::pair<Hd, Tl> >
+ : public std::unary_function<std::pair<Hd, Tl>, bool>
{
private:
typedef const std::pair<Hd, Tl>& const_reference;
-
- typedef regression_test_erase_if_fn< Hd> hd_erase_if_fn;
-
- typedef regression_test_erase_if_fn< Tl> tl_erase_if_fn;
+ typedef regression_test_erase_if_fn<Hd> hd_erase_if_fn;
+ typedef regression_test_erase_if_fn<Tl> tl_erase_if_fn;
public:
bool
operator()(const_reference r_t) const
{
- return (hd_erase_if_fn()(r_t.first)&&
- tl_erase_if_fn()(r_t.second));
+ return (hd_erase_if_fn()(r_t.first) && tl_erase_if_fn()(r_t.second));
}
};
-
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_REGRESSION_TEST_ERASE_IF_FN_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
index 80ffe1f7836..641d9295cfb 100644
--- a/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
+++ b/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
@@ -52,82 +52,41 @@
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
-#define PB_DS_CLASS_T_DEC \
- template<typename Cntnr>
-
-#define PB_DS_CLASS_C_DEC \
- regression_test_traits< \
- Cntnr>
-
template<typename Cntnr>
struct regression_test_traits
{
-
- public:
-
typedef typename Cntnr::value_type value_type;
-
typedef typename Cntnr::const_reference const_reference;
-
- typedef
- pb_ds::test::native_priority_queue<
- std::string,
- true>
- native_type;
-
+ typedef pb_ds::test::native_priority_queue<std::string, true> native_type;
typedef typename native_type::value_type native_value_type;
template<typename T>
- struct erase_if_fn : public regression_test_erase_if_fn<
- T>
- {
-
- };
-
- public:
+ struct erase_if_fn : public regression_test_erase_if_fn<T>
+ { };
template<typename Gen>
static value_type
generate_value(Gen& r_gen, size_t max)
- {
- return basic_type(r_gen, max);
- }
+ { return basic_type(r_gen, max); }
static native_value_type
native_value(const_reference r_val)
- {
- return (native_value_type(r_val));
- }
+ { return native_value_type(r_val); }
static bool
cmp(const_reference r_val, const native_value_type& r_native_val)
- {
- return (val_to_string(r_val) == r_native_val);
- }
+ { return val_to_string(r_val) == r_native_val; }
static std::string
val_to_string(const_reference r_val)
- {
- return (std::string(r_val));
- }
-
+ { return std::string(r_val); }
};
-
-#undef PB_DS_CLASS_T_DEC
-
-#undef PB_DS_CLASS_C_DEC
-
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/statistic/res_recorder.hpp b/libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
index 98d169df8d4..2f8eaa5ccd2 100644
--- a/libstdc++-v3/testsuite/util/statistic/res_recorder.hpp
+++ b/libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
@@ -40,7 +40,7 @@
// warranty.
/**
- * @file res_recorder.hpp
+ * @file result_recorder.hpp
* Contains a class for recording results
*/
@@ -48,96 +48,61 @@
#define PB_DS_RES_RECORDER_HPP
#include <statistic/sample_mean.hpp>
-#include <statistic/sample_var.hpp>
+#include <statistic/sample_variance.hpp>
#include <statistic/sample_mean_confidence_checker.hpp>
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
-#define PB_DS_CLASS_T_DEC \
- template<typename Value_Type>
-
-#define PB_DS_CLASS_C_DEC \
- res_recorder< \
- Value_Type>
-
/*
* Records results until the probability that the sample mean is 10% away
- * from the true mean is ~ 0.05.
+ * from the true mean is ~ 0.05.
*/
- template<typename Value_Type = double>
- class res_recorder
+ template<typename Value_Type>
+ class result_recorder
{
public:
typedef Value_Type value_type;
- public:
- res_recorder();
+ result_recorder()
+ : m_sample_mean(value_type()), m_sample_var(value_type())
+ { }
bool
- add_res(value_type res);
+ add_result(value_type res);
inline value_type
- sample_mean() const;
+ get_sample_mean() const
+ { return m_sample_mean; }
private:
- typedef std::list< value_type> list_t;
-
- private:
- list_t m_l;
+ typedef std::list<value_type> list_type;
+ list_type m_l;
value_type m_sample_mean;
-
value_type m_sample_var;
};
- PB_DS_CLASS_T_DEC
- PB_DS_CLASS_C_DEC::
- res_recorder() :
- m_sample_mean(0)
- { }
- PB_DS_CLASS_T_DEC
- inline typename PB_DS_CLASS_C_DEC::value_type
- PB_DS_CLASS_C_DEC::
- sample_mean() const
- {
- return (m_sample_mean);
- }
-
- PB_DS_CLASS_T_DEC
+ template<typename Value_Type>
bool
- PB_DS_CLASS_C_DEC::
- add_res(value_type res)
+ result_recorder<Value_Type>::
+ add_result(value_type res)
{
m_l.push_back(res);
+ m_sample_mean = sample_mean(m_l.begin(), m_l.end());
+ m_sample_var = sample_variance(m_l.begin(), m_l.end(), m_sample_mean);
- m_sample_mean = pb_ds::test::detail::sample_mean(m_l.begin(), m_l.end());
-
- const value_type sample_var =
- pb_ds::test::detail::sample_var(m_l.begin(), m_l.end(), m_sample_mean);
-
- return (pb_ds::test::detail::sample_mean_confidence_checker(m_sample_mean,
- sample_var,
- std::distance(m_l.begin(), m_l.end()),
- 0.1));
+ size_t dist = std::distance(m_l.begin(), m_l.end());
+ return sample_mean_confidence_checker(m_sample_mean, m_sample_var,
+ dist, 0.1);
}
-
-#undef PB_DS_CLASS_T_DEC
-
-#undef PB_DS_CLASS_C_DEC
-
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_RES_RECORDER_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp b/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
index 26aa1f7b7a8..4c6c5613540 100644
--- a/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
+++ b/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
@@ -54,16 +54,11 @@
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
-#define PB_DS_VTYPE \
- typename std::iterator_traits< \
- It>::value_type
+#define PB_DS_VTYPE typename std::iterator_traits<It>::value_type
template<typename It>
PB_DS_VTYPE
@@ -71,17 +66,14 @@ namespace pb_ds
{
const PB_DS_VTYPE total = std::accumulate(b, e, PB_DS_VTYPE(0));
const size_t num = std::distance(b, e);
-
- return (total / num);
+ return total / num;
}
#undef PB_DS_VTYPE
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_SAMPLE_MEAN_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp b/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
index 5fa4607f2d2..074adc961e5 100644
--- a/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
+++ b/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
@@ -53,25 +53,24 @@
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
/*
* Checks that a sample mean sm is in the relative interval
- * relative_interval of a true mean (assuming i.i.d. samples),
- * given a sample variance sv taken over num_samples samples,
- * with confidence ~ 0.95.
+ * relative_interval of a true mean (assuming i.i.d. samples),
+ * given a sample variance sv taken over num_samples samples,
+ * with confidence ~ 0.95.
*
- * See "Probability, Random Variables, and Stochastic Processes" (Third edition)
- * Athanasios Papoulis, Chapter 9.
+ * See "Probability, Random Variables, and Stochastic Processes"
+ * (Third edition) Athanasios Papoulis, Chapter 9.
*/
template<typename Value_Type>
bool
- sample_mean_confidence_checker(Value_Type sm, Value_Type sv, std::size_t num_samples, double relative_interval)
+ sample_mean_confidence_checker(Value_Type sm, Value_Type sv,
+ std::size_t num_samples,
+ double relative_interval)
{
enum
{
@@ -85,14 +84,11 @@ namespace pb_ds
// This is z_u (normal-dist percentile) for u = 0.975.
const Value_Type z = 1.976;
- return (sv / ::sqrt(double(num_samples)) <= relative_interval* sm / z);
+ return (sv / ::sqrt(double(num_samples)) <= relative_interval * sm / z);
}
-
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_SAMPLE_MEAN_CONFIDENCE_CHECKER_HPP
+#endif
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_var.hpp b/libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
index f5a77817022..c2f87407c38 100644
--- a/libstdc++-v3/testsuite/util/statistic/sample_var.hpp
+++ b/libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
@@ -40,7 +40,7 @@
// warranty.
/**
- * @file sample_var.hpp
+ * @file sample_variance.hpp
* Contains a function for calculating a sample variance
*/
@@ -54,49 +54,38 @@
namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
-#define PB_DS_VTYPE \
- typename std::iterator_traits< \
- It>::value_type
+#define PB_DS_VTYPE typename std::iterator_traits<It>::value_type
template<typename It>
PB_DS_VTYPE
- sample_var(It b, It e, PB_DS_VTYPE sm)
+ sample_variance(It b, It e, PB_DS_VTYPE sm)
{
PB_DS_VTYPE ss = 0;
-
size_t num_res = 0;
while (b != e)
{
const PB_DS_VTYPE d =* b - sm;
-
ss += d* d;
-
++num_res;
-
++b;
}
if (num_res == 1)
- return (0);
+ return 0;
- return (::sqrt(ss / (num_res - 1)));
+ return ::sqrt(ss / (num_res - 1));
}
#undef PB_DS_VTYPE
} // namespace detail
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_SAMPLE_VAR_HPP
+#endif