// 2x2 Complex matrix eigenvalues and trace-determinant solver.
///|
/// Compute 2x2 Complex Matrix Eigenvalues (lambda1, lambda2) via characteristic equation
pub fn matrix2x2_eigenvalues(m : Matrix2x2) -> (Complex, Complex) {
let tr = matrix2x2_trace(m)
let det = matrix2x2_det(m)
// lambda^2 - tr * lambda + det = 0 -> lambda = (tr +- sqrt(tr^2 - 4*det)) / 2
let tr2 = tr.mul(tr)
let four_det = det.scale(4.0)
let disc = tr2.sub(four_det)
let sqrt_disc = disc.sqrt()
let l1 = tr.add(sqrt_disc).scale(0.5)
let l2 = tr.sub(sqrt_disc).scale(0.5)
(l1, l2)
}