Bruno,
That is correct. The purpose of the more complicated update for s and
z is to work with the scaled variables as much as possible, to improve
stability. This is inspired by Jos Sturm's paper in Math. Prog. (vol
95, p 219, 2003).
The rule for sigma is a heuristic. For the conelp algorithm one can
show that the affine scaling direction satisfies
s' * dz + z' * ds = -s' * z
kappa * dtau + tau * dkappa = -tau*kappa
ds'*dz + dkappa*dtau = 0.
The expression for sigma is therefore equal to
sigma = ( new gap / current gap )**EXPON
where
new gap = ( s + step * ds ) ' * (z + step * dz) + (kappa + step *
dkappa ) * (tau + step * dtau)
current gap = s'*z + kappa * tau.
The second expression provides some justification for the choice of
sigma.
Most primal-dual codes use some variation on this heuristic.
Lieven