Estou trabalhando em uma biblioteca de matriz somente de cabeçalho para fornecer um grau razoável de capacidade de álgebra linear em um pacote o mais simples possível e estou tentando pesquisar o que o estado da arte atual está re: computando o SVD de um matriz complexa.
Estou fazendo uma decomposição em duas fases, bidiagonalização seguida de cálculo de valor singular. No momento, estou usando o método de proprietário para a bidiagonalização (acredito que o LAPACK também use isso), e acho que é tão bom quanto é atualmente (a menos que alguém conheça um algoritmo para isso ..) .
O cálculo do valor singular é o próximo na minha lista, e estou um pouco fora do circuito sobre quais são os algoritmos comuns para fazer isso. Li aqui que a pesquisa estava caminhando para um método de iteração inversa que garante ortogonalidade com complexidade . Eu estaria interessado em ouvir sobre esse ou outros avanços.