#pragma once #include "helper.h" #include #include #define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 #include #include #include #include "initialization.h" #include "utils.h" #include "task_common.h" class A2Task2Solution { public: float mstime; virtual void prepare(const std::vector &input) = 0; virtual void compute() = 0; virtual std::vector result() const = 0; virtual void cleanup() = 0; }; class A2Task2 { public: A2Task2(uint problemSize); A2Task2(std::vector input); bool evaluateSolution(A2Task2Solution& solution); size_t size() const { return input.size(); } private: void computeReference(); std::vector input; std::vector reference; };