complex solutions

This commit is contained in:
hugogogo
2026-05-11 22:36:55 +02:00
parent 6d2e7922bc
commit 37d9fa2f24
6 changed files with 65 additions and 170 deletions

View File

@@ -122,36 +122,24 @@ typedef enum
typedef struct
{
double a; // a in "ax + b"
double b; // b in "ax + b"
int solution_gcd; // gcd(b, a)
int solution_numerator; // -b / gcd
int solution_denominator; // a / gcd
double solution; // double (-b / a)
double a; // a in "ax + b"
double b; // b in "ax + b"
double solution; // double (-b / a)
} s_solution_degree_1;
typedef struct
{
double a; // a in "ax² + bx + c"
double b; // b in "ax² + bx + c"
double c; // c in "ax² + bx + c"
e_delta_sign delta_sign; // DELTA_PLUS or DELTA_MINUS or DELTA_ZERO
double delta; // Δ == b² - 4ac
double delta_absolute; // |Δ|
double delta_sqrt; // √|Δ|
//
int first_term_gcd; // gcd(b, 2a)
int first_term_numerator; // -b / gcd
int first_term_denominator; // 2a / gcd
double first_term; // double (-b / 2a)
//
int second_term_gcd; // gcd(√|Δ|, 2a)
int second_term_numerator; // √|Δ| / gcd
int second_term_denominator; // 2a / gcd
double second_term; // double (√|Δ| / 2a)
//
double solution1; // first_term + second_term
double solution2; // first_term - second_term (not if DELTA_ZERO)
double a; // a in "ax² + bx + c"
double b; // b in "ax² + bx + c"
double c; // c in "ax² + bx + c"
e_delta_sign delta_sign; // DELTA_PLUS or DELTA_MINUS or DELTA_ZERO
double delta; // Δ == b² - 4ac
double delta_absolute; // |Δ|
double delta_sqrt; // √|Δ|
double first_term; // double (-b / 2a)
double second_term; // double (√|Δ| / 2a)
double solution1; // || first_term + second_term || first_term + i * second_term
double solution2; // (not if DELTA_ZERO) || first_term - second_term || first_term - i * second_term
} s_solution_degree_2;
typedef struct