@@ -32,8 +32,8 @@ struct data {
32
32
containers::array<std::uint8_t , bounded::constant<size>> m;
33
33
};
34
34
35
- template <std::size_t data_size>
36
- auto benchmark_impl (benchmark::State & state, auto function ) -> void {
35
+ template <std::size_t data_size, auto function >
36
+ auto benchmark_sort (benchmark::State & state) -> void {
37
37
auto engine = std::mt19937 (std::random_device ()());
38
38
auto value_distribution = std::uniform_int_distribution<unsigned >();
39
39
using container_t = containers::vector<data<data_size>>;
@@ -58,20 +58,6 @@ auto benchmark_impl(benchmark::State & state, auto function) -> void {
58
58
}
59
59
}
60
60
61
- template <std::size_t data_size>
62
- auto benchmark_chunked_insertion_sort (benchmark::State & state) -> void {
63
- benchmark_impl<data_size>(state, [](auto & range) { return containers::chunked_insertion_sort (range); });
64
- }
65
-
66
- template <std::size_t data_size>
67
- auto benchmark_mine (benchmark::State & state) -> void {
68
- benchmark_impl<data_size>(state, containers::new_sort);
69
- }
70
-
71
- template <std::size_t data_size>
72
- auto benchmark_standard (benchmark::State & state) -> void {
73
- benchmark_impl<data_size>(state, containers::sort);
74
- }
75
61
76
62
constexpr auto insertion_sort = [](containers::range auto && r) -> void {
77
63
auto const first = containers::begin (r);
@@ -87,16 +73,15 @@ constexpr auto insertion_sort = [](containers::range auto && r) -> void {
87
73
}
88
74
};
89
75
90
- template <std::size_t data_size>
91
- auto benchmark_insertion_sort (benchmark::State & state) -> void {
92
- benchmark_impl<data_size>(state, insertion_sort);
93
- }
76
+ using containers::chunked_insertion_sort;
77
+ using containers::new_sort;
78
+ using containers::sort;
94
79
95
80
#define BENCHMARK_ALL (data_size ) \
96
- BENCHMARK (benchmark_insertion_sort <data_size>)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
97
- BENCHMARK (benchmark_chunked_insertion_sort <data_size>)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
98
- BENCHMARK (benchmark_mine <data_size>)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
99
- BENCHMARK (benchmark_standard <data_size>)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 )
81
+ BENCHMARK (benchmark_sort <data_size, insertion_sort >)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
82
+ BENCHMARK (benchmark_sort <data_size, chunked_insertion_sort >)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
83
+ BENCHMARK (benchmark_sort <data_size, new_sort >)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 ); \
84
+ BENCHMARK (benchmark_sort <data_size, sort >)->DenseRange (1 , 5 , 1 )->Arg(16 )->Arg(25 )->Arg(64 )->Arg(128 )
100
85
101
86
BENCHMARK_ALL(1 );
102
87
BENCHMARK_ALL (4 );
0 commit comments