for example, the user-defined opt.tolerance is 10^-6, the machine eps is 10^-14, according to the code: double tol = opts.tolerance * lapackf77_dlamch("E"); the tol is 10^-20, which is far less than the user need. Is this necessary? I thought once the eps is less than opt.tolerance, then the tol can be set the same as machine eps cause that's enough.
i asked gpt, it told me this result both meets the user need and fully uses the machine eps. but still i feel confused...