eig = Eigen.ensure(invalidation, () => {
const eig = axes.covariance.selfAdjointEigenSolver(Eigen.ComputeEigenvectors);
const vals = eig.eigenvalues();
const vecs = eig.eigenvectors();
const eigOrder = argsort(Array.apply(null, vals.buffer));
return {
vals: vals.map((i, j, val) => vals.get(eigOrder[i], j)),
vecs: vecs.map((i, j, val) => vecs.get(eigOrder[i], j))
};
})