init solver

This commit is contained in:
hugogogo
2026-05-06 22:26:58 +02:00
parent 16c57c9bea
commit 4c13d21e1f
11 changed files with 159 additions and 75 deletions

View File

@@ -100,7 +100,6 @@ static void polynom_fill_null(double *polynom, int len)
void launch_computorv1(char *input)
{
int ret;
int max_exponent;
size_t arg_len;
size_t terms_count_prediction;
@@ -115,11 +114,7 @@ void launch_computorv1(char *input)
s_token tokens[arg_len];
tokens_g_err = tokens;
tokens_fill_null(tokens, arg_len);
ret = lexerize(input, tokens);
if (ret == 0)
{
stop_errors("lexer returned 0 token");
}
lexerize(input, tokens);
// parse
terms_count_prediction = count_any_of(input, "-+=") + 2; // +1 for first term that can have no leading '+', +1 for last term == NULL
@@ -127,11 +122,7 @@ void launch_computorv1(char *input)
s_term terms[terms_count_prediction];
terms_g_err = terms;
terms_fill_null(terms, terms_count_prediction);
ret = parse(tokens, terms, terms_count_prediction);
if (ret == 0)
{
stop_errors("parser returned 0 term");
}
parse(tokens, terms, terms_count_prediction);
// reduce
max_exponent = get_max_exponent(terms) + 1;
@@ -142,6 +133,11 @@ void launch_computorv1(char *input)
reduce(terms, polynom);
// solve
s_solution solution[1];
solution_g_err = solution;
solve(polynom, solution);
// print solution
// debug
print_state();