@@ -32,8 +32,8 @@ struct data {
3232 containers::array<std::uint8_t , bounded::constant<size>> m;
3333};
3434
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 {
3737 auto engine = std::mt19937 (std::random_device ()());
3838 auto value_distribution = std::uniform_int_distribution<unsigned >();
3939 using container_t = containers::vector<data<data_size>>;
@@ -58,20 +58,6 @@ auto benchmark_impl(benchmark::State & state, auto function) -> void {
5858 }
5959}
6060
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- }
7561
7662constexpr auto insertion_sort = [](containers::range auto && r) -> void {
7763 auto const first = containers::begin (r);
@@ -87,16 +73,15 @@ constexpr auto insertion_sort = [](containers::range auto && r) -> void {
8773 }
8874};
8975
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;
9479
9580#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 )
10085
10186BENCHMARK_ALL(1 );
10287BENCHMARK_ALL (4 );
0 commit comments