In trying to solve 3

This commit is contained in:
AZEN-SGG 2025-05-21 22:51:04 +03:00
parent c4fa953d67
commit e5b2c01295
3 changed files with 18 additions and 3 deletions

View file

@ -40,7 +40,7 @@ int t3_solve (
for (it = 1; it <= m; ++it)
{
c = a - ((b - a) / (y_b - y_a)) * y_a;
c = a - ((a - b) / (y_a - y_b)) * y_a;
y = f(c);
memcpy(&bits, &y, sizeof(bits));

View file

@ -22,7 +22,7 @@ int main(int argc, char *argv[])
(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))))
((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;

View file

@ -39,6 +39,13 @@ int t5_solve (
else if (is_equal(b, c))
return -1;
if (
is_equal(y_a, y_b) ||
is_equal(y_a, y_c) ||
is_equal(y_b, y_c)
)
return -3;
for (it = 1; it < m+1; ++it)
{
double *temp_pnt = 0, *inner_max_pnt;
@ -61,6 +68,14 @@ int t5_solve (
)
return -1;
if (
is_equal(y_new, y_a) ||
is_equal(y_new, y_c) ||
is_equal(y_new, y_b)
)
return -3;
inner_max_pnt = fp_abs_max(&c, &b, &y_c, &y_b, &temp_pnt);
*fp_abs_max(&a, inner_max_pnt, &y_a, temp_pnt, &temp_pnt) = x_new;
*temp_pnt = y_new;