From 9319f68a395face506b17cdbaceaebf7b666604e Mon Sep 17 00:00:00 2001 From: AZEN-SGG Date: Mon, 14 Apr 2025 23:27:22 +0300 Subject: [PATCH] Task 1 was done! --- 2025.04.04/asymptotics_test/asymptotics.xlsx | Bin 0 -> 11715 bytes .../asymptotics_test/asymptotics.xlsx | Bin 10014 -> 0 bytes .../asymptotics_test/test_out_01000.log | 11 --- .../asymptotics_test/test_out_02000.log | 11 --- .../asymptotics_test/test_out_03000.log | 11 --- .../asymptotics_test/test_out_04000.log | 11 --- .../asymptotics_test/test_out_05000.log | 11 --- .../asymptotics_test/test_out_06000.log | 11 --- .../asymptotics_test/test_out_07000.log | 11 --- .../asymptotics_test/test_out_08000.log | 11 --- .../asymptotics_test/test_out_09000.log | 11 --- .../asymptotics_test/test_out_10000.log | 11 --- .../asymptotics_test/test_out_11000.log | 11 --- .../asymptotics_test/test_out_12000.log | 11 --- .../asymptotics_test/test_out_13000.log | 11 --- .../asymptotics_test/test_out_14000.log | 11 --- .../asymptotics_test/test_out_15000.log | 11 --- 2025.04.04/test/1/a1.txt | 1 - 2025.04.04/{test => tests}/1/a.txt | 0 2025.04.04/tests/1/a1.txt | 1 + 2025.04.04/{test => tests}/1/b.txt | 0 2025.04.04/{test => tests}/1/c.txt | 0 2025.04.04/{test => tests}/1/c_b.txt | 0 2025.04.04/{test => tests}/1/c_x.txt | 0 2025.04.04/{test => tests}/1/d.txt | 0 2025.04.04/{test => tests}/1/e.txt | 0 2025.04.04/{test => tests}/1/f.txt | 0 2025.04.04/{test => tests}/1/g.txt | 0 2025.04.04/{test => tests}/1/g1.txt | 0 2025.04.04/{test => tests}/1/g2.txt | 0 2025.04.04/{test => tests}/1/h.txt | 0 2025.04.04/{test => tests}/1/h1.txt | 0 2025.04.04/{test => tests}/1/h2.txt | 0 2025.04.04/{test => tests}/1/x.txt | 0 2025.04.04/{test => tests}/1/x0.txt | 0 2025.04.04/{test => tests}/1/x01.txt | 0 2025.04.04/{test => tests}/3/a.txt | 0 2025.04.04/{test => tests}/3/b.txt | 0 2025.04.04/{test => tests}/3/c.txt | 0 2025.04.04/{test => tests}/3/d.txt | 0 2025.04.04/{test => tests}/3/e.txt | 0 2025.04.04/{test => tests}/3/f.txt | 0 2025.04.04/{test => tests}/3/g.txt | 0 2025.04.04/{test => tests}/a.txt | 0 2025.04.04/{test => tests}/a20.txt | 0 2025.04.04/{test => tests}/a40.txt | 0 2025.04.04/{test => tests}/b.txt | 0 2025.04.04/{test => tests}/c.txt | 0 2025.04.04/{test => tests}/d.txt | 0 2025.04.04/{test => tests}/e.txt | 0 2025.04.04/{test => tests}/f.txt | 0 2025.04.04/{test => tests}/g.txt | 0 2025.04.04/{test => tests}/h.txt | 0 2025.04.04/{test => tests}/test1.sh | 0 2025.04.04/{test => tests}/test13.sh | 0 2025.04.04/{test => tests}/test13_matr.sh | 0 2025.04.04/{test => tests}/test13_matr_mpi.sh | 0 2025.04.04/{test => tests}/test13_matr_thr.sh | 0 2025.04.04/{test => tests}/test13_mpi.sh | 0 2025.04.04/{test => tests}/test13_thr.sh | 0 2025.04.04/{test => tests}/test1_matr.sh | 0 2025.04.18/01Ex/Makefile | 42 ++++++++++ 2025.04.18/01Ex/array_io.c | 26 ++++++ 2025.04.18/01Ex/array_io.h | 9 +++ 2025.04.18/01Ex/io_status.h | 15 ++++ 2025.04.18/01Ex/main.c | 74 ++++++++++++++++++ 2025.04.18/01Ex/solve.c | 43 ++++++++++ 2025.04.18/01Ex/solve.h | 6 ++ 2025.04.18/tests/linear.txt | 8 ++ 2025.04.18/tests/linear_d.txt | 9 +++ 2025.04.18/tests/log2_x.txt | 16 ++++ 71 files changed, 249 insertions(+), 166 deletions(-) create mode 100644 2025.04.04/asymptotics_test/asymptotics.xlsx delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/asymptotics.xlsx delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_01000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_02000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_03000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_04000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_05000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_06000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_07000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_08000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_09000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_10000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_11000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_12000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_13000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_14000.log delete mode 100644 2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/test_out_15000.log delete mode 120000 2025.04.04/test/1/a1.txt rename 2025.04.04/{test => tests}/1/a.txt (100%) create mode 100644 2025.04.04/tests/1/a1.txt rename 2025.04.04/{test => tests}/1/b.txt (100%) rename 2025.04.04/{test => tests}/1/c.txt (100%) rename 2025.04.04/{test => tests}/1/c_b.txt (100%) rename 2025.04.04/{test => tests}/1/c_x.txt (100%) rename 2025.04.04/{test => tests}/1/d.txt (100%) rename 2025.04.04/{test => tests}/1/e.txt (100%) rename 2025.04.04/{test => tests}/1/f.txt (100%) rename 2025.04.04/{test => tests}/1/g.txt (100%) rename 2025.04.04/{test => tests}/1/g1.txt (100%) rename 2025.04.04/{test => tests}/1/g2.txt (100%) rename 2025.04.04/{test => tests}/1/h.txt (100%) rename 2025.04.04/{test => tests}/1/h1.txt (100%) rename 2025.04.04/{test => tests}/1/h2.txt (100%) rename 2025.04.04/{test => tests}/1/x.txt (100%) rename 2025.04.04/{test => tests}/1/x0.txt (100%) rename 2025.04.04/{test => tests}/1/x01.txt (100%) rename 2025.04.04/{test => tests}/3/a.txt (100%) rename 2025.04.04/{test => tests}/3/b.txt (100%) rename 2025.04.04/{test => tests}/3/c.txt (100%) rename 2025.04.04/{test => tests}/3/d.txt (100%) rename 2025.04.04/{test => tests}/3/e.txt (100%) rename 2025.04.04/{test => tests}/3/f.txt (100%) rename 2025.04.04/{test => tests}/3/g.txt (100%) rename 2025.04.04/{test => tests}/a.txt (100%) rename 2025.04.04/{test => tests}/a20.txt (100%) rename 2025.04.04/{test => tests}/a40.txt (100%) rename 2025.04.04/{test => tests}/b.txt (100%) rename 2025.04.04/{test => tests}/c.txt (100%) rename 2025.04.04/{test => tests}/d.txt (100%) rename 2025.04.04/{test => tests}/e.txt (100%) rename 2025.04.04/{test => tests}/f.txt (100%) rename 2025.04.04/{test => tests}/g.txt (100%) rename 2025.04.04/{test => tests}/h.txt (100%) rename 2025.04.04/{test => tests}/test1.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13_matr.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13_matr_mpi.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13_matr_thr.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13_mpi.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test13_thr.sh (100%) mode change 100755 => 100644 rename 2025.04.04/{test => tests}/test1_matr.sh (100%) mode change 100755 => 100644 create mode 100644 2025.04.18/01Ex/Makefile create mode 100644 2025.04.18/01Ex/array_io.c create mode 100644 2025.04.18/01Ex/array_io.h create mode 100644 2025.04.18/01Ex/io_status.h create mode 100644 2025.04.18/01Ex/main.c create mode 100644 2025.04.18/01Ex/solve.c create mode 100644 2025.04.18/01Ex/solve.h create mode 100644 2025.04.18/tests/linear.txt create mode 100644 2025.04.18/tests/linear_d.txt create mode 100644 2025.04.18/tests/log2_x.txt diff --git a/2025.04.04/asymptotics_test/asymptotics.xlsx b/2025.04.04/asymptotics_test/asymptotics.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..48f80d6a480a076e9163b637584ff84aa95b7736 GIT binary patch literal 11715 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 literal 0 HcmV?d00001 diff --git a/2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/asymptotics.xlsx b/2025.04.04/dist/Krivoruchenko_SK/asymptotics_test/asymptotics.xlsx deleted file mode 100644 index 1374bd1d316d34f903b0c18d65142b6343fa9224..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10014 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 +#include +#include "array_io.h" + +io_status read_values (double * restrict X, double * restrict Y, const int n, const char * restrict name) +{ + FILE *fp; + if (!(fp = fopen(name, "r"))) + return ERROR_OPEN; + + for (int i = 0; i < n; ++i) + if (fscanf(fp, "%lf\t%lf", X + i, Y + i) != 2) + { fclose(fp); return ERROR_READ; } + + fclose(fp); + return SUCCESS; +} + +void print_values (const double * restrict X, const double * restrict Y, const int n, const int p) +{ + int np = (n > p ? p : n); + + for (int i = 0; i < np; i++) + printf("f(%lf) = %lf\n", X[i], Y[i]); +} + diff --git a/2025.04.18/01Ex/array_io.h b/2025.04.18/01Ex/array_io.h new file mode 100644 index 0000000..7a0ce14 --- /dev/null +++ b/2025.04.18/01Ex/array_io.h @@ -0,0 +1,9 @@ +#ifndef ARRAY_IO_H +#define ARRAY_IO_H + +#include "io_status.h" + +io_status read_values (double * restrict X, double * restrict Y, const int n, const char * restrict name); +void print_values (const double * restrict X, const double * restrict Y, const int n, const int p); + +#endif diff --git a/2025.04.18/01Ex/io_status.h b/2025.04.18/01Ex/io_status.h new file mode 100644 index 0000000..778a4a1 --- /dev/null +++ b/2025.04.18/01Ex/io_status.h @@ -0,0 +1,15 @@ +#ifndef IO_STATUS_H +#define IO_STATUS_H + +#define ERR_MEM "Error: Not enough memory!" +#define ERR_OPEN "Error: Cannot open file" +#define ERR_READ "Error: Cannot read file" + +typedef enum _io_status +{ + SUCCESS, + ERROR_OPEN, + ERROR_READ +} io_status; + +#endif diff --git a/2025.04.18/01Ex/main.c b/2025.04.18/01Ex/main.c new file mode 100644 index 0000000..e8759e8 --- /dev/null +++ b/2025.04.18/01Ex/main.c @@ -0,0 +1,74 @@ +#include +#include +#include + +#include "array_io.h" +#include "io_status.h" +#include "solve.h" + +/* ./a.out x_0 n filename */ +int main(int argc, char *argv[]) +{ + double x_0, t, r = 0, *X = 0, *Y = 0; + int n, task = 1; + char *name = 0; + io_status ret; + + if ( + !((argc == 4) && + sscanf(argv[1], "%lf", &x_0) == 1 && + sscanf(argv[2], "%d", &n) == 1 && + ((name = argv[3]) && name)) + ) { + fprintf(stderr, "Usage: %s x_0 n filename\n", argv[0]); + return 1; + } + + // TODO: Удалить вывод в stderr + X = (double *)malloc(n * sizeof(double)); + if (!X) + { + fprintf(stderr, "%s\n", ERR_MEM); + return 2; + } + + Y = (double *)malloc(n * sizeof(double)); + if (!Y) + { + free(X); + fprintf(stderr, "%s\n", ERR_MEM); + return 2; + } + + ret = read_values(X, Y, n, name); + do { + switch (ret) + { + case SUCCESS: + continue; + case ERROR_OPEN: + fprintf(stderr, "%s '%s'!\n", ERR_OPEN, name); + break; + case ERROR_READ: + fprintf(stderr, "%s '%s'!\n", ERR_READ, name); + break; + } + + free(X); + free(Y); + + return 3; + } while (0); + + t = clock(); + r = t1_solve(x_0, n, X, Y); + t = (clock() - t) / CLOCKS_PER_SEC; + + printf("%s : Task = %d Result = %e Elapsed = %.2f\n", argv[0], task, r, t); + + free(X); + free(Y); + + return 0; +} + diff --git a/2025.04.18/01Ex/solve.c b/2025.04.18/01Ex/solve.c new file mode 100644 index 0000000..aae5053 --- /dev/null +++ b/2025.04.18/01Ex/solve.c @@ -0,0 +1,43 @@ +#include "solve.h" + +#include +#include + +// the Lagrange interpolation polynomial +double t1_solve (const double x_0, const int n, const double * restrict X, const double * restrict Y) +{ + double value = 0; + + for (int i = 0; i < n; ++i) + { + double x_i = X[i]; + double y_i = Y[i]; + + double numerator = y_i; + double denominator = 1; + + if (fabs(x_0 - x_i) < DBL_EPSILON) + return y_i; + + for (int j = 0; j < i; ++j) + { + double x_j = X[j]; + numerator *= (x_0 - x_j); + denominator *= (x_i - x_j); + } + + for (int j = i+1; j < n; ++j) + { + double x_j = X[j]; + numerator *= (x_0 - x_j); + denominator *= (x_i - x_j); + } + + if (fabs(denominator) < DBL_EPSILON) + return DBL_MAX; + + value += numerator / denominator; + } + + return value; +} diff --git a/2025.04.18/01Ex/solve.h b/2025.04.18/01Ex/solve.h new file mode 100644 index 0000000..8d9d4e7 --- /dev/null +++ b/2025.04.18/01Ex/solve.h @@ -0,0 +1,6 @@ +#ifndef SOLVE_H +#define SOLVE_H + +double t1_solve (const double x_0, const int n, const double * restrict X, const double * restrict Y); + +#endif diff --git a/2025.04.18/tests/linear.txt b/2025.04.18/tests/linear.txt new file mode 100644 index 0000000..967bc99 --- /dev/null +++ b/2025.04.18/tests/linear.txt @@ -0,0 +1,8 @@ +1 1 +2 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 diff --git a/2025.04.18/tests/linear_d.txt b/2025.04.18/tests/linear_d.txt new file mode 100644 index 0000000..190ee2e --- /dev/null +++ b/2025.04.18/tests/linear_d.txt @@ -0,0 +1,9 @@ +1 1 1 +2 2 1 +3 3 1 +4 4 1 +5 5 1 +6 6 1 +7 7 1 +8 8 1 + diff --git a/2025.04.18/tests/log2_x.txt b/2025.04.18/tests/log2_x.txt new file mode 100644 index 0000000..990e40a --- /dev/null +++ b/2025.04.18/tests/log2_x.txt @@ -0,0 +1,16 @@ +1 0 +2 1 +4 2 +8 3 +16 4 +32 5 +64 6 +128 7 +256 8 +512 9 +1024 10 +2048 11 +4096 12 +8192 13 +16384 14 +32768 15