Function truck_geometry::base::solver::pre_solve_quartic
Expand description
solve equation: $x^4 + px^2 + qx + r = 0$.
Examples
use matext4cgmath::solver;
use num_complex::Complex;
const EPS: f64 = 1e-7;
let mut res = solver::pre_solve_quartic(-5.0, 0.0, 4.0);
// Even in the case of real solutions, the order in the array is not guaranteed.
res.sort_by(|x, y| x.re.partial_cmp(&y.re).unwrap());
let ans = [Complex::from(-2.0), Complex::from(-1.0), Complex::from(1.0), Complex::from(2.0)];
res.iter().zip(ans).for_each(|(x, y)| {
assert!(Complex::norm(x - y) < EPS);
});