MAINT: remove unnecessary code.
MAINT: Remove mutable default argument.

It could lead to funny issues if the code was edited without taking that into
account.
Deal with negative eigenvalues.
TST: test warnings.
Make eigvals close to 0 (including negative ones) equal to 0.
TST: Catch known warnings.
TST: Return useful dimensions only, correct tests as needed.