The CGLS algorithm is based closely on the procedure described by W.A. Hendrickson and J.H. Konnert (Computing in Crystallography, Ed. R. Diamond, S. Ramaseshan and K. Venkatesan, I.U.Cr. and Indian Academy of Sciences, Bangalore 1980, pp. 13.01-13.25). The structure-factor derivatives contribute only to the diagonal elements of the least-squares matrix, but all 'additional observational equations' (restraints) contribute in full to diagonal and off- diagonal terms, although neither the l.s. matrix A nor the Jacobean J are ever generated. The preconditioning recommended by Hendrickson and Konnert is used to speed up the convergence of the internal conjugate gradient iterations, and has the additional advantage of preventing the excessive damping of poorly determined parameters characteristic of other conjugate gradient algorithms (D.E. Tronrud, Acta Cryst. A48 (1992) 912-916).
A further refinement in the CGLS approach is to save the parameter shifts from the previous full CGLS cycle, and to use them to estimate a shift multiplication factor independently for each parameter. This parameter is larger when a parameter appears to 'creep' in the same direction in successive cycles, and small when it oscillates. This technique significantly improves the convergence properties of the CGLS approach, because it indirectly takes into account the correlation terms which were ignored (to save time and space); however it cannot be used with BLOC or 'CGLS -nls'. The maximum and minimum shifts are set by the SLIM instruction; usually it will not be necessary to change them, but if a CGLS refinement appears to be unstable, both parameters should be reduced; in such a case it would be even better to track down and fix the cause of the instability, e.g. trying to refine a structure in the wrong space group!