From 2b257e500c72d2b783057c85cfa31f3bd47b514c Mon Sep 17 00:00:00 2001 From: WickedJack99 Date: Sat, 29 Mar 2025 13:03:42 +0100 Subject: [PATCH] cool --- lab02/fib/src/main.cpp | 35 +++++++++++++++++++++++++++++++++++ lab02/triad_bench.cpp | 24 +++++++++++++----------- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/lab02/fib/src/main.cpp b/lab02/fib/src/main.cpp index e69de29..010460c 100644 --- a/lab02/fib/src/main.cpp +++ b/lab02/fib/src/main.cpp @@ -0,0 +1,35 @@ +#include "matrix.h" +#include +int fib(int n) +{ + if (n < 2) + return n; + + int a = 0; + int b = 1; + + for (int i = 2; i <= n; ++i) + { + int temp = a + b; + a = b; + b = temp; + } + + return b; +} + +Matrix compute(const Matrix &s, const std::vector &v) +{ + Matrix m(s.dim()); + const int n = v.size(); + for (int j = 0; j < n; ++j) + { + double val = static_cast(fib(v[j] % 256)); + double val2 = (sin(val) * tan(val) / sqrt(cos(val) + 2)); + for (int i = 0; i < n; ++i) + { + m(j, i) = s(j, i) * val2; + } + } + return m; +} diff --git a/lab02/triad_bench.cpp b/lab02/triad_bench.cpp index 8f13496..17e6489 100644 --- a/lab02/triad_bench.cpp +++ b/lab02/triad_bench.cpp @@ -43,22 +43,24 @@ static void workerThread(int start, int end) { int main() { int range_start = 100; int range_end = 1'000'000; - int num_threads = std::thread::hardware_concurrency(); // use system's core count + workerThread(range_start, range_end); - int total = range_end - range_start; - int chunk_size = total / num_threads; + // int num_threads = std::thread::hardware_concurrency(); // use system's core count - std::vector threads; + // int total = range_end - range_start; + // int chunk_size = total / num_threads; - for (int i = 0; i < num_threads; ++i) { - int start = range_start + i * chunk_size; - int end = (i == num_threads - 1) ? range_end : start + chunk_size; + // std::vector threads; - threads.emplace_back(workerThread, start, end); - } + // for (int i = 0; i < num_threads; ++i) { + // int start = range_start + i * chunk_size; + // int end = (i == num_threads - 1) ? range_end : start + chunk_size; - for (auto& t : threads) t.join(); + // threads.emplace_back(workerThread, start, end); + // } - std::cout << "All threads finished.\n"; + // for (auto& t : threads) t.join(); + + // std::cout << "All threads finished.\n"; return 0; } \ No newline at end of file