So I'm trying to implement my first SVD and I'm having a little trouble figuring out what the "best" approach would be. I understand that generally it's broken into two phases: bidiagonalization and then a decomposition to find the singular values/vectors. It's the first phase that's giving me some trouble. I was hoping that someone could help me with the differences/tradeoffs between using something like a Lanczos method to bidiagonalize the matrix as opposed to a householder transform. Thanks for any info you can give.