diff options
author | 2021-01-11 15:31:56 +0000 | |
---|---|---|
committer | 2021-01-11 15:31:56 +0000 | |
commit | 16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef (patch) | |
tree | 1a7dd8152b94f6f8cd318bfaf85aa40882854583 /lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp | |
parent | sync (diff) | |
download | wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.tar.xz wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.zip |
Remove libc++ and libc++abi 8.0.0 now that we switched to version 10.0.1
in the gnu/ directory.
Diffstat (limited to 'lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp')
-rw-r--r-- | lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp b/lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp deleted file mode 100644 index 00a3bb27267..00000000000 --- a/lib/libcxx/benchmarks/algorithms.partition_point.bench.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include <array> -#include <algorithm> -#include <cassert> -#include <cstdint> -#include <tuple> -#include <vector> - -#include "benchmark/benchmark.h" - -#include "CartesianBenchmarks.hpp" -#include "GenerateInput.hpp" - -namespace { - -template <typename I, typename N> -std::array<I, 10> every_10th_percentile_N(I first, N n) { - N step = n / 10; - std::array<I, 10> res; - - for (size_t i = 0; i < 10; ++i) { - res[i] = first; - std::advance(first, step); - } - - return res; -} - -template <class IntT> -struct TestIntBase { - static std::vector<IntT> generateInput(size_t size) { - std::vector<IntT> Res(size); - std::generate(Res.begin(), Res.end(), - [] { return getRandomInteger<IntT>(); }); - return Res; - } -}; - -struct TestInt32 : TestIntBase<std::int32_t> { - static constexpr const char* Name = "TestInt32"; -}; - -struct TestInt64 : TestIntBase<std::int64_t> { - static constexpr const char* Name = "TestInt64"; -}; - -struct TestUint32 : TestIntBase<std::uint32_t> { - static constexpr const char* Name = "TestUint32"; -}; - -struct TestMediumString { - static constexpr const char* Name = "TestMediumString"; - static constexpr size_t StringSize = 32; - - static std::vector<std::string> generateInput(size_t size) { - std::vector<std::string> Res(size); - std::generate(Res.begin(), Res.end(), [] { return getRandomString(StringSize); }); - return Res; - } -}; - -using AllTestTypes = std::tuple<TestInt32, TestInt64, TestUint32, TestMediumString>; - -struct LowerBoundAlg { - template <class I, class V> - I operator()(I first, I last, const V& value) const { - return std::lower_bound(first, last, value); - } - - static constexpr const char* Name = "LowerBoundAlg"; -}; - -struct UpperBoundAlg { - template <class I, class V> - I operator()(I first, I last, const V& value) const { - return std::upper_bound(first, last, value); - } - - static constexpr const char* Name = "UpperBoundAlg"; -}; - -struct EqualRangeAlg { - template <class I, class V> - std::pair<I, I> operator()(I first, I last, const V& value) const { - return std::equal_range(first, last, value); - } - - static constexpr const char* Name = "EqualRangeAlg"; -}; - -using AllAlgs = std::tuple<LowerBoundAlg, UpperBoundAlg, EqualRangeAlg>; - -template <class Alg, class TestType> -struct PartitionPointBench { - size_t Quantity; - - std::string name() const { - return std::string("PartitionPointBench_") + Alg::Name + "_" + - TestType::Name + '/' + std::to_string(Quantity); - } - - void run(benchmark::State& state) const { - auto Data = TestType::generateInput(Quantity); - std::sort(Data.begin(), Data.end()); - auto Every10Percentile = every_10th_percentile_N(Data.begin(), Data.size()); - - for (auto _ : state) { - for (auto Test : Every10Percentile) - benchmark::DoNotOptimize(Alg{}(Data.begin(), Data.end(), *Test)); - } - } -}; - -} // namespace - -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); - if (benchmark::ReportUnrecognizedArguments(argc, argv)) - return 1; - - const std::vector<size_t> Quantities = {1 << 8, 1 << 10, 1 << 20}; - makeCartesianProductBenchmark<PartitionPointBench, AllAlgs, AllTestTypes>( - Quantities); - benchmark::RunSpecifiedBenchmarks(); -} |