add another self-adjoint eigen solver