Implements Singular Value Decomposition for generic number types, such as
Quaternions. It internally overloads several Base functions such that existing methods (
svdvals) should work directly.
It uses a Golub-Kahan 2-stage algorithm of bidiagonalization with Householder reflections, followed by an implicit QR with shift.
Based on initial code by Andreas Noack.
- Golub, G. H. and Van Loan, C. F. (2013), "§8.6.3 The SVD Algorithm", Matrix Computations (4th ed.), Johns Hopkins University Press, Baltimore, MD, USA.