Dejemos que $U\in\Bbb{R}^{d\times n}$ , de tal manera que $U^\top U=I_n$ , donde $I_k$ denota la matriz de identidad de orden $k$ . Además, deja que $A\in\Bbb{R}^{n\times n}$ ser un $n\times n$ matriz simétrica real. Hay que calcular el siguiente producto: $$ T = UAU^\top\in\Bbb{R}^{d\times d}. $$ ¿Existe alguna forma eficaz de hacerlo? Estoy buscando un pseudocódigo, ya que quiero implementarlo en algún lenguaje de bajo nivel ( $\texttt{C}$ ), pero sin utilizar alguna biblioteca de álgebra lineal (por ejemplo, GLS, etc.).
Editar: Como comentario adicional, dejemos que la descomposición eigen de $A$ se conozca. Es decir, $$ A = P\Lambda P^\top, $$ donde $P$ es un $n\times n$ matriz ortonormal formada por los vectores propios de $A$ y $\Lambda=\operatorname{diag}(\lambda_1,\ldots,\lambda_n)$ es el $n\times n$ matriz diagonal de los valores propios de $A$ . En realidad, se puede asumir que $P$ es la matriz creada manteniendo la primera $d$ columnas de $U$ seguido por el operador de transposición en él.
Muchas gracias.