Files
eigen/benchmarks/bench_reverse.cpp
Rasmus Munk Larsen 3108f6360e Migrate Eigen benchmarks to the Google benchmark framework
libeigen/eigen!2132

Closes #3025

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-17 20:51:36 -08:00

31 lines
930 B
C++

#include <benchmark/benchmark.h>
#include <Eigen/Core>
using namespace Eigen;
static void BM_MatrixReverse(benchmark::State& state) {
int n = state.range(0);
typedef Matrix<double, Dynamic, Dynamic> MatrixType;
MatrixType a = MatrixType::Random(n, n);
MatrixType b(n, n);
for (auto _ : state) {
b = a.reverse();
benchmark::DoNotOptimize(b.data());
}
state.SetBytesProcessed(state.iterations() * n * n * sizeof(double));
}
BENCHMARK(BM_MatrixReverse)->RangeMultiplier(2)->Range(4, 512);
static void BM_VectorReverse(benchmark::State& state) {
int n = state.range(0);
typedef Matrix<double, Dynamic, 1> VectorType;
VectorType a = VectorType::Random(n);
VectorType b(n);
for (auto _ : state) {
b = a.reverse();
benchmark::DoNotOptimize(b.data());
}
state.SetBytesProcessed(state.iterations() * n * sizeof(double));
}
BENCHMARK(BM_VectorReverse)->RangeMultiplier(4)->Range(16, 1 << 18);