dual algorithm updates