Hi. Recently I was using the DGESVD function in LAPACK, and I have some questions on its precision. From the working note "Accurate Singular Values of Bidiagonal Matrices" by James Demmel and W.Kahan, DGESVD should be able to achieve relative accuracy ( Theorem 6 in such working note) for a bidiagonal matrix, namely even for a ill-conditioned bidiagonal matrix, DGESVD should be able to provide accurate result for small singular values even when they are less than the largest singular value multiplied by the machine epsilon. However, after reading several threads in this forum, it seems that the administrator holds the opinion that for an ill-conditioned matrix, DGESVD won't be able to provide accrute result for such kind of small singular value.

Is it true that DGESVD could only guarantee the absolute accuracy instead of relative accuracy for singular values? If so, what's the reason for that, if it is actually implementing the algorithm in "Accurate Singular Values of Bidiagonal Matrices"? Why the implementation cannot fulfill the theoretical prediction?

If DGESVD won't be able to guarantee the relative accuracy for small singular values in an ill-conditioned bidiagonal matrix with condition number greater than one over the machine epsilon, then is there any SVD function in LAPACK library could provide such relative accuracy?