/// <summary>Sorts this object.</summary>
private void Sort()
{
//ordering
var eigs = A.Diag()
.Select((d, i) => new Tuple <int, double>(i, d))
.OrderByDescending(j => j.Item2)
.ToArray();
// sort eigenvectors
var copy = V.Copy();
for (var i = 0; i < eigs.Length; i++)
{
copy[i, VectorType.Col] = V[eigs[i].Item1, VectorType.Col];
}
// normalize eigenvectors
copy.Normalize(VectorType.Col);
V = copy;
Eigenvalues = eigs.Select(t => t.Item2).ToArray();
}