Benchmark: Made CPP11/Legacy a postfix for better sortability.

This commit is contained in:
Hans-Christian Ebke
2015-11-19 23:05:24 +01:00
parent dbb4cf4db3
commit 6a43753fed
3 changed files with 25 additions and 23 deletions

View File

@@ -5,12 +5,14 @@
* Author: ebke * Author: ebke
*/ */
#ifndef BMPREFIX #ifndef BMPOSTFIX
#error "Do not compile directly." #error "Do not compile directly."
#endif #endif
#define ASSEMBLE_(PREFIX, SUFFIX) PREFIX ## SUFFIX #include <type_traits>
#define ASSEMBLE(PREFIX, SUFFIX) ASSEMBLE_(PREFIX, SUFFIX)
#define ASSEMBLE_(POSTFIX, PREFIX) PREFIX ## POSTFIX
#define ASSEMBLE(POSTFIX, PREFIX) ASSEMBLE_(POSTFIX, PREFIX)
#define MYBENCHMARK(NAME) BENCHMARK(NAME) #define MYBENCHMARK(NAME) BENCHMARK(NAME)
#define MYBENCHMARK_TEMPLATE(NAME, TYPE) BENCHMARK_TEMPLATE(NAME, TYPE) #define MYBENCHMARK_TEMPLATE(NAME, TYPE) BENCHMARK_TEMPLATE(NAME, TYPE)
@@ -29,7 +31,7 @@ testVec() {
} }
template<class Vec> template<class Vec>
static void ASSEMBLE(BMPREFIX, Vec_add_compare)(benchmark::State& state) { static void ASSEMBLE(BMPOSTFIX, Vec_add_compare)(benchmark::State& state) {
Vec v1(0.0); Vec v1(0.0);
Vec v2(1000.0); Vec v2(1000.0);
while (state.KeepRunning()) { while (state.KeepRunning()) {
@@ -45,13 +47,13 @@ static void ASSEMBLE(BMPREFIX, Vec_add_compare)(benchmark::State& state) {
dummy = v1.norm() + v2.norm(); dummy = v1.norm() + v2.norm();
} }
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_add_compare), OpenMesh::Vec3d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_add_compare), OpenMesh::Vec3d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_add_compare), OpenMesh::Vec3f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_add_compare), OpenMesh::Vec3f);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_add_compare), OpenMesh::Vec4d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_add_compare), OpenMesh::Vec4d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_add_compare), OpenMesh::Vec4f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_add_compare), OpenMesh::Vec4f);
template<class Vec> template<class Vec>
static void ASSEMBLE(BMPREFIX, Vec_cross_product)(benchmark::State& state) { static void ASSEMBLE(BMPOSTFIX, Vec_cross_product)(benchmark::State& state) {
Vec v1(0.0); Vec v1(0.0);
Vec v2(1000.0); Vec v2(1000.0);
while (state.KeepRunning()) { while (state.KeepRunning()) {
@@ -64,11 +66,11 @@ static void ASSEMBLE(BMPREFIX, Vec_cross_product)(benchmark::State& state) {
dummy = v1.norm() + v2.norm(); dummy = v1.norm() + v2.norm();
} }
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_cross_product), OpenMesh::Vec3d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_cross_product), OpenMesh::Vec3d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_cross_product), OpenMesh::Vec3f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_cross_product), OpenMesh::Vec3f);
template<class Vec> template<class Vec>
static void ASSEMBLE(BMPREFIX, Vec_scalar_product)(benchmark::State& state) { static void ASSEMBLE(BMPOSTFIX, Vec_scalar_product)(benchmark::State& state) {
Vec v1(0.0); Vec v1(0.0);
Vec v2(1000.0); Vec v2(1000.0);
double acc = 0; double acc = 0;
@@ -82,13 +84,13 @@ static void ASSEMBLE(BMPREFIX, Vec_scalar_product)(benchmark::State& state) {
dummy = acc; dummy = acc;
} }
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_scalar_product), OpenMesh::Vec3d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_scalar_product), OpenMesh::Vec3d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_scalar_product), OpenMesh::Vec3f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_scalar_product), OpenMesh::Vec3f);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_scalar_product), OpenMesh::Vec4d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_scalar_product), OpenMesh::Vec4d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_scalar_product), OpenMesh::Vec4f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_scalar_product), OpenMesh::Vec4f);
template<class Vec> template<class Vec>
static void ASSEMBLE(BMPREFIX, Vec_norm)(benchmark::State& state) { static void ASSEMBLE(BMPOSTFIX, Vec_norm)(benchmark::State& state) {
Vec v1(0.0); Vec v1(0.0);
double acc = 0; double acc = 0;
while (state.KeepRunning()) { while (state.KeepRunning()) {
@@ -100,7 +102,7 @@ static void ASSEMBLE(BMPREFIX, Vec_norm)(benchmark::State& state) {
dummy = acc; dummy = acc;
} }
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_norm), OpenMesh::Vec3d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_norm), OpenMesh::Vec3d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_norm), OpenMesh::Vec3f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_norm), OpenMesh::Vec3f);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_norm), OpenMesh::Vec4d); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_norm), OpenMesh::Vec4d);
MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPREFIX, Vec_norm), OpenMesh::Vec4f); MYBENCHMARK_TEMPLATE (ASSEMBLE(BMPOSTFIX, Vec_norm), OpenMesh::Vec4f);

View File

@@ -10,5 +10,5 @@
#define OPENMESH_VECTOR_LEGACY #define OPENMESH_VECTOR_LEGACY
#include <OpenMesh/Core/Geometry/VectorT.hh> #include <OpenMesh/Core/Geometry/VectorT.hh>
#define BMPREFIX Legacy_ #define BMPOSTFIX _Legacy
#include "VectorT.cpp" #include "VectorT.cpp"

View File

@@ -8,5 +8,5 @@
#include <benchmark/benchmark_api.h> #include <benchmark/benchmark_api.h>
#include <OpenMesh/Core/Geometry/VectorT.hh> #include <OpenMesh/Core/Geometry/VectorT.hh>
#define BMPREFIX CPP11_ #define BMPOSTFIX _CPP11
#include "VectorT.cpp" #include "VectorT.cpp"