float run_timing_test(FilterInterface<T> & f) { std::vector<float> timings; auto input = get_random_vector<T>(vector_size); for(unsigned i = 0; i < iterations; ++i) { auto t0 = now(); auto out = f.filter(input); auto t1 = now(); timings.push_back(delta(t1 - t0)); } // compute average of timing values float avg = 0.0f; for(auto t : timings) avg += t; avg /= static_cast<float>(timings.size()); return avg; }