How does Mathematica 9 assign eigenvectors to a singular matrix?

How does Mathematica assign the eigenvectors to a singular matrix? For example, the three-dimensional null matrix

mat = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}

has the eigenvectors

In[4]:= Eigenvectors[mat]
Out[4]= {{0, 0, 1}, {0, 1, 0}, {1, 0, 0}}

What algorithm is used to order these degenerate eigenvectors?

I ask because in other situations it is not always anticipated that there will be degeneracies and hence singularities of the matrix.

On the web page for Eigenvectors http://reference.wolfram.com/mathematica/ref/Eigenvectors.html click on “Details and Options” part way down the page and read all the information that then displays. I believe that might answer your questions.

I suspect that far too many users, particularly new users, do not realize they should almost automatically click on “Details and Options” on every help page they look at. Perhaps “Details and Options” should be blinking red with a little dancing finger beside this pointing at it with a little thought bubble saying “click me, click me.”

Mathematica will compute a null space corresponding to the (multiple) eigenvalue obtained from the characteristic polynomial. This is done via row reduction.

Maybe you should split “Details and Options” into 2 sections: “Options” and “How It Works”