In Lapack DBDSDC.f function (http://www.netlib.org/lapack/explore-ht ... ource.html), in line 403 to 407, it finds any diagonal value d(i) less than eps, and upscale those value to be eps. This operation seems to make the numerical result of DBDSDC worse. In my test case, it makes the accuracy of the singular value to be worse. Meanwhile, it doesn't improve run time speed.
Could anyone help me to understand why the upscale operations are needed? And how condition number affects the DGESDD results?
Thanks!

