eigenvalues subroutine