diff --git a/2025.05.02/02Ex/io_status.h b/2025.05.02/02Ex/io_status.h deleted file mode 100644 index 8867bee..0000000 --- a/2025.05.02/02Ex/io_status.h +++ /dev/null @@ -1,16 +0,0 @@ -#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" -#define ERR_FUNC "Error: Algorithm is not applicable!" - -typedef enum _io_status -{ - SUCCESS, - ERROR_OPEN, - ERROR_READ -} io_status; - -#endif diff --git a/2025.05.02/02Ex/main.c b/2025.05.02/02Ex/main.c index abb10e8..0c0d7c0 100644 --- a/2025.05.02/02Ex/main.c +++ b/2025.05.02/02Ex/main.c @@ -12,8 +12,8 @@ int main(int argc, char *argv[]) int m, k, cl, it, task = 2; double (*f) (double); - double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6, sin}; // TODO: Remove sin - double (*d_lst[]) (double) = {d0, d1, d2, d3, d4, d5, d6, cos}; // TODO: Remove cos + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + double (*d_lst[]) (double) = {d0, d1, d2, d3, d4, d5, d6}; int len_f = sizeof(f_lst) / sizeof(f_lst[0]); @@ -36,13 +36,13 @@ int main(int argc, char *argv[]) cl = get_call_function_count(); - if (it > m) + if (it < 0) { fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); return -2; } else { - printf("%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + fprintf(stdout, "%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); return 0; } } diff --git a/2025.05.02/02Ex/solve.c b/2025.05.02/02Ex/solve.c index d53ea28..b288e9c 100644 --- a/2025.05.02/02Ex/solve.c +++ b/2025.05.02/02Ex/solve.c @@ -21,12 +21,15 @@ int t2_solve ( if (fabs(dy) < DBL_EPSILON) { - it = m+1; + it = -1; break; } x_0 -= (y / dy); } + + if (it > m) + it = -1; *x = x_0; return it; diff --git a/2025.05.02/08Ex/solve.c b/2025.05.02/08Ex/solve.c index aab65a9..de3a921 100644 --- a/2025.05.02/08Ex/solve.c +++ b/2025.05.02/08Ex/solve.c @@ -2,8 +2,6 @@ #include #include -#include - int t8_solve ( double (*f) (double), diff --git a/2025.05.02/Krivoruchenko_SK.zip b/2025.05.02/Krivoruchenko_SK.zip new file mode 100644 index 0000000..4f1eecb Binary files /dev/null and b/2025.05.02/Krivoruchenko_SK.zip differ diff --git a/2025.05.02/dist/Krivoruchenko_SK/Makefile b/2025.05.02/dist/Krivoruchenko_SK/Makefile new file mode 100644 index 0000000..885b0c6 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/Makefile @@ -0,0 +1,14 @@ +FLAGS = -fstack-protector-all -W -Wall -Wextra -Wunused -Wcast-align -Werror -pedantic -pedantic-errors -Wfloat-equal -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Wformat=1 -Wwrite-strings -Wcast-align -Wno-long-long -std=gnu99 -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wdeclaration-after-statement -Wbad-function-cast -Wnested-externs -O3 + +%.out: %.o solve.o init_f.o + gcc $(FLAGS) $^ -o $@ -lm +%.o: %.c + gcc -c $(FLAGS) $< + +all: a01.out a02.out a03.out a04.out a07.out a08.out + +solve.o: solve.c solve.h +init_f.o: init_f.c init_f.h + +clean: + rm -f *.o *.out diff --git a/2025.05.02/dist/Krivoruchenko_SK/a01.c b/2025.05.02/dist/Krivoruchenko_SK/a01.c new file mode 100644 index 0000000..442f122 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a01.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out a b eps M k */ +int main(int argc, char *argv[]) +{ + double t, a, b, eps, x = 0; + int m, k, cl, it, task = 1; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + if ( + !((argc == 6) && + sscanf(argv[1], "%lf", &a) == 1 && + sscanf(argv[2], "%lf", &b) == 1 && + (a <= b) && + (sscanf(argv[3], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[4], "%d", &m) == 1) && m > 0) && + ((sscanf(argv[5], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s a b eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t1_solve(f, a, b, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + printf("%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/a02.c b/2025.05.02/dist/Krivoruchenko_SK/a02.c new file mode 100644 index 0000000..0c0d7c0 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a02.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out x_0 eps M k */ +int main(int argc, char *argv[]) +{ + double t, x_0, eps, x = 0; + int m, k, cl, it, task = 2; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + double (*d_lst[]) (double) = {d0, d1, d2, d3, d4, d5, d6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + + if ( + !((argc == 5) && + sscanf(argv[1], "%lf", &x_0) == 1 && + (sscanf(argv[2], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[3], "%d", &m) == 1) && (m > 0)) && + ((sscanf(argv[4], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s x_0 eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t2_solve(f, d_lst[k], x_0, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_function_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + fprintf(stdout, "%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/a03.c b/2025.05.02/dist/Krivoruchenko_SK/a03.c new file mode 100644 index 0000000..0dc3eb4 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a03.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out a b eps M k */ +int main(int argc, char *argv[]) +{ + double t, a, b, eps, x = 0; + int m, k, cl, it, task = 3; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + if ( + !((argc == 6) && + sscanf(argv[1], "%lf", &a) == 1 && + sscanf(argv[2], "%lf", &b) == 1 && + (a <= b) && + (sscanf(argv[3], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[4], "%d", &m) == 1) && m > 0) && + ((sscanf(argv[5], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s a b eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t3_solve(f, a, b, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + fprintf(stdout, "%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/a04.c b/2025.05.02/dist/Krivoruchenko_SK/a04.c new file mode 100644 index 0000000..3403844 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a04.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out a b eps M k */ +int main(int argc, char *argv[]) +{ + double t, a, b, eps, x = 0; + int m, k, cl, it, task = 4; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + if ( + !((argc == 6) && + sscanf(argv[1], "%lf", &a) == 1 && + sscanf(argv[2], "%lf", &b) == 1 && + (a <= b) && + (sscanf(argv[3], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[4], "%d", &m) == 1) && m > 0) && + ((sscanf(argv[5], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s a b eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t4_solve(f, a, b, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + printf("%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/a07.c b/2025.05.02/dist/Krivoruchenko_SK/a07.c new file mode 100644 index 0000000..c426a06 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a07.c @@ -0,0 +1,47 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out x_0 eps M k */ +int main(int argc, char *argv[]) +{ + double t, x_0, eps, x = 0; + int m, k, cl, it, task = 7; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + if ( + !((argc == 5) && + sscanf(argv[1], "%lf", &x_0) == 1 && + (sscanf(argv[2], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[3], "%d", &m) == 1) && (m > 0)) && + ((sscanf(argv[4], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s x_0 eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t7_solve(f, x_0, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + printf("%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/a08.c b/2025.05.02/dist/Krivoruchenko_SK/a08.c new file mode 100644 index 0000000..4c307e6 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/a08.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include "init_f.h" +#include "solve.h" + +/* ./a.out a b eps M k */ +int main(int argc, char *argv[]) +{ + double t, a, b, eps, x = 0; + int m, k, it, cl, task = 8; + + double (*f) (double); + double (*f_lst[]) (double) = {f0, f1, f2, f3, f4, f5, f6}; + int len_f = sizeof(f_lst) / sizeof(f_lst[0]); + + if ( + !((argc == 6) && + sscanf(argv[1], "%lf", &a) == 1 && + sscanf(argv[2], "%lf", &b) == 1 && + (a <= b) && + (sscanf(argv[3], "%lf", &eps) == 1 && (eps >= 0)) && + ((sscanf(argv[4], "%d", &m) == 1) && m > 0) && + ((sscanf(argv[5], "%d", &k) == 1) && ((0 <= k) && (k <= len_f)))) + ) { + fprintf(stderr, "Usage: %s a b eps M k\n", argv[0]); + return -1; + } + + f = f_lst[k]; + + t = clock(); + it = t8_solve(f, a, b, eps, m, &x); + t = (clock() - t) / CLOCKS_PER_SEC; + + cl = get_call_count(); + + if (it < 0) + { + fprintf(stdout, "%s : Task = %d NOT FOUND Count = %d T = %.2f\n", argv[0], task, cl, t); + return -2; + } else + { + fprintf(stdout, "%s : Task = %d X = %e Res = %e Its = %d Count = %d T = %.2f\n", argv[0], task, x, f(x), it, cl, t); + return 0; + } +} + diff --git a/2025.05.02/dist/Krivoruchenko_SK/init_f.c b/2025.05.02/dist/Krivoruchenko_SK/init_f.c new file mode 100644 index 0000000..b14a5a9 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/init_f.c @@ -0,0 +1,128 @@ +#include "init_f.h" + +#include +#include + + +static int cl_f = 0; +static int cl_d = 0; + +int get_call_count (void) +{ + return cl_f; +} + +int get_call_function_count (void) +{ + return cl_f; +} + +int get_call_derivative_count (void) +{ + return cl_d; +} + +double f0 (double x) +{ + cl_f++; + (void)x; + + return 1; +} + +double d0 (double x) +{ + cl_d++; + (void)x; + + return 0; +} + +double f1 (double x) +{ + cl_f++; + return ((x * 1e-100) - 1.0) * 1e100; +} + +double d1 (double x) +{ + (void)x; + cl_d++; + return 1; +} + +double f2 (double x) +{ + cl_f++; + return 4 - x * x; +} + +double d2 (double x) +{ + cl_d++; + return -2 * x; +} + +double f3 (double x) +{ + double x_2 = x * x; + cl_f++; + + return x * x_2 + 3 * x_2 + 16; +} + +double d3 (double x) +{ + cl_d++; + + return 3 * x * x + 6 * x; +} + +double f4 (double x) +{ + double x_2 = x * x; + cl_f++; + + return 3 - 2 * x_2 - x_2 * x_2; +} + +double d4 (double x) +{ + cl_d++; + + return -4 * x - 4 * ((x * x) * x); +} + +double f5 (double x) +{ + cl_f++; + return sqrt(fabs(x) + 1) - 2; +} + +double d5 (double x) +{ + cl_d++; + if (x < -DBL_EPSILON) + return (-1.0 / (sqrt(fabs(x) + 1))) * 0.5; + else if (x > DBL_EPSILON) + return (1.0 / (sqrt(fabs(x) + 1))) * 0.5; + return 0; +} + +double f6 (double x) +{ + cl_f++; + return sqrt(sqrt(fabs(x) + 1) + 1) - 2; +} + +double d6 (double x) +{ + double sqrt_x = sqrt(fabs(x) + 1); + cl_d++; + + if (x < -DBL_EPSILON) + return (-1.0 / (sqrt(sqrt_x + 1) * sqrt_x)) * 0.25; + else if (x > DBL_EPSILON) + return (1.0 / (sqrt(sqrt_x + 1) * sqrt_x)) * 0.25; + return 0; +} diff --git a/2025.05.02/dist/Krivoruchenko_SK/init_f.h b/2025.05.02/dist/Krivoruchenko_SK/init_f.h new file mode 100644 index 0000000..c927c42 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/init_f.h @@ -0,0 +1,29 @@ +#ifndef INIT_F_H +#define INIT_F_H + +int get_call_count (void); +int get_call_function_count (void) ; +int get_call_derivative_count (void); + +double f0 (double x); +double d0 (double x); + +double f1 (double x); +double d1 (double x); + +double f2 (double x); +double d2 (double x); + +double f3 (double x); +double d3 (double x); + +double f4 (double x); +double d4 (double x); + +double f5 (double x); +double d5 (double x); + +double f6 (double x); +double d6 (double x); + +#endif diff --git a/2025.05.02/dist/Krivoruchenko_SK/solve.c b/2025.05.02/dist/Krivoruchenko_SK/solve.c new file mode 100644 index 0000000..34dfbde --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/solve.c @@ -0,0 +1,295 @@ +#include "solve.h" + +#include +#include +#include +#include +#include + +int t1_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x +) { + int it = 0; + uint64_t bits; + double c = DBL_MAX, y, y_a = f(a), y_b = f(b); + bool sgn_a, sgn_b, sgn_c; + + memcpy(&bits, &y_a, sizeof(bits)); + sgn_a = (bits >> 63) & 1; + memcpy(&bits, &y_b, sizeof(bits)); + sgn_b = (bits >> 63) & 1; + + if (fabs(y_a) - eps < DBL_EPSILON) + { + *x = a; + return 1; + } if (fabs(y_b) - eps < DBL_EPSILON) + { + *x = b; + return 1; + } + + if (sgn_a == sgn_b) + { + *x = DBL_MAX; + return -1; + } + + for (it = 1; it <= m; ++it) + { + c = (a + b) * 0.5; + y = f(c); + + memcpy(&bits, &y, sizeof(bits)); + sgn_c = (bits >> 63) & 1; + + if (fabs(y) - eps < DBL_EPSILON) + break; + else if ((fabs(c - a) < DBL_EPSILON) || (fabs(c - b) < DBL_EPSILON)) + it = m+1; + else if (sgn_c == sgn_a) + { + a = c; + y_a = y; + } else if (sgn_c == sgn_b) + { + b = c; + y_b = y; + } + } + + if (it > m) + it = -1; + + *x = c; + + return it; +} + +int t2_solve ( + double (*f) (double), + double (*d) (double), + double x_0, double eps, + int m, double *x +) { + int it = 0; + + for (it = 1; it <= m; ++it) + { + double y = f(x_0); + double dy = d(x_0); + + if (fabs(y) - eps < DBL_EPSILON) + break; + + if (fabs(dy) < DBL_EPSILON) + { + it = -1; + break; + } + + x_0 -= (y / dy); + } + + if (it > m) + it = -1; + + *x = x_0; + return it; +} + +int t3_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x +) { + int it = 0; + uint64_t bits; + double c = DBL_MAX, y, y_a = f(a), y_b = f(b); + bool sgn_a, sgn_b, sgn_c; + + memcpy(&bits, &y_a, sizeof(bits)); + sgn_a = (bits >> 63) & 1; + memcpy(&bits, &y_b, sizeof(bits)); + sgn_b = (bits >> 63) & 1; + + if (fabs(y_a) - eps < DBL_EPSILON) + { + *x = a; + return 1; + } if (fabs(y_b) - eps < DBL_EPSILON) + { + *x = b; + return 1; + } + + if (sgn_a == sgn_b) + { + *x = DBL_MAX; + return -1; + } + + for (it = 1; it <= m; ++it) + { + c = a - ((a - b) / (y_a - y_b)) * y_a; + y = f(c); + + memcpy(&bits, &y, sizeof(bits)); + sgn_c = (bits >> 63) & 1; + + if ((c - a < DBL_EPSILON) || (c - b > DBL_EPSILON)) + it = m+1; + else if (fabs(y) - eps < DBL_EPSILON) + break; + else if (sgn_c == sgn_a) + { + a = c; + y_a = y; + } else if (sgn_c == sgn_b) + { + b = c; + y_b = y; + } + } + + if (it > m) + it = -1; + + *x = c; + + return it; +} + +int t4_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x +) { + int it = 0; + double c = DBL_MAX, y, y_a = f(a), y_b = f(b); + + if (fabs(y_a) - eps < DBL_EPSILON) + { + *x = a; + return 1; + } if (fabs(y_b) - eps < DBL_EPSILON) + { + *x = b; + return 1; + } if (fabs(fabs(y_b) - fabs(y_a)) < DBL_EPSILON) + { + *x = a; + return -1; + } + + for (it = 1; it <= m; ++it) + { + c = b - ((b - a) / (y_b - y_a)) * y_b; + y = f(c); + + if (fabs(y) - eps < DBL_EPSILON) + break; + else if (fabs(y_a) - fabs(y_b) > DBL_EPSILON) + { + a = c; + y_a = y; + } else if (fabs(y_b) - fabs(y_a) > DBL_EPSILON) + { + b = c; + y_b = y; + } else + it = m+1; + } + + if (it > m) + it = -1; + + *x = c; + + return it; +} + +int t7_solve ( + double (*f) (double), + double x_0, double eps, + int m, double *x +) { + int it = 0; + double y = f(x_0); + + if (fabs(y - x_0) - eps < DBL_EPSILON) + { + *x = x_0; + return 1; + } + + for (it = 1; it <= m; ++it) + { + x_0 = y; + y = f(x_0); + + if (fabs(y - x_0) - eps < DBL_EPSILON) + break; + } + + if (it > m) + it = -1; + + *x = x_0; + + return it; +} + +int t8_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x +) { + int it = 1; + double x_l = 0, y_l = 0, c = a, y = f(a); + + if (fabs(b - a) < DBL_EPSILON) + { + *x = a; + return 1; + } + + for (double h = (b - a) * 0.1; fabs(h) > DBL_EPSILON; h *= -0.1) + { + do { + if (it > m) + break; + + it++; + x_l = c; + y_l = y; + + c += h; + y = f(c); + } while (((y - y_l) - eps) > DBL_EPSILON); + + if (it > m) + { + it = -1; + break; + } + + if ((c - b) > DBL_EPSILON) + { + x_l = b; + y_l = f(b); + break; + } else if ((a - c) > DBL_EPSILON) + { + x_l = a; + y_l = f(b); + break; + } + } + + *x = x_l; + + return it; +} diff --git a/2025.05.02/dist/Krivoruchenko_SK/solve.h b/2025.05.02/dist/Krivoruchenko_SK/solve.h new file mode 100644 index 0000000..84f1cb9 --- /dev/null +++ b/2025.05.02/dist/Krivoruchenko_SK/solve.h @@ -0,0 +1,41 @@ +#ifndef SOLVE_H +#define SOLVE_H + +int t1_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x + ); + +int t2_solve ( + double (*f) (double), + double (*d) (double), + double x_0, double eps, + int m, double *x + ); + +int t3_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x + ); + +int t4_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x + ); + +int t7_solve ( + double (*f) (double), + double x_0, double eps, + int m, double *x + ); + +int t8_solve ( + double (*f) (double), + double a, double b, + double eps, int m, double *x + ); + +#endif