// --------------------------------- Algebra ------------------------------
/// Solves the quadratic equation ax^2 + bx + c = 0 and returns the two roots as a tuple (root1, root2).
/// The coefficients a, b, and c can be of any type that can be converted into
/// f64. If the discriminant is negative, the function will panic with a message indicating that no real roots exist.
/// Example usage:
/// let (root1, root2) = h_quadratic_equation(1.0, -3.0, 2.0);
/// The result will be (2.0, 1.0), because the roots of the equation x^2 - 3x + 2 = 0 are x = 2 and x = 1.
/// let (root1, root2) = h_quadratic_equation(1.0, 2.0, 5.0);
/// The function will panic with the message "No real roots exist" because the discriminant (b^2 - 4ac) is negative.
/// Note: The order of the roots in the returned tuple is not guaranteed, so root1 may be the larger or smaller root depending on the coefficients.