Gauss-Newton algorithm