fix edge case where zero eigenvalues are slightly negative due to numerical error