#include #include #include #include #include #include #include #include #include #include extern int N; extern double **a, **b, **c; std::chrono::microseconds measure_time_taskflow(unsigned); std::chrono::microseconds measure_time_tbb(unsigned); std::chrono::microseconds measure_time_omp(unsigned); inline void allocate_matrix() { a = static_cast(std::malloc(N * sizeof(double*))); b = static_cast(std::malloc(N * sizeof(double*))); c = static_cast(std::malloc(N * sizeof(double*))); for(int i=0; i(std::malloc(N * sizeof(double))); b[i] = static_cast(std::malloc(N * sizeof(double))); c[i] = static_cast(std::malloc(N * sizeof(double))); } } inline void deallocate_matrix() { for(int i=0; i