I would like to do an eigenvalue decomposition on a matrix $A^{\top} A$ - positive definite. Eigenvalue decomposition algorithms typically give eigenvectors which are orthogonal to each other, even when the eigenspaces have dimension larger than 1.
However, I would like the resulting eigenvectors $U$ to be orthonormal to each other (i.e. $A^{\top}A = U^{\top} \Sigma U$) under a different inner-product, and not the regular dot product.
Is there an eigendecomposition algorithm that does that? Or should I just use eigenvalue decomposition as usual and then orthonormalize each eigenspace separately using Gram-Schmidt? Is there more natural way to do it?
(note that I assume that eigenvalues from different eigenspaces will be orthogonal under the new inner-product, since the inner product is $\langle x,y\rangle = x^{\top} B^{\top}By$, and $Bu_i$ is an eigenvector of another matrix for any $u_i$ column of $U$ with the corresponding eigenvalue from $\Sigma$).