#include <catch/catch.hpp> #include "ao/kernel/tree/store.hpp" #include "ao/kernel/tree/tree.hpp" #include "ao/kernel/eval/evaluator.hpp" #include "ao/kernel/eval/result.hpp" #ifdef __AVX__ TEST_CASE("Vectorized performance") { // Oversample to get meaningful result const float N = 1000; Store s; Tree t(&s, s.operation(OP_ADD, s.X(), s.Y())); Evaluator e(&t); for (unsigned i=0; i < Result::N; ++i) { e.set(i, 2*i, 0, i); } SECTION("Speed") { std::chrono::time_point<std::chrono::system_clock> start, end; start = std::chrono::system_clock::now(); for (int i=0; i < N; ++i) { e.values(Result::N, false); }