diff --git a/src/Benchmark/VectorT.cpp b/src/Benchmark/VectorT.cpp index b8330d0a..855fe6e2 100644 --- a/src/Benchmark/VectorT.cpp +++ b/src/Benchmark/VectorT.cpp @@ -42,3 +42,33 @@ static void ASSEMBLE(BMPREFIX, Vec3d_add_compare)(benchmark::State& state) { } MYBENCHMARK (ASSEMBLE(BMPREFIX, Vec3d_add_compare)); + +static void ASSEMBLE(BMPREFIX, Vec3d_cross_product)(benchmark::State& state) { + OpenMesh::Vec3d v1(0, 0, 0); + OpenMesh::Vec3d v2(1000, 1000, 1000); + while (state.KeepRunning()) { + v1 += OpenMesh::Vec3d(1.1, 1.2, 1.3); + v2 -= OpenMesh::Vec3d(1.1, 1.2, 1.3); + if ((v1 % v2) == (v2 % v1)) { + v1 -= v2; + v2 += v1; + } + } +} + +MYBENCHMARK (ASSEMBLE(BMPREFIX, Vec3d_cross_product)); + +static void ASSEMBLE(BMPREFIX, Vec3d_scalar_product)(benchmark::State& state) { + OpenMesh::Vec3d v1(0, 0, 0); + OpenMesh::Vec3d v2(1000, 1000, 1000); + while (state.KeepRunning()) { + v1 += OpenMesh::Vec3d(1.1, 1.2, 1.3); + v2 -= OpenMesh::Vec3d(1.1, 1.2, 1.3); + if ((v1 | v2) > 0) { + v1 -= v2; + v2 += v1; + } + } +} + +MYBENCHMARK (ASSEMBLE(BMPREFIX, Vec3d_scalar_product));