Is there an algorithm that takes an upper triangular matrix $T$ over the complex numbers as input, and outputs a bidiagonal matrix $B$ which $T$ is similar to?
We may assume that $T$ is invertible.
Remarks
By $T$ being similar to $B$, I mean that there exists an invertible matrix $P$ such that $B = PTP^{-1}$.
Such a matrix certainly exists: For instance, $B$ could be the Jordan form of $T$.
Don't misunderstand my question! The usual "bidiagonalisation" algorithms (which occur in the context of computing SVD for instance) don't preserve eigenvalues. They only preserve the singular values, which is not what I want.
There are probably multiple algorithms for producing this. I think some might have issues with numerical stability.