Is this implementation of Jacobi SVD algorithm according to the standard algorithm? Please verify.
Is this Hestenes Jacobi method?
I have seen pseudo code of Jacobi algorithm like here which appears quite different from how it is done here. I want to know Is this the best implementation or can it be made more efficient?
In 1975 I published a one-sided Jacobi code in the Computer Journal. Seymour Shlien and I extended this in the same journal in 1987. It is also used in a rather different way for long, skinny matrices in an Applied Statistics paper in 1976, and both were part of my 1979 Compact Numerical Methods for Computers, republished in 1990. There have been other approaches (2 sided, variants for parallel computing, etc.) but the original code, updated in a few small ways, is still very short and appears to be adaptable for extended precision. In 2019, I've made a few more improvements, as it appears NASA is using it for a situation needing such precision, and I've worked out how to avoid requiring the user to provide tolerances.
As far as I am aware (from asking around over the years), Hestenes may never have actually run his method as a program. Chartres said he did some experiments on the Silliac. However, my step-and-description and BASIC and Fortran codes of the 1970s were, I think, the first transferable technology for the one-sided Jacobi. By then the faster but more complicated Golub and Reisch code had been widely adopted, and mine was used for special applications. Also when being able to tinker easily was desired.
John Nash